您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 软件工程第3章需求分析
第3章需求分析第3章需求分析3.1需求分析的任务和原则3.2初步需求获取技术3.3需求建模3.4实体关联图3.5辅助图形工具3.6需求规格说明与评审——需求验证3.7一个实例分析需求分析的任务与原则3.1需求分析的任务与原则基本任务:准确定义系统的目标,回答“系统必须做什么?”任务的承担者:需求分析小组或系统分析员三种模型:数据模型:描述问题信息域——实体-联系图功能模型:定义软件功能——数据流图行为模型:描述软件行为——状态转换图三个阶段:1.需求获取阶段(问题分析)2.需求规约/规格说明阶段(需求描述)3.需求验证阶段(需求评审)一.需求获取阶段——问题分析1.任务:通过多种方式(与用户交流、实践等)清晰地理解所要解决的问题,完整的获取用户的需求。2.原则:1).找出用户的不合理需求和潜在需求。2).对用户的需求进行建模。3.作用:准确地描述用户从多个不同视点、不同抽象层次上对原始问题及目标软件系统的认识;帮助需求分析人员分析发现用户需求中的不一致性,排除不合理部分,挖掘潜在用户需求;有助于形成需求规格说明书。3.1需求分析的任务与原则二.需求规约阶段——问题描述3.1需求分析的任务与原则1.任务:以需求模型为基础,考虑到问题的软件可解性,生成软件的需求规格说明书和初步的用户手册。2.原则:确保需求规格说明书对用户需求描述的完整性、一致性和准确性鼓励用户参与需求规格说明书以及用户手册的制定尽可能做到结构清晰,措辞准确和简洁三.需求验证阶段——需求评审3.1需求分析的任务与原则1.任务:让用户和设计人员对需求规格说明以及用户手册的理解达成一致。2.原则:确保需求规格说明书和用户手册是一致、完全和准确的;支持各方(用户,需求分析人员、设计人员)参与评审工作。需求分析的任务与原则3.1需求分析的任务与原则需求分析的任务:3.1.1确定对系统的综合要求:P56功能需求、性能需求、运行要求、未来可能的扩充要求等3.1.2分析系统的数据要求:P57建立概念模型(ER图)形象描绘数据结构(层次方框图、Warnier图、IPO图)数据结构规范化3.1.3导出系统的逻辑模型:P583.1.4修正系统开发计划:重估成本、进度3.1.5开发原型系统需求分析的任务与原则3.1需求分析的任务与原则3.2初步需求获取技术问题域用户需求分析员交流初步需求获取技术一.访谈和会议3.2初步需求获取技术采用访谈和小组会议的形式与用户进行沟通和交流,据此逐步理解用户对目标软件系统的期望和需求。原则:循序渐进、自由发挥、反映全貌常用方法:正式访谈(具体问题);非正式访谈(开放式问题)大量人员意见:分发调查表,并针对性地回访一些人员通过实践和观察用户工作流程来理解问题和获取用户的需求情景分析技术P58一.访谈和会议3.2初步需求获取技术分析人员和用户共同组成的联合开发小组,有利于:激发各方的主动精神;建立良好的合作关系;便于交流和沟通;消除误解和遗漏。联合小组要有自己的工作制度和计划,不断进行交流一.访谈和会议——案例分析3.2初步需求获取技术开发目标——家庭保安系统家庭保安系统能够识别异常事件(非法进入、水灾、火灾)并采取相应的防范措施。一旦异常事件被相应的传感器识别出来,系统将自动地用电话线向监控中心汇报。系统允许用户对其行为进行可配置的控制。一.访谈和会议——案例分析3.2初步需求获取技术1.建立联合小组:参与者:用户、需求分析人员;工作制度:每次会议有议程、充分准备2.会议讨论,明确问题、范围、环境等等,逐步了解用户需求。会议应有纪录,整理形成文档3.分成二个小组:用户配置控制子系统和传感器监测子系统。目的:对子问题的软件需求进行更全面、细致、准确地工作4.各个小组组合在一起讨论子系统之间的整合以及整个系统的汇总5.形成结论性的需求分析文档二.基于数据流的分析方法3.2初步需求获取技术本质上是运用抽象和分解技术,自顶向下、逐步求精、在不同的抽象层次上理解用户需求的过程。数据流图是问题域中各个处理子功能以及它们之间数据流动的图形表示。数据流图的精化过程实际上是对各个处理子功能(变换)的细化过程,也是对这样一些处理子功能理解和认识上逐步提高的过程。随着精化过程的不断进行,用户需求逐步准确化、一致化和完全化。二.基于数据流的分析方法1.建立顶级数据流图3.2初步需求获取技术根据问题域与外部环境之间的相互关系定义问题域的边界,即问题域与外界环境之间的输入和输出关系。家庭保安系统顶级数据流图传感数据控制面板传感器显示器警报器电话机家庭保安系统用户命令电话拨号警报类别显示信息二.基于数据流的分析方法2.自顶向下,功能分解3.2初步需求获取技术数据流图的分层描述又称为结构化分析(StructuralAnalysis),简称SA法。方法:1.对用户的需求描述进行语法分析:名词或名词短语——潜在的数据流、数据源和外部实体动词——潜在的处理功能。2.结合对需求的理解,确定功能及功能间的数据流,构造出下一级数据流图。可能需要更新数据字典。二.基于数据流的分析方法2.自顶向下,功能分解3.2初步需求获取技术传感数据控制面板传感器显示器警报器电话机家庭保安系统用户命令电话拨号警报类别显示信息二.基于数据流的分析方法2.自顶向下,功能分解3.2初步需求获取技术家庭保安系统各级数据流图传感数据控制面板传感器显示器警报器电话线传感器监测用户命令电话拨号警报类别显示信息用户命令处理传感器信息传感数据传感器监测配置数据电话拨号警报类别异常数据判别传感器信息配置数据传感器有效信息生成警报信息报警信息生成警报信息电话号码二.基于数据流的分析方法2.自顶向下,功能分解3.2初步需求获取技术数据流图的分层原则:1.正确使用数据流图中的各个图形要素;如一个变换既有输入,又有输出;2.每个数据流、数据源、外部实体在数据字典中均有定义;3.数据流图中最底层的变换必须在变换说明中加以说明;4.父图和子图之间必须保持平衡,即:加细前后的I/O一致。二.基于数据流的分析方法2.自顶向下,功能分解3.2初步需求获取技术例如:异常数据判断子功能1.参数:传感器有效信息;类别:传感器信息纪录2.处理步骤:(a)将传感器信息传送到用户处理子系统中;(b)根据配置信息,生成报警信息;(c)根据配置信息,获取相应的电话号码,传送给电话拨号子功能;3.约束条件3.2初步需求获取技术例1:试判断下述分层数据流图是否平衡01230AA=a+bB=c+dB12abcd√√0ABA=a+b1a2bB0B=a+bABC1A2aaCC3.2初步需求获取技术例1:试判断下述分层数据流图是否平衡X√3.2初步需求获取技术例2:银行活期储蓄业务数据流图应用举例储户活期储蓄业务处理储户数据存储储户数据变更后的储户数据储户业务数据与存折存折与变更数据储户业务数据=基本业务数据+业务种类其中:基本业务数据=姓名+帐号+变更金额+变更日期;业务种类=[存款,取款]存折=姓名+帐号+密码+{变更日期+变更金额+变更状态}+变更后余额其中:变更状态=[存款,取款]3.2初步需求获取技术例2:银行活期储蓄业务数据流图顶层图(0层图)储户受理业务储户业务数据与存折(现金)存款业务处理取款业务处理核实后的基本业务数据与存折(现金)存折存折+现金储户数据存储储户数据储户数据变更后的储户数据变更后的储户数据基本业务数据错误与存折(现金)3.2初步需求获取技术例2:银行活期储蓄业务数据流图——受理业务1层图1.1帐号、姓名数据检查储户基本业务数据与存折(现金)1.2业务种类区分核实后的基本业务数据与存折(现金)业务种类数据基本业务数据错误报告与存折(现金)核实后的基本业务数据与存折(现金)3.2初步需求获取技术例2:银行活期储蓄业务数据流图——存款业务1层图2.1存款金额数据检查储户核实后的基本业务数据与存折(现金)现金数据错误报告与存折(现金)储户数据存储2.2储户数据存储检查存折储户数据2.3变更储户数据核实后的基本业务数据核实后的储户数据与存折变更后的储户数据存折储户数据错误报告管理人员3.2初步需求获取技术例2:银行活期储蓄业务数据流图——取款业务1层图储户核实后的基本业务数据、储户数据与存折取款数据错误报告与存折储户数据存储3.1储户数据存储检查储户数据3.2密码数据检查存折与现金变更后的储户数据储户键入密码储户数据错误报告管理人员核实后的基本业务数据与存折秘码数据错误报告与存折3.3变更储户数据核实后的基本业务数据、储户数据与存折银行活期储蓄业务数据流图取款业务1层图3.2初步需求获取技术例2:银行活期储蓄业务数据流图若有时间请课后自行完成:a)基于上述数据流图试补上后续各层的数据流图b)为上述各图中出现的数据名写出数据字典注:精化过程适可而止如果某一处理子功能可以用简洁、准确的文字来描述清楚,就无需进一步的分解。精化应避免涉及涉及细节。二.基于数据流的分析方法3.支持数据流分析的CASE工具3.2初步需求获取技术建模(数据流图、数据字典、变换说明等)信息的存储、显示和检索其它工作如一致性检查等等顶级数据流图一级数据流图二级数据流图1.自上而下,功能分解2.数据字典、小说明3.父图和子图平衡。。。。。。。三、简易的应用规格说明技术访谈/面向数据流自顶向下求精方法定义需求时:用户处于被动地位,有意无意地与开发者区分“彼此”。“面向团队的需求收集法”,又称“简易的应用规格说明技术”。用户与开发者形成团队,不分彼此:共同标识问题,指定基本需求。信息系统领域使用的主流技术。三、简易的应用规格说明技术过程:初步访谈,通过用户对基本问题的回答,初步确定待解决的问题的范围和解决方案。开发者和用户分别写出“产品需求”。选定会议的时间和地点,并选举一个负责主持会议的协调人。邀请开发者和用户双方组织的代表出席会议,并在开会前预先把写好的产品需求分发给每位与会者。在开会前:每位与会者认真审查产品需求,并不期望每位与会者列出的内容都是毫无遗漏的,但是,希望能准确地表达出每个人对目标系统的认识。三、简易的应用规格说明技术会议:讨论的第一个问题是,是否需要这个新产品;一旦确定需要,每位与会者把各自会前准备好的列表展示出来供大家讨论。大家共同创建一张组合列表。在组合列表中消去冗余,加入了在展示过程中产生的新想法,但是并不删除任何实质性内容。把与会者分成更小的小组,每个小组的工作目标是为每张列表中的项目制定小型规格说明。小型规格说明是对列表中包含的单词或短语的准确说明。每个小组都展示各自的小型规格说明,供大家讨论。每个与会者都制定出产品的一整套确认标准,并把自己制定的标准提交会议讨论,以创建出意见一致的确认标准。最后,由一名或多名与会者根据会议成果起草完软件需求规格说明书。四.快速建立软件原型是最准确、最有效的需求分析技术实现用户看得见的功能(如,屏幕显示或打印报表),省略目标系统的“隐含”功能(如,修改文件)。“原型”:演示目标系统主要功能的可运行程序;让用户评估并提出修改意见,从而准确地获取用户的需求。当原型最终被用户接受和确定后,再对目标软件系统进行开发3.2初步需求获取技术四.快速原型方法的需求分析步骤初步的需求规格说明书设计规格说明书原型交用户评估意见:需求12343.2初步需求获取技术四.快速建立软件原型构建原型的方法:第四代技术:数据库查询和报表语言、程序生成器以及Python,Perl等语言。用于快速地生成可执行代码可重用的软件构件使用一组已有的软件构件来装配(而不是从头构造)原型。构件:数据结构(或数据库),或软件体系结构构件(即程序),或过程构件(即模块)。重用构件时,不知其内部工作细节。3.2初步需求获取技术四.快速建立软件原型构建原型的方法:形式化规格说明和原型环境人们已经研究出许多形式化规格说明语言和工具(参见第4章),用于替代自然语言规格说明技术。今天,形式化语言的倡导者正在
本文标题:软件工程第3章需求分析
链接地址:https://www.777doc.com/doc-213321 .html