如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
软件产品非功能性设计1.系统非功能性设计1.1.系统可靠性设计软件可靠性是指在规定条件下,在规定的时间范围内软件不引起系统失效的概率,该概率是系统输入和系统使用的函数,也是软件中存在的错误的函数。系统输入将确定是否会遇到已存在的错误。软件可靠性是指在规定的时间周期内,在所述条件程序实现所要求的功能的能力。其中,规定的条件是指软件运行的软、硬件环境和软件的运行剖面;规定的时间是可以分为执行时间、日历时间和时钟时间。显然,软件可靠性反映了软件系统对外服务的连续性。软件发生失效的根本原因是激活了软件内部的设计缺陷。软件可靠性可以用多种软件可靠性参数来度量。如可靠度、失效率、失效强度、平均失效前时间(MTTF)、平均失效间隔时间(MTBF)等,这些参数可以相互转换。在实际的软件可靠性工程实践中,软件可靠性参数的选取必须结合软件的特点和整个系统的要求。1.1.1.如何保证软件可靠性主要从两个方面采取措施来保证软件可靠性,第一方面是软件过程管理,如采用软件过程成熟度模型系列标准等;这些模型和标准对软件开发过程中的各种应当进行的活动和应当撰写的文档加以较明确的规定,从而在管理层次上保证软件开发过程的有序进行。第二方面是软件测试,包括软件静态测试和软件动态测试;静态测试不执行软件代码,而是直接检查软件设计或代码;动态测试则选择一定的输入或运行条件,执行软件代码,并观测相应的软件输出,以判定软件内部是否存在缺陷。1.1.2.本系统软件可靠性设计在系统应用软件研制中,充分注重了结构设计、容错设计、构件化设计。1.1.2.1.软件结构设计按照本项目的总体建设要求,对系统应用软件进行扩充完善,应用软件结构包括应用层、业务逻辑层、数据层、数据交换层。1)、应用层,面向系统提供各要素具体应用。2)、业务逻辑层,包括各种业务逻辑构件,对应用层或外部系统提供支撑服务,应用层可调用这些业务逻辑构件,搭建适应用户需求的应用。3)、数据层,面向上层应用软件提供数据存储管理。数据库中主要包含地理信息数据和业务数据两个数据。1.1.2.2.软件构件化设计在本系统的研制中,广泛地应用了构件化设计,对已有软件按照集成标准进行相应构件化改造,对新研制的软件按照集成规范进行软件设计和集成。1)、建立段包装和段管理机制,对集成的软件建立程序段和数据段,实现系统应用软件的段管理,明确软件构件之间的依赖关系,确定软件系统的安装、卸载流程,实现基于段的应用软件发布。2)、根据软件集成标准及集成要求,进行新软件系统研制;如果软件提供外部接口,应调用集成者提供的对象转换代理,将应用软件的调用接口包装成通用接口,实现软件的调用与控制规范化。3)、设计开发可视化定制工具,实现软件和功能模块的按需定制,根据用户需要选择集成对象,定制系统菜单,调整界面构成,形成满足用户需要的软件发行包和配置文件,提交用户。1.1.3.本系统软件可靠性实现在系统应用软件研制中,认真实施软件程序开发、软件测试以及软件过程控制,以保证与落实了相关可靠性设计。1.1.3.1.软件程序开发程序设计方面采用了模块化设计,便于软件的设计、测试、调试和组织管理;信息屏蔽和局部化,减少错误的传播;每个模块完成一个相对独立的特定子功能,便于模块的修改、测试和维护。程序开发上,减少系统全局变量的引用,采取过程调用函数化;对所有输入参数的有效性进行检查,杜绝异常参数对系统产生的副作用。自动监测运行时由于外界环境或其他模块产生的危害系统的异常,并提醒用户下一步的处理方法,保证外界环境突变和内部模块的异常时系统的继续有效运行。使用标准的数据访问接口,保证应用程序与数据库系统的稳定交互。1.1.3.2.软件测试保证在软件研制过程中,严格遵照软件测试的有关规范;全面开展单元测试、集成测试、配置项测试和系统测试,制定了详细的测试计划、测试说明和测试用例,明确描述软件测试的用例与合格判据,详细记录软件的测试结果和评判结论,对软件的各种测试,严格实行软件测试、故障分析、软件修改、措施确认的闭环过程。在软件开发的初期主要采用黑盒测试方法,对各程序段及之间的主要功能和接口进行测试,在软件开发的后期主要采用白盒测试方法,对每个程序段的各个流程和函数进行单元测试和代码走查,在软件开发完成后对前两个测试阶段进行再测试,发现新的错误,同时找出前两个阶段遗漏掉的问题并统一进行修改,从而积极地保证了系统可靠性设计的实现;并且在模拟环境进行了