软件需求工程-北京大学软件与微电子学院

  • 格式:ppt
  • 大小:212.00 KB
  • 文档页数:49

下载文档原格式

  / 49
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1. 功能需求 2. 性能需求 (非功能需求) 3. 设计约束 4. 商业约束
5. 客户/用户/开发者的需求观 6. 不合格的需求派生的问题 7. 高质量的需求带来的好处 8. 优秀需求所具有的特征
项目失败的原因分析
No.
Top 10 Factors
1 Inadequate requirements specification 不充分的需求规范
10 Shortage of application domain experts 缺乏应用领域专家 Scale: 5 = Very Serious 3 = Serious 1 = No Serious
平均值
4.5 4.3 4.2 4.1 4.1 3.9 3.8
3.8
3.6 3.6
Source: Carnegie-Mellon University, Software Engineering Institute
错误认识
• A general statement of objectives is sufficient to begin writing programs — we can fill in the details later 需求不清楚就进入编程阶段,期望以后修改。 更多的情况下是边写边修改
• Project requirements continually change, but change can be easily accommodated because software is flexible 软件调节和改变是很灵活的,任何需求的变更 都可容易地在软件中反映出来
软件需求管理:统一方法,机械工业出版社,2002 5. Ralph R. Young著, 韩柯,耿民等译,有效需求实践,
机械工业出版社,2002 6. 以上参考书相对应的英文版本 7. RUP
第一章 软件需求基本理论和概念
1. 软件需求定义 2. 需求工程的本质 3. 问题域与解系统 4. 软件需求分类
这些认识多来自极小项目的开发经验,当你面对 一个中大型项目时必须彻底改变这些错误观念!
1. 软件需求的定义
• IEEE软件工程中需求的定义(1977) 1.用户解决问题或达到目标所需的条件和能力 2.系统或系统部件为满足合同、标准、规范或其它正式 规定文档所需具有的条件和能力 3.以上条件和能力的文档说明
• 客户希望在问题域内产生的效果 –需求与问题域的差别
• Sommerville & Sawyer 1997 –需求是指系统必须实现什么的规格说明。它描述了系 统的行为、特性或属性,是在开发过程中对系统的约 束
2. 需求工程的本质
• 需求工程简单化描述为她关注系统将要做什么; 而设计关注系统将怎样做
交互为主
数据为主
F D
B GA
E
C
算法为主
业Fra Baidu bibliotek需求
需求的层次
项目视图与 范围文档
用户需求
系统需求
使用实例文档
功能需求
质量属性
其它非功 能需求
软件需求规格说明 SRS
约束条件
4. 软件需求的分类
① 业务需求
业务需求(business requirement)反映 了组织机构或客户对系统、产品高层次 的目标要求,它们在项目视图和范围文 档中予以说明
1. Karl E. Wiegers著, 陆丽娜,王忠民,王志敏等译,软 件需求,机械工业出版社,2000
2. Ian K. Bray著,需求工程导引,人民邮电出版社,2003 3. Geri Schneider and Jason P. Winters著, 姚淑珍,李
巍等译,用例分析技术,机械工业出版社,2002 4. Dean Leffingwell and Don Widrig著, 蒋慧,林东译,
• 需求工程可以看作把一个定义不足的问题转换为 一个定义充分的问题以便找出解决方案。这是因 为客户需求信息经常是粗糙的和不完整的
• 需求工程的通用性、理论性和实践性,怎样理解 其学科性质,如何学习才能掌握它的本质?有一 劳永逸的方法和工具吗?能否将另一个成功项目 的需求工程方法照搬到现在的项目 – 答案是不能!
软件需求工程
周立新 博士 北京大学软件与微电子学院
课程提纲
1. 软件需求基本理论和概念 2. 软件需求工程过程 3. 软件需求获取 4. 软件需求分析 5. 软件需求规格说明 6. 软件需求验证 7. 软件需求管理 8. 软件需求实现 9. 软件需求工程新进展 10. 软件需求开发与需求管理工具
课程参考书
6 Shortage of software engineers 缺乏软件工程师
7 Fixed-price contract 固定价合同
Inadequate communications for system integration 系统集成 8
阶段, 交流与沟通不充分
9 Insufficient experience as team 团队缺乏经验
3. 问题域(Problem Domain)与 解系统(Solution System)
• 问题域:被开发系统的应用领域,即 在现实世界中由这个系统进行处理的 业务范围
• 解系统:指可以在问题域内产生某种 效果的系统,而构成软件需求的正是 这些想要获得的效果,它也正是为何 做软件需求的原因和目的
问题域 Problem Domain
2 Changes in requirements 需求的改变
3 Shortage of systems engineers 缺乏系统工程师
4 Shortage of software managers 缺乏了解软件特性的经理人
5 Shortage of qualified project managers 缺乏合格的项目经理
分析
规格说明
设计
问题域 接口 解系统
问题域的类型
• 分类I 1. 系统软件 2. 应用软件,进一步划分为商业软件和工程软件
• 分类II 1. 批处理系统/系统脱机 2. 交互系统 3. 实时系统
• 分类III 1. 数据为主的系统 2. 交互为主的系统 3. 算法为主的系统
问题域的类型
A. 气象预报系统 B. 收银机系统 C. 电梯控制系统 D. 工资系统 E. 文字处理系统 F. 文件转换系统 G. 手机定位系统