需求工程与过程分析课件.ppt

上传人:小飞机 文档编号:3000097 上传时间:2023-03-07 格式:PPT 页数:47 大小:1.16MB
返回 下载 相关 举报
需求工程与过程分析课件.ppt_第1页
第1页 / 共47页
需求工程与过程分析课件.ppt_第2页
第2页 / 共47页
需求工程与过程分析课件.ppt_第3页
第3页 / 共47页
需求工程与过程分析课件.ppt_第4页
第4页 / 共47页
需求工程与过程分析课件.ppt_第5页
第5页 / 共47页
点击查看更多>>
资源描述

《需求工程与过程分析课件.ppt》由会员分享,可在线阅读,更多相关《需求工程与过程分析课件.ppt(47页珍藏版)》请在三一办公上搜索。

1、第二章 软件需求工程及其过程,2.1 需求工程概述,2.2 软件需求与产品生命周期,本章结构,2.3 软件需求工程的过程,2.4 需求工程的角色系统分析员,2.1 需求工程概述,需求工程是软件工程的核心组成部分,是指应用有效的技术、方法进行需求分析,确定客户需求,帮助分析和设计人员理解问题,并定义目标系统的一门学科。它把整个软件需求工程研究领域划分为需求开发和需求管理两部分。,2.1 需求工程概述,需求开发活动内容,获取每个用户类的需求。确定产品所期望的用户类。了解实际用户任务和目标以及这些任务所支持的业务需求。分析源于用户的信息,以区别用户任务需求、功能需求、业务规则、质量属性。将系统级的需

2、求分为几个子系统,并将需求中的一部份分配给软件组件。例了解相关质量属性的重要性。商讨实施优先级的划分。例将所收集的用户需求编写成规格说明和模型。评审需求规格说明,确保对用户需求达到共同的理解与认识。例,用户类,用户是可分不同类型的,举例如下:,DZ在各种论坛的地位是有目共睹的,特别是BT下载论坛和娱乐论坛,而且用户的需求是不同的,因此,建议开发不同功能的Discuz!4.0版本,适应不同用户需求。建议开发:1、标准版,适合一般用户和可以自己添加修改插件等用户。2、娱乐版,适合电影、游戏、休闲等论坛和下载论坛,可以集成更多的娱乐插件。3、插件版,适合对Discuz!不熟悉,不能自己修改添加插件、

3、喜欢全功能的用户。也可以把2、3合并。,需求的变化和改动,笑话一则:距离史记载,没有一个软件的需求改动少于三次。唯一只改动需求两次的客户是个死人。这个可怜的家伙还是在运送第三次需求的路上被车子撞死的。(cline 1995)问题是:如何来管理好需求呢?需求管理主要包括:建立基线、需求跟踪、变更控制等几个方面。,需求管理活动内容,定义需求基线(迅速制定需求文档的主体)。评审提出的需求变更、评估每项变更的可能影响从而决定是否实施它。使当前的项目计划与需求一致。估计变更需求所产生影响并在此基础上协商新的承诺(约定)。让每项需求都能与其对应的设计、源代码和测试用例联系起来以实现跟踪。在整个项目过程中,

4、跟踪需求状态及其变更情况。,需求开发与需求管理之间的界限图,2.2 软件需求与产品生命周期,软件产品经历需求、分析、设计、实现、部署后,软件将被使用并进入维护阶段,直到最后逐渐消亡。这样一个过程,叫软件生命周期模型。,软件生命周期模型,一.瀑布模型(线性模型)二.RAD(快速应用开发)模型三.螺旋模型四.RUP(Rational United Process)五.如何根据需求选择生命周期模型,软件生命周期模型,瀑布模型规定了各项软件工程活动,包括:制定开发计划,进行需求分析和说明,软件设计,程序编码,测试及运行维护,并且规定了它们自上而下,相互衔接的固定顺序,如同瀑布流水,逐级下落。它是软工中

5、基本模型。,一.瀑布模型(线性模型),软件生命周期模型,瀑布模型图,软件生命周期模型,传统瀑布模型开发软件的特点,阶段间具有顺序性和依赖性推迟实现的观点每个阶段必须完成规定的文档和成果每个阶段结束前完成文档审查,尽早改正错误,软件生命周期模型,快速应用开发模型强调极短的开发周期,是线性顺序模型的一个“高速”变种,通过使用基于构件的建造方法赢得了快速开发。如果需求理解得很好且约束了项目范围,它的过程使得队伍在很短时间内创建出“功能完善的系统”。,二.RAD(快速应用开发)模型,软件生存周期模型,一.需求计划 采用联合需求计划技术来收集需求信息,以结构化方式(自顶向下、逐步求精、模块化设计)讨论现

6、有业务问题。二.用户描述 采用联合应用设计来管理用户的参与,开发团队快速捕捉系统非技术设计阶段的用户信息。三.构建 包括详细设计、创建(编码和测试)以及在某时间内发布给客户。四.结束 用户验收测试、系统安装和用户培训。,RAD模型的阶段,软件生存周期模型,RAD(快速应用开发)模型图,60-90天,需求计划,用户描述,构建,结束,开发工作量,RAD使用模型的条件,系统可基于构件开发和可缩放。用户能参与到整个生命周期中。项目开发周期短。项目团队熟悉应用领域,能熟练使用开发工具。举例:某集团公司的OA系统,烟草公司的资金结算系统等等。,软件生存周期模型,三.螺旋模型,对于复杂的大型软件,开发一个原

7、型往往达不到要求。螺旋模型加入了风险分析。螺旋模型沿着螺线旋转,在笛卡尔坐标的四个象限上分别表达了四个方面的活动,即:1.制定方案确定软件目标,选定实施方案,弄清项目开 发的限制条件。2.风险分析分析所选方案,考虑如何识别和消除风险3.实施工程实施软件开发4.评估评价开发工作,提出修正建议和相应计划 沿螺线自内向外每旋转一圈便开发出更为完善的一个新的软件版本。,软件生命周期模型,螺旋模型图,评估,举例:某集团公司的ERP系统建设,RUP简介,Rational Unified Process(简称RUP)是一套软件工程过程,它又是文档化的软件工程产品,由Rational公司开发、维护并销售。RU

8、P又是一套软件工程方法的框架,各个组织可根据自身的实际情况,以及项目规模对RUP进行裁剪和修改,以制定出合乎需要的软件工程过程。,RUP简介,RUP吸收了多种开发模型的优点,具有很好的可操作性和实用性、从它一推出市场,凭借Rational在业界的领导地位、以及与统一建模语言(Unified Model Language,以下简称UML)的良好集成、多种CASE工具的支持、不断的升级与维护,迅速得到业界广泛的认同,越来越多的组织(如IBM、Microsoft、Sun)以它作为软件开发模型框架。,RUP简介,RUP二维开发模型,RUP可以用二维坐标来描述。横轴通过时间组织,是过程展开的生命周期特征

9、,体现开发过程的动态结构,用来描述它的术语主要包括周期、阶段、迭代和里程碑;纵轴以内容来组织为自然的逻辑活动,体现开发过程的静态结构,用来描述它的术语主要包括活动、产物、工作者和工作流。,RUP简介,RUP中的软件生命周期在时间上被分解为四个顺序的阶段,分别是:初始阶段、细化阶段、构造阶段和交付阶段。每个阶段结束于一个主要的里程碑;每个阶段本质上是两个里程碑之间的时间跨度。在每个阶段的结尾执行一次评估以确定这个阶段的目标是否已经满足。如果评估结果令人满意的话,可以允许项目进入下一个阶段。,RUP开发过程中的各个阶段和里程碑,RUP简介,RUP中的每个阶段可以进一步分解为迭代。一个迭代是一个完整

10、的开发循环,产生一个可执行的产品版本,是最终产品的一个子集,它增量式地发展,从一个迭代过程到另一个迭代过程到成为最终的系统。,RUP的迭代开发模式图,RUP简介,1.开发复用。减少开发人员的工作量,保证软件质量 2.可降低风险 3.对需求进行有效管理 4.可视化建模(使用ROSE工具)5.使用组件体系结构,使软件体系架构更具弹性 6.贯穿整个开发周期的质量核查 7.对软件开发的变更控制,RUP的特点,选择生命周期模型的总结,基于需求特点选择生命周期模型,需求工程过程被认为是建立软件系统最重要的方面之一,在项目中,它涵盖了与需求相关的所有活动。需求的开发过程Pressman的需求工程过程Boeh

11、m的需求工程过程,2.3 需求开发过程,2.3.1 需求开发过程(1),需求开发是一个迭代的过程,2.3.1 需求开发过程(2),需求开发过程框架,Pressman的需求工程过程,需求获取,需求分析,需求规格说明,系统建模,需求确认,需求管理,使用在怎样的需求环境中?,Boehm的需求工程过程,确定重要的涉众,确定满足涉众要求的条件,确定2中的冲突因素,协商满足各方面要求的高层协议,列出互相满足要求的选项,研究折中选项,预期管理,将协议融入SRS和计划中,重复1-8,直到完全开发完成,面临和解决新的风险项目,1,2,3,4,5,6,7,8,9,10,使用在哪些场合或项目中?,需求工程的方法,需

12、求工程方法分成四类:1.面向过程,注重输入输出,如传统的结构化分析。2.面向数据,强调数据结构,如E-R模型,DD描述。3.面向控制,强调同步、并发,如DFD图。4.面向对象,它建立在对象间的交互基础上,对对象模型、动态模型和功能模型三个方面对问题进行描述,如以UML为基础的Rose的建模工具。,结构化分析,即使没有明确指定,软件项目组中也会有某个人会担当需求分析员的角色。企业的IS组织中,行使这一职责的专家被称为业务分析员。对需求分析员的不同称谓还包括系统分析员、需求工程师、需求经理,也有简称分析员的。,2.4 需求工程的角色系统分析员,2.4.1 需求分析员的职责与要求,需求分析员是对项目

13、涉众的需求进行收集、分析、记录和验证等职责的主要承担者。如图所示,需求分析员是用户群体与软件开发团队间进行需求沟通的主要渠道。,注意:不要指望优秀的开发人员或知识渊博的用户可以自动成为优秀的业务分析员,而不需要为他们提供培训、锻炼、学习资料和指导。,职位要求:1.大学本科及以上学历,专业不限;2.具备N年以上软件产品需求分析的工作经验;3.具备较强的沟通和协调能力,引导用户提出需求;4.具备较强的需求分析能力,进行业务需求整理、分析;5.具有较强的领悟能力和学习能力,能迅速了解行业知识;6.有较强的语言和文字表达能力;规范的文档写作能力;(从毕设开始)7.熟悉UML语言,能使用软件工具进行建模

14、。,2.4.1 需求分析员的职责与要求,需求分析员 职位要求描述举例,计算机或相关专业毕业,本科以上学历,3年以上开发经验;熟悉面向对象的分析,设计和开发方法;熟悉UML,Rose,PowerDesigner等软件工程建模工具;能够进行需求分析,编写分析文档及规格说明书;能够熟练阅读MSDN等英文资料;熟悉Windows操作系统,熟悉Windows平台下编程;熟悉C#,VC+或JAVA;熟悉系统、网络、数据库编程;熟悉测试方法,错误分析定位;有大型系统开发经验者优先;,一、业务方面的二、计算机方面的1.客户不懂计算机,不知道如何用计算机术语表达自己的业务需求。2.程序员不懂业务,不知道代码和业

15、务类需求之间联系。3.只有系统分析员,既明白客户的业务需求,也理解程序员的计算机术语,因此,他通过需求调研获取用户需求,然后编写需求规格说明书,告诉程序员做什么。,系统分析员必须具有两方面的知识,2.4.2 需求分析员知识与技能,下面列出需求分析员的技能:倾听的技巧 交谈和提问的技巧 大部分需求是通过讨论得到的,因此,需求分析员必须能够与不同的个人或小组就需求展开讨论。分析能力 优秀的需求分析员能够以不同的方式思考问题。,2.4.2 需求分析员知识与技能,举例:厦门某中心的调研,协调能力 需求获取过程中,对相关人员进行协调也是需求分析员必备的一项能力。观察能力 观察力敏锐的需求分析员能够从不经

16、意的闲谈中发现重要的信息。写作能力 需求开发提交的主要结果是书面的需求规格说明,用于在客户、营销人员、管理人员和技术人员之间传递信息。组织信息能力 需求分析员需要处理获取和分析过程中收集到的大量杂乱的信息。,2.4.2 需求分析员知识与技能,人际交往能力 需求分析员应具备让彼此利益竞争的人们进行合作的能力。建模能力 每个需求分析员都应该掌握从传统的流程图到结构化的分析模型(数据流图、实体关系图等),直至当今的统一建模语言(UML)等多种分析工具。,2.4.2 需求分析员知识与技能,能力的培养环境:实际项目,2.4.3 需求分析员的工作,需求分析员是客户与开发人员交流的中间人,负责将客户对产品的

17、初步想法转化为明确的需求说明,用来指导开发工作。定义业务需求 需求分析员的第一项工作是帮助业务管理人、产品经理或销售经理定义项目的业务需求(某大公司SAP上线的原因)。确定项目涉众和用户类别 前景和范围文档可帮助需求分析员分辨出产品的重要用户群和其他涉众。获取需求需求分析员可能要用到下列信息收集方法:交谈、需求讨论会、文档分析、调查、现场访问客户、业务流程分析、工作流程分析和任务分析、同类产品分析、根据现有系统导出需求、回顾以往项目。,2.4.3 需求分析员的工作,分析需求 需求分析员还要对收集到的需求进行分析,找出那些客户没有明确说明的需求。编写需求规格说明 需求开发的作用是各方对用于解决客

18、户问题的系统形成了一致的理解。需求分析员负责编写条理清晰的需求规格说明,从而清楚地表述出这种理解。为需求建模 需求分析员应该适时地选用文字以外的方式来表达需求。,2.4.3 需求分析员的工作,主持对需求的验证 分析员可主持需求验证会,还要对设计、代码和测试用例(源于需求说明)进行检查。引导对需求的优先级划分 需求分析员安排不同用户群与开发人员进行合作与协商,以保证他们进行合理的优先级划分。管理需求 需求分析员参与了软件开发的整个生命周期,因此,他应该帮助制订、检查和执行项目的需求管理计划。,2.4.4 营造合作的氛围,在建立与客户代表和其他涉众的合作关系问题上,需求分析员负有主要责任。需求分析员引导项目参与者就需求取得一致,进而达到三赢的目的:客户对产品感到满意。开发组织因产品在商业上取得的成就而兴奋。开发团队成员为在具有挑战性和高回报的项目中取得的成果而骄傲。某分析员认为,程序员工作是低级的,对吗?为用户解决问题的立场思考问题,如媒体报道促成某项目的达成。台塑IT企业某高管在项目中的角色分析员。,Thank You!,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号