- 1、本文档共49页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件需求工程 周立新 博士 北京大学软件与微电子学院 课程提纲 软件需求基本理论和概念 软件需求工程过程 软件需求获取 软件需求分析 软件需求规格说明 软件需求验证 软件需求管理 软件需求实现 软件需求工程新进展 软件需求开发与需求管理工具 课程参考书 Karl E. Wiegers著, 陆丽娜,王忠民,王志敏等译,软件需求,机械工业出版社,2000 Ian K. Bray著,需求工程导引,人民邮电出版社,2003 Geri Schneider and Jason P. Winters著, 姚淑珍,李巍等译,用例分析技术,机械工业出版社,2002 Dean Leffingwell and Don Widrig著, 蒋慧,林东译,软件需求管理:统一方法,机械工业出版社,2002 Ralph R. Young著, 韩柯,耿民等译,有效需求实践,机械工业出版社,2002 以上参考书相对应的英文版本 RUP 第一章 软件需求基本理论和概念 软件需求定义 需求工程的本质 问题域与解系统 软件需求分类 功能需求 性能需求 (非功能需求) 设计约束 商业约束 客户/用户/开发者的需求观 不合格的需求派生的问题 高质量的需求带来的好处 优秀需求所具有的特征 项目失败的原因分析 错误认识 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 软件调节和改变是很灵活的,任何需求的变更都可容易地在软件中反映出来 1. 软件需求的定义 IEEE软件工程中需求的定义(1977) 用户解决问题或达到目标所需的条件和能力 系统或系统部件为满足合同、标准、规范或其它正式规定文档所需具有的条件和能力 以上条件和能力的文档说明 客户希望在问题域内产生的效果 需求与问题域的差别 Sommerville Sawyer 1997 需求是指系统必须实现什么的规格说明。它描述了系统的行为、特性或属性,是在开发过程中对系统的约束 2. 需求工程的本质 需求工程简单化描述为她关注系统将要做什么;而设计关注系统将怎样做 需求工程可以看作把一个定义不足的问题转换为一个定义充分的问题以便找出解决方案。这是因为客户需求信息经常是粗糙的和不完整的 需求工程的通用性、理论性和实践性,怎样理解其学科性质,如何学习才能掌握它的本质?有一劳永逸的方法和工具吗?能否将另一个成功项目的需求工程方法照搬到现在的项目 – 答案是不能! 3. 问题域(Problem Domain)与解系统(Solution System) 问题域:被开发系统的应用领域,即在现实世界中由这个系统进行处理的业务范围 解系统:指可以在问题域内产生某种效果的系统,而构成软件需求的正是这些想要获得的效果,它也正是为何做软件需求的原因和目的 问题域 Problem Domain 问题域的类型 分类I 系统软件 应用软件,进一步划分为商业软件和工程软件 分类II 批处理系统/系统脱机 交互系统 实时系统 分类III 数据为主的系统 交互为主的系统 算法为主的系统 问题域的类型 需求的层次 4. 软件需求的分类 业务需求 业务需求(business requirement)反映了组织机构或客户对系统、产品高层次的目标要求,它们在项目视图和范围文档中予以说明 例如某运营商对定位系统的业务需求 4. 软件需求的分类 用户需求 用户需求(user requirement)描述了用户使用产品必须要完成的任务,它们在使用实例(use case)和情景描述(scenario)文档中予以说明 4. 软件需求的分类 功能需求 “一般”意义的需求指的是功能或行为需求,这样的需求通常是和解系统的适当行为(用户需求)相关联,是开发人员必须实现的软件功能。功能需求可以在多种不同的抽象层次上来表达,这使得导出需求过程比较复杂和困难: a) Physical behavior b) Input-output relationship c) Observable states d) User interface 4. 软件需求的分类 非功能需求 非功能需求是功能需求的补充,它描述了系统完成功能实现的补充和约束条件。如产品必须遵从的标准、国际规范和合约;外部界面的规范;
文档评论(0)