软件需求工程教学提纲.ppt
《软件需求工程教学提纲.ppt》由会员分享,可在线阅读,更多相关《软件需求工程教学提纲.ppt(49页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软件需求工程课程参考书课程参考书1.1.Karl E.WiegersKarl E.Wiegers著著,陆丽娜,王忠民,王志敏等译,软陆丽娜,王忠民,王志敏等译,软件需求,机械工业出版社,件需求,机械工业出版社,20002000 2.2.Ian K.BrayIan K.Bray著著,需求工程导引,人民邮电出版社,需求工程导引,人民邮电出版社,20032003 3.3.Geri Schneider and Jason P.WintersGeri Schneider and Jason P.Winters著著,姚淑珍,李姚淑珍,李巍等译,用例分析技术,机械工业出版社,巍等译,用例分析技术,机械工业出
2、版社,20022002 4.4.Dean Leffingwell and Don WidrigDean Leffingwell and Don Widrig著著,蒋慧,林东译,蒋慧,林东译,软件需求管理:统一方法,机械工业出版社,软件需求管理:统一方法,机械工业出版社,20022002 5.5.Ralph R.YoungRalph R.Young著著,韩柯,耿民等译,有效需求实践,韩柯,耿民等译,有效需求实践,机械工业出版社,机械工业出版社,20022002 6.6.以上参考书相对应的英文版本以上参考书相对应的英文版本7.7.RUPRUP第一章第一章 软件需求基本理论和概软件需求基本理论和概念
3、念1.1.软件需求定义软件需求定义2.2.需求工程的本质需求工程的本质3.3.问题域与解系统问题域与解系统4.4.软件需求分类软件需求分类1.1.功能需求功能需求2.2.性能需求性能需求 (非功能需求非功能需求)3.3.设计约束设计约束4.4.商业约束商业约束5.5.客户客户/用户用户/开发者的需求观开发者的需求观6.6.不合格的需求派生的问题不合格的需求派生的问题7.7.高质量的需求带来的好处高质量的需求带来的好处8.8.优秀需求所具有的特征优秀需求所具有的特征项目失败的原因分析Source:Carnegie-Mellon University,Software Engineering In
4、stitute错误认识错误认识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软件调节和改变是很
5、灵活的,任何需求的变更软件调节和改变是很灵活的,任何需求的变更都可容易地在软件中反映出来都可容易地在软件中反映出来这些认识多来自极小项目的开发经验,当你面对这些认识多来自极小项目的开发经验,当你面对一个中大型项目时必须彻底改变这些错误观念!一个中大型项目时必须彻底改变这些错误观念!1.软件需求的定义软件需求的定义IEEEIEEE软件工程中需求的定义软件工程中需求的定义(1977)(1977)1.1.用户解决问题或达到目标所需的条件和能力用户解决问题或达到目标所需的条件和能力2.2.系统或系统部件为满足合同、系统或系统部件为满足合同、标准标准、规范或其它正式、规范或其它正式规定文档所需具有的条件
6、和能力规定文档所需具有的条件和能力3.3.以上条件和能力的以上条件和能力的文档说明文档说明客户希望在客户希望在问题域问题域内产生的效果内产生的效果需求与问题域的差别需求与问题域的差别Sommerville&Sawyer 1997Sommerville&Sawyer 1997需求是指系统必须实现什么的规格说明。它描述了系需求是指系统必须实现什么的规格说明。它描述了系统的行为、特性或属性,是在开发过程中对系统的约统的行为、特性或属性,是在开发过程中对系统的约束束2.需求工程的本质需求工程的本质需求工程简单化描述为她关注系统将要做什么;需求工程简单化描述为她关注系统将要做什么;而设计关注系统将怎样做
7、而设计关注系统将怎样做需求工程可以看作把一个定义不足的问题转换为需求工程可以看作把一个定义不足的问题转换为一个定义充分的问题以便找出解决方案。这是因一个定义充分的问题以便找出解决方案。这是因为客户需求信息经常是粗糙的和不完整的为客户需求信息经常是粗糙的和不完整的需求工程的通用性、理论性和实践性,怎样理解需求工程的通用性、理论性和实践性,怎样理解其学科性质,如何学习才能掌握它的本质?有一其学科性质,如何学习才能掌握它的本质?有一劳永逸的方法和工具吗?能否将另一个成功项目劳永逸的方法和工具吗?能否将另一个成功项目的需求工程方法照搬到现在的项目的需求工程方法照搬到现在的项目 答案是不能!答案是不能!
8、3.问题域问题域(Problem Domain)与与解系统解系统(Solution System)问题域:被开发系统的应用领域,即问题域:被开发系统的应用领域,即在现实世界中由这个系统进行处理的在现实世界中由这个系统进行处理的业务范围业务范围解系统:指可以在问题域内产生某种解系统:指可以在问题域内产生某种效果的系统,而构成软件需求的正是效果的系统,而构成软件需求的正是这些想要获得的效果,它也正是为何这些想要获得的效果,它也正是为何做软件需求的原因和目的做软件需求的原因和目的问题域问题域 Problem Domain问题域问题域 接口接口 解系统解系统分析分析规格说规格说明明设计设计问题域的类型
9、问题域的类型分类分类I I1.1.系统软件系统软件2.2.应用软件,进一步划分为商业软件和工程软件应用软件,进一步划分为商业软件和工程软件分类分类IIII1.1.批处理系统批处理系统/系统脱机系统脱机2.2.交互系统交互系统3.3.实时系统实时系统分类分类IIIIII1.1.数据为主的系统数据为主的系统2.2.交互为主的系统交互为主的系统3.3.算法为主的系统算法为主的系统问题域的类型问题域的类型数据为主数据为主交互为主交互为主算法为主算法为主A.A.气象预报系统气象预报系统B.B.收银机系统收银机系统C.C.电梯控制系统电梯控制系统D.D.工资系统工资系统E.E.文字处理系统文字处理系统F.
10、F.文件转换系统文件转换系统G.G.手机定位系统手机定位系统A AB BC CD DE EF FG G需求的层次需求的层次业务需业务需求求项目视图与项目视图与范围文档范围文档用户用户需求需求质量质量属性属性使用实例文使用实例文档档系统系统需求需求功能功能需求需求其它非其它非功功能需求能需求约束约束条件条件软件需求规格说软件需求规格说明明SRS4.软件需求的分类软件需求的分类业务需求业务需求业务需求业务需求(business requirement)(business requirement)反映反映了组织机构或客户对系统、产品高层次了组织机构或客户对系统、产品高层次的目标要求,它们在项目视图和
11、范围文的目标要求,它们在项目视图和范围文档中予以说明档中予以说明例如某运营商对定位系统的业务需求例如某运营商对定位系统的业务需求4.软件需求的分类软件需求的分类用户需求用户需求用户需求用户需求(user requirement)(user requirement)描述描述了用户使用产品必须要完成的任务,了用户使用产品必须要完成的任务,它们在使用实例它们在使用实例(use case)(use case)和情景和情景描述描述(scenario)(scenario)文档中予以说明文档中予以说明4.软件需求的分类软件需求的分类功能需求功能需求“一般一般”意义的需求指的是功能或行为需求,意义的需求指的是
12、功能或行为需求,这样的需求通常是和解系统的适当行为这样的需求通常是和解系统的适当行为(用户需用户需求求)相关联,是开发人员必须实现的软件功能。相关联,是开发人员必须实现的软件功能。功能需求可以在多种不同的抽象层次上来表达,功能需求可以在多种不同的抽象层次上来表达,这使得导出需求过程比较复杂和困难:这使得导出需求过程比较复杂和困难:a)a)Physical behaviorPhysical behaviorb)Input-output relationshipb)Input-output relationshipc)Observable statesc)Observable statesd)Us
13、er interfaced)User interface4.软件需求的分类软件需求的分类非功能需求非功能需求非功能需求是功能需求的补充,它描述了系统非功能需求是功能需求的补充,它描述了系统完成功能实现的补充和约束条件。如产品必须完成功能实现的补充和约束条件。如产品必须遵从的标准、国际规范和合约;外部界面的规遵从的标准、国际规范和合约;外部界面的规范;性能需求如:系统运行速度范;性能需求如:系统运行速度(Speed)(Speed),可靠,可靠性性(Reliability)(Reliability),容量,容量(Capacity)(Capacity),可用性,可用性(Availability),(
14、Availability),可使用性可使用性(Usability)(Usability);其它;其它质量属性如:质量属性如:快捷性、简易性、直觉性、健壮快捷性、简易性、直觉性、健壮性等。性等。在具体操作时,关于可靠性和可用性的在具体操作时,关于可靠性和可用性的在具体操作时,关于可靠性和可用性的在具体操作时,关于可靠性和可用性的规范最为困难,但又是客户最为关心的规范最为困难,但又是客户最为关心的规范最为困难,但又是客户最为关心的规范最为困难,但又是客户最为关心的4.软件需求的分类软件需求的分类非功能需求非功能需求a)Responsea)Responseb)Accuracyb)Accuracyc)
15、Frequencyc)Frequencyd)Capacityd)Capacitye)Throughpute)Throughputf)Defect ratesf)Defect ratesg)Modifiabilityg)Modifiabilityh)Supportabilityh)Supportability4.软件需求的分类软件需求的分类设计约束设计约束设计约束是真正意义上的非功能约束,它们约束系统怎设计约束是真正意义上的非功能约束,它们约束系统怎样被构建而不是系统做什么。设计约束的一般内容为样被构建而不是系统做什么。设计约束的一般内容为解系统将在其上运行的目标机器解系统将在其上运行的目标机器
16、底层的体系结构底层的体系结构 -分布式的或本地的分布式的或本地的系统运行的内存大小系统运行的内存大小应当采用的任何前端图形用户界面应当采用的任何前端图形用户界面(GUI)(GUI)程序包程序包系统运行的操作系统系统运行的操作系统应当使用的编程语言应当使用的编程语言其它应集成的软件包如数据库管理系统其它应集成的软件包如数据库管理系统(DBMS)(DBMS)必须应用的开发标准必须应用的开发标准应采用的设计方法等等应采用的设计方法等等4.软件需求的分类软件需求的分类设计约束设计约束a)Languagea)Languageb)OSb)OSc)SW to HW interfacec)SW to HW i
17、nterfaced)Algorithmd)Algorithme)Powere)Powerf)Timingf)Timingg)Memoryg)Memoryh)Processor utilizationh)Processor utilizationI)Weight etcI)Weight etc4.软件需求的分类软件需求的分类商业约束商业约束商业约束通常关注的是软件产品完成的时间以及开发商业约束通常关注的是软件产品完成的时间以及开发费用问题,是客户最为关心的问题。费用问题,是客户最为关心的问题。解系统的开发时间和费用与系统功能性、可靠性、可解系统的开发时间和费用与系统功能性、可靠性、可用性等关键需
18、求性能有着必然与复杂的关系。是项目用性等关键需求性能有着必然与复杂的关系。是项目需求与项目管理的结合点。需求与项目管理的结合点。商业约束通常是和需求工程过程同步的,即商业约束商业约束通常是和需求工程过程同步的,即商业约束是在调查其它需求的同时获得,而且易于识别,不存是在调查其它需求的同时获得,而且易于识别,不存在技术上的困惑,但却是管理上的难点。在技术上的困惑,但却是管理上的难点。商业约束如果不存在一个独立文档,则会出现在业务商业约束如果不存在一个独立文档,则会出现在业务需求描述中。需求描述中。4.软件需求的分类软件需求的分类系统需求系统需求对于一个复杂的系统或产品,软件功能需求只对于一个复杂
19、的系统或产品,软件功能需求只是系统需求的一个子集,需要从系统需求中剥是系统需求的一个子集,需要从系统需求中剥离出来。系统需求描述了系统中各个方面的需离出来。系统需求描述了系统中各个方面的需求,可能包含硬件、软件、其它关联系统,而求,可能包含硬件、软件、其它关联系统,而且系统的功能及非功能描述并不依赖于物理层且系统的功能及非功能描述并不依赖于物理层次,如软件和硬件的划分。系统和软件需求分次,如软件和硬件的划分。系统和软件需求分析人员需要将软件需求部分独立出来。在析人员需要将软件需求部分独立出来。在CMMCMM中中这部分工作称为需求分配这部分工作称为需求分配(requirement(require
20、ment allocation)allocation)4.软件需求的分类软件需求的分类开发过程需求开发过程需求(Process Requirements)A requirements that specifies a need or constraint about how a product well be designed,produced,delivered,or maintained;e.g.,the specification of a methodology,manufacturing process,or delivery constraint.Process requireme
21、nts are distinguished from product requirements.Process requirements often appear in a Statement of Work rather than in a requirements document.4.软件需求的分类软件需求的分类开发过程需求开发过程需求(Process Requirements)a)Configuuration Managementa)Configuuration Management b)Deployment b)Deployment c)Development Methodsc)De
22、velopment Methods d)Docummentationd)Docummentation e)Manufacturing Methodse)Manufacturing Methods f)Metricsf)Metrics g)Quality Assuranceg)Quality Assurance h)Review processesh)Review processes I)Verification Standards I)Verification Standards 5.客户客户/用户用户/开发者的需求观开发者的需求观客户的需求观在一个比较高的层次上,为客户的需求观在一个比较高的
23、层次上,为产品提供宏观的描述和指导性的框架,是产品提供宏观的描述和指导性的框架,是项目的基础;项目的基础;用户的需求观往往代表了产品应该完成的用户的需求观往往代表了产品应该完成的任务及其具有的特性,细节,真实性;任务及其具有的特性,细节,真实性;开发者的需求观则应是使产品最大限度的开发者的需求观则应是使产品最大限度的满足需求,并最大程度的理解用户的需求。满足需求,并最大程度的理解用户的需求。6.不合格的需求派生的问题不合格的需求派生的问题如果项目初始的需求分析不合理,会如果项目初始的需求分析不合理,会导致客户和开发人员之间的目标不一导致客户和开发人员之间的目标不一致,这意味着客户对产品的期望和
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 需求 工程 教学 提纲
限制150内