




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、需求工程和过程2.1 需求工程概述 需求工程是软件工程的核心组成部分,是指应用有效的技术、方法进行需求分析,确定客户需求,帮助分析和设计人员理解问题,并定义目标系统的一门学科。 它把整个软件需求工程研究领域划分为需求开发和需求管理两部分。2.1 需求工程概述需求开发活动内容获取每个用户类的需求。确定产品所期望的用户类。了解实际用户任务和目标以及这些任务所支持的业务需求。分析源于用户的信息,以区别用户任务需求、功能需求、业务规则、质量属性。将系统级的需求分为几个子系统,并将需求中的一部份分配给软件组件。例了解相关质量属性的重要性。商讨实施优先级的划分。例将所收集的用户需求编写成规格说明和模型。评
2、审需求规格说明,确保对用户需求达到共同的理解与认识。例用户类用户是可分不同类型的,举例如下:DZ在各种论坛的地位是有目共睹的,特别是BT下载论坛和娱乐论坛,而且用户的需求是不同的,因此,建议开发不同功能的Discuz!4.0版本,适应不同用户需求。建议开发:1、标准版,适合一般用户和可以自己添加修改插件等用户。2、娱乐版,适合电影、游戏、休闲等论坛和下载论坛,可以集成更多的娱乐插件。3、插件版,适合对Discuz!不熟悉,不能自己修改添加插件、喜欢全功能的用户。 也可以把2、3合并。需求的变化和改动笑话一则:距离史记载,没有一个软件的需求改动少于三次。唯一只改动需求两次的客户是个死人。这个可怜
3、的家伙还是在运送第三次需求的路上被车子撞死的。 (cline 1995)问题是:如何来管理好需求呢?需求管理主要包括:建立基线、需求跟踪、变更控制等几个方面。需求管理活动内容定义需求基线(迅速制定需求文档的主体)。评审提出的需求变更、评估每项变更的可能影响从而决定是否实施它。使当前的项目计划与需求一致。估计变更需求所产生影响并在此基础上协商新的承诺(约定)。让每项需求都能与其对应的设计、源代码和测试用例联系起来以实现跟踪。在整个项目过程中,跟踪需求状态及其变更情况。需求开发与需求管理之间的界限图2.2 软件需求与产品生命周期 软件产品经历需求、分析、设计、实现、部署后,软件将被使用并进入维护阶
4、段,直到最后逐渐消亡。这样一个过程,叫软件生命周期模型。软件生命周期模型一 .瀑布模型(线性模型)二. RAD(快速应用开发)模型三. 螺旋模型四. RUP(Rational United Process)五. 如何根据需求选择生命周期模型软件生命周期模型 瀑布模型规定了各项软件工程活动,包括:制定开发计划,进行需求分析和说明,软件设计,程序编码,测试及运行维护,并且规定了它们自上而下,相互衔接的固定顺序,如同瀑布流水,逐级下落。它是软工中基本模型。 一. 瀑布模型(线性模型)软件生命周期模型瀑布模型图软件生命周期模型传统瀑布模型开发软件的特点阶段间具有顺序性和依赖性推迟实现的观点每个阶段必须
5、完成规定的文档和成果每个阶段结束前完成文档审查, 尽早改正错误软件生命周期模型 快速应用开发模型强调极短的开发周期,是线性顺序模型的一个“高速”变种,通过使用基于构件的建造方法赢得了快速开发。如果需求理解得很好且约束了项目范围,它的过程使得队伍在很短时间内创建出“功能完善的系统”。二.RAD(快速应用开发)模型软件生存周期模型一. 需求计划 采用联合需求计划技术来收集需求信息,以结构化方式(自顶向下、逐步求精、模块化设计 )讨论现有业务问题。二. 用户描述 采用联合应用设计来管理用户的参与,开发团队快速捕捉系统非技术设计阶段的用户信息。三. 构建 包括详细设计、创建(编码和测试)以及在某时间内
6、发布给客户。四. 结束 用户验收测试、系统安装和用户培训。 RAD模型的阶段软件生存周期模型RAD(快速应用开发)模型图60-90天需求计划用户描述构建结束开发工作量RAD使用模型的条件系统可基于构件开发和可缩放。用户能参与到整个生命周期中。项目开发周期短。项目团队熟悉应用领域,能熟练使用开发工具。举例:某集团公司的OA系统,烟草公司的资金结算系统等等。软件生存周期模型三.螺旋模型 对于复杂的大型软件,开发一个原型往往达不到要求。螺旋模型加入了风险分析。 螺旋模型沿着螺线旋转,在笛卡尔坐标的四个象限上分别表达了四个方面的活动,即:1.制定方案确定软件目标,选定实施方案,弄清项目开 发的限制条件
7、。2.风险分析分析所选方案,考虑如何识别和消除风险3.实施工程实施软件开发4.评估评价开发工作,提出修正建议和相应计划 沿螺线自内向外每旋转一圈便开发出更为完善的一个新的软件版本。 软件生命周期模型螺旋模型图 评估举例:某集团公司的ERP系统建设RUP简介 Rational Unified Process(简称RUP)是一套软件工程过程,它又是文档化的软件工程产品,由Rational公司开发、维护并销售。 RUP又是一套软件工程方法的框架,各个组织可根据自身的实际情况,以及项目规模对RUP进行裁剪和修改,以制定出合乎需要的软件工程过程。RUP简介 RUP吸收了多种开发模型的优点,具有很好的可操
8、作性和实用性、从它一推出市场,凭借Rational在业界的领导地位、以及与统一建模语言(Unified Model Language,以下简称UML)的良好集成、多种CASE工具的支持、不断的升级与维护,迅速得到业界广泛的认同,越来越多的组织(如IBM、Microsoft、Sun)以它作为软件开发模型框架。RUP简介 RUP二维开发模型RUP可以用二维坐标来描述。横轴通过时间组织,是过程展开的生命周期特征,体现开发过程的动态结构,用来描述它的术语主要包括周期、阶段、迭代和里程碑;纵轴以内容来组织为自然的逻辑活动,体现开发过程的静态结构,用来描述它的术语主要包括活动、产物、工作者和工作流。 RU
9、P简介 RUP中的软件生命周期在时间上被分解为四个顺序的阶段,分别是:初始阶段、细化阶段、构造阶段和交付阶段。每个阶段结束于一个主要的里程碑;每个阶段本质上是两个里程碑之间的时间跨度。在每个阶段的结尾执行一次评估以确定这个阶段的目标是否已经满足。如果评估结果令人满意的话,可以允许项目进入下一个阶段。 RUP开发过程中的各个阶段和里程碑RUP简介 RUP中的每个阶段可以进一步分解为迭代。一个迭代是一个完整的开发循环,产生一个可执行的产品版本,是最终产品的一个子集,它增量式地发展,从一个迭代过程到另一个迭代过程到成为最终的系统。RUP的迭代开发模式图RUP简介 1.开发复用。减少开发人员的工作量,
10、保证软件质量 2. 可降低风险 3.对需求进行有效管理 4.可视化建模(使用ROSE工具) 5.使用组件体系结构,使软件体系架构更具弹性 6.贯穿整个开发周期的质量核查 7.对软件开发的变更控制 RUP的特点选择生命周期模型的总结 需求情况 瀑布 模型 螺旋模型 RAD 迭代模型需求容易定义或明确吗?是否是否能在早期确定需求吗?是否是是周期中需求经常变化吗?否是是是基于需求特点选择生命周期模型需求工程过程被认为是建立软件系统最重要的方面之一,在项目中,它涵盖了与需求相关的所有活动。需求的开发过程Pressman的需求工程过程Boehm的需求工程过程 2.3 需求开发过程 2.3.1 需求开发过
11、程(1)需求开发是一个迭代的过程 2.3.1 需求开发过程(2)需求开发过程框架Pressman的需求工程过程需求获取需求分析需求规格说明系统建模需求确认需求管理使用在怎样的需求环境中?Boehm的需求工程过程确定重要的涉众确定满足涉众要求的条件确定2中的冲突因素协商满足各方面要求的高层协议列出互相满足要求的选项研究折中选项预期管理将协议融入SRS和计划中重复1-8,直到完全开发完成面临和解决新的风险项目12345678910使用在哪些场合或项目中?需求工程的方法需求工程方法分成四类:1.面向过程,注重输入输出,如传统的结构化分析。2.面向数据,强调数据结构,如E-R模型,DD描述。3.面向控
12、制,强调同步、并发,如DFD图。4.面向对象,它建立在对象间的交互基础上,对对象模型、动态模型和功能模型三个方面对问题进行描述,如以UML为基础的Rose的建模工具。结构化分析即使没有明确指定,软件项目组中也会有某个人会担当需求分析员的角色。企业的IS组织中,行使这一职责的专家被称为业务分析员。对需求分析员的不同称谓还包括系统分析员、需求工程师、需求经理,也有简称分析员的。2.4 需求工程的角色系统分析员2.4.1 需求分析员的职责与要求需求分析员是对项目涉众的需求进行收集 、分析、记录和验证等职责的主要承担者。如图所示,需求分析员是用户群体与软件开发团队间进行需求沟通的主要渠道。注意:不要指
13、望优秀的开发人员或知识渊博的用户可以自动成为优秀的业务分析员,而不需要为他们提供培训、锻炼、学习资料和指导。岗位职责:1.收集、整理、分析、提炼、跟踪、控制用户的产品需求;2.编写产品需求说明书,准确描述和解释业务需求;3.编写设计文档,引导UI设计师制作产品原型(可选);4.编写详细产品需求分析书,提供给软件开发工程师,测试工程师。职位要求:1. 大学本科及以上学历,专业不限;2. 具备N年以上软件产品需求分析的工作经验;3. 具备较强的沟通和协调能力,引导用户提出需求;4. 具备较强的需求分析能力,进行业务需求整理、分析;5. 具有较强的领悟能力和学习能力,能迅速了解行业知识;6. 有较强
14、的语言和文字表达能力;规范的文档写作能力;(从毕设开始)7. 熟悉UML语言,能使用软件工具进行建模。2.4.1 需求分析员的职责与要求需求分析员 职位要求描述举例计算机或相关专业毕业,本科以上学历,3年以上开发经验;熟悉面向对象的分析,设计和开发方法;熟悉UML,Rose,PowerDesigner等软件工程建模工具;能够进行需求分析,编写分析文档及规格说明书;能够熟练阅读MSDN等英文资料;熟悉Windows操作系统,熟悉Windows平台下编程;熟悉C#,VC+或JAVA;熟悉系统、网络、数据库编程;熟悉测试方法,错误分析定位;有大型系统开发经验者优先;一、 业务方面的二 、计算机方面的
15、1. 客户不懂计算机,不知道如何用计算机术语表达自己的业务需求。 2. 程序员不懂业务,不知道代码和业务类需求之间联系。3. 只有系统分析员,既明白客户的业务需求,也理解程序员的计算机术语,因此,他通过需求调研获取用户需求,然后编写需求规格说明书,告诉程序员做什么。 系统分析员必须具有两方面的知识2.4.2 需求分析员知识与技能下面列出需求分析员的技能:倾听的技巧 交谈和提问的技巧 大部分需求是通过讨论得到的,因此,需求分析员必须能够与不同的个人或小组就需求展开讨论。分析能力 优秀的需求分析员能够以不同的方式思考问题。2.4.2 需求分析员知识与技能举例:厦门某中心的调研协调能力 需求获取过程
16、中,对相关人员进行协调也是需求分析员必备的一项能力。观察能力 观察力敏锐的需求分析员能够从不经意的闲谈中发现重要的信息。写作能力 需求开发提交的主要结果是书面的需求规格说明,用于在客户、营销人员、管理人员和技术人员之间传递信息。组织信息能力 需求分析员需要处理获取和分析过程中收集到的大量杂乱的信息。2.4.2 需求分析员知识与技能人际交往能力 需求分析员应具备让彼此利益竞争的人们进行合作的能力。建模能力 每个需求分析员都应该掌握从传统的流程图到结构化的分析模型(数据流图、实体关系图等),直至当今的统一建模语言(UML)等多种分析工具。2.4.2 需求分析员知识与技能能力的培养环境:实际项目 2
17、.4.3 需求分析员的工作 需求分析员是客户与开发人员交流的中间人,负责将客户对产品的初步想法转化为明确的需求说明,用来指导开发工作。定义业务需求 需求分析员的第一项工作是帮助业务管理人、产品经理或销售经理定义项目的业务需求(某大公司SAP上线的原因)。确定项目涉众和用户类别 前景和范围文档可帮助需求分析员分辨出产品的重要用户群和其他涉众。获取需求需求分析员可能要用到下列信息收集方法:交谈、需求讨论会、文档分析、调查、现场访问客户、业务流程分析、工作流程分析和任务分析、同类产品分析、根据现有系统导出需求、回顾以往项目。 2.4.3 需求分析员的工作分析需求 需求分析员还要对收集到的需求进行分析,找出那些客户没有明确说明的需求。编写需求规格说明 需求开发的作用是各方对用于解决客户问题的系统形成了一致的理解。需求分析员负责编写条理清晰的需求规格说明,从而清楚地表述出这种理解。为需求建模 需求分析员应该适时地选用文字以外的方式来表达需求。 2.4.3 需求分析员的工作主持对需求的验证 分析员可主持需求验证会,还要对设计、代码和测试用例(源于需求说明)进行检查。引导对需求的优先级划分 需求分析员安排不同用户群与开发人员进行合作与协商,以保证他们进行合理
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 劳动合同书(供以完成一定任务为期限的市场营销专员)
- 货物运输合同纠纷代理合同
- 国际结算保函抵押外汇借贷合同
- 补偿贸易返销合同样本
- 二手车交易流程与手续办理考核试卷
- 光电仪器原理与检测技术考核试卷
- 农产品初加工的农产品加工质量控制考核试卷
- 文化产业项目对接会考核试卷
- 健身器材行业用户研究与市场细分考核试卷
- 小学生作文入门格式课件
- 2023可信数字底座白皮书
- 家长会课件:三年级下家长会课件
- 义务教育阶段中小学学生转学申请表
- 临聘人员信息表
- 药品GMP指南(第2版)
- 普通诊所污水、污物、粪便处理方案及周边环境情况说明
- 成功人士的七个习惯课件
- 粤教版必修二《向心力》评课稿
- 中国建筑史PPT(东南大学)完整全套教学课件
- 2022年水利监理规划
- 哈弗汽车品牌全案策略及营销推广方案
评论
0/150
提交评论