首先来了解一下什么是软件工程?
随着所开发软件的规模越来越大、复杂度越来越高,加之用户需求又不十分明确,且缺乏软件开发方法和工具方面的有效支持,使得软件成本日益增长、开发进度难以控制、软件质量无法保证、软件维护困难等问题日益突出。人们开始用工程的方法进行软件的开发、管理和维护,即“软件工程”。
软件需求的定义
- 针对待解决问题的特性的描述
- 所定义的需求必须可以被验证(可验证性)
- 在资源有限时,可以通过优先级对需求进行权衡
软件需求的作用
- 检测和解决需求之间的冲突
- 发现系统的边界
- 并详细描述出系统需求
软件需求的分类
- 功能需求:系统必须完成的那些事。
- 非功能需求:产品必须具备的属性或品质,比如可靠性,容错等。
- 设计约束:1、限制条件、补充约束。2、例如必须采用国有自主知识版权的数据库系统,必须运行在UNIX操作系统之下等。
软件需求分为如下三个层次
一、业务需求:表示组织或客户高层次的目标。业务需求通常来自项目投资人、购买产品的客户、实际用户的管理者、市场营销部门或产品策划部门。
二、用户需求:描述的是用户的目标,或用户要求系统必须能完成的任务。
三、功能需求:规定开发人员必须在产品中实现的软件功能,用户利用这些功能来完成任务,满足业务需求。
软件需求中的需求分析方法
结构化分析方法(SA)
面向对象的分析方法(OOA)