软件需求定义
( 1 )功能需求:是指系统必须完成的那些事,即为了向它的用户提供有用的功能,产品必须执行的动作。
( 2 )非功能需求:是指产品必须具备的属性或品质,如可靠性、性能、响应时间、容错性、扩展性等。
( 3 )设计约束:也称为限制条件、补充规约,这通常是对解决方案的一些约束说明’例如必须采用国有自主知识版权的数据库系统,必须运行在UNIX操作系统之下等。另外,在大量与需求相关的书籍、文章中有一些诸如业务需求
另外可验证性是需求的最基本特性
需求工程
需求工程师一个包括创建和维护系统需求文档所必需的一切活动的过程,通常包括需求开发和需求管理两大工作
1 需求开发:包括需求捕获、需求分析、编写规格说明书和需求验证四个阶段。
2 需求管理:包括定义需求基线、处理需求变更、需求跟踪等方面的工作。
软件过程管理:软件过程(Software process)是人们建立、维护和演化软件产品整个过程中所有技术活动和管理活动的集合。软件工程管理集成了过程管理和项目管理,包括但不仅限于启动和范围定义、软件项目计划、项目实施、评审和评价,收尾及软件工程度量等
软件设计原则:
1 信息隐蔽
2 高内聚、低耦合
设计评审---在开发时期的每个阶段,特别是设计阶段结束时都要进行严格的技术评审,尽量不让错误传到下一个阶段。设计评审一遍采用评审会议的形式来进行。
应尽早地和不断地进行软件测试,系统测试应尽可能在实际运行使用环境下进行 ;测试用例应当由测试输入数据和对应的预期输出结果这两部分组成;程序员应避免检查自己的程序;在设计测试用例时,应包括合理的输入条件和不合理的输入条件;充分注意测试中的群集现象。经验表明,测试后程序中残存的错误数目与该程序中己发现的错误数目成正比。严格执行测试计划,排除测试的随意性;应当对每一个测试结果做全面检查;妥善保存测试计划、测试用例、出错统计和最终分析报告,为软件维护提供方便。软件测试并不等于程序测试。软件测试应贯穿于软件定义与开发的整个期间。需求分析、概要设计、详细设计,以及程序编码等各阶段所得到的文档,包括需求规格说明、概要设计规格说明、详细设计规格说明,以及源程序,都应成为软件测试的对象
测试不再只是一种仅在编码阶段完成后才开始的活动。现在的软件测试被认为是一种应该包括在整个开发和维护过程中的活动,他本是是实际产品构造的一个重要部分。
软件维护分类
纠错型维护、适应性维护、预防性维护、完善性维护
尽管经过严格的测试,但并不能保证软件中彻底没有错误,随着运行时间的延续,
数据量的积累,各种应用环境的变化,错误仍会顽固地暴露出来,此时就要进行纠错型
维护。
伴随着计算机硬件的新产品、操作系统的新版本的不断推出,正在运行的软件必须
进行适应型维护。
用户逐渐熟悉软件以后,会提出一些改进需求,为了满足这些需求,必须进行完善
型维护,这样的维护几乎占到维护工作量的一半以上。比如,打印格式的调整、统计口
径的增加、业务流程的完善等。
以上三种维护都是用户驱动的,用户是维护需求的提出者,而开发商“为了明天的
需要,把今天的方法应用到昨天的系统中”,目的是为了使旧系统焕发新活力,这样的
维护是预防型维护,这种维护所占的比例很小,因为它耗资巨大。
SRS:软件需求规格说明书