第3章需求分析课件_第1页
第3章需求分析课件_第2页
第3章需求分析课件_第3页
第3章需求分析课件_第4页
第3章需求分析课件_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2023/9/171第3章需求分析3.1需求分析的任务3.2与用户沟通获取需求的方法3.3分析建模与规格说明3.4实体-联系图3.5数据规范化3.6状态转换图3.7其他图形工具3.8验证软件需求2023/8/61第3章需求分析3.1需求分析的任务22023/9/17

开发一个软件系统前,必须了解用户的期望和要求

重要性:软件开发的基础和前提最终目标软件系统验收的标准避免或者尽早剔除早期的错误

可行性分析阶段已经粗略了解了用户的需求,但许多细节被忽略。在系统开发前,还需要进一步确定、分析这些细节。--->需求分析过程22023/8/6开发一个软件系统前,必须了解用户的期望和32023/9/17

困难:

片面性,不完全

模糊性,不准确

不一致性,歧义等等

因此必须使用系统的方法、借助于一系列行之有效的技术和工具进行需求分析。

应用系统复杂,庞大32023/8/6困难:片面性,不完全模糊性,不准42023/9/17调查发现软件项目失败的原因:

13.1%不完整的产品要求;

12.4%缺乏用户的参与;

10.6%缺少资源(人力、财力);

9.9%不现实的期望;

9.3%高层领导支持不足;

8.7%产品要求与指标的改变;

8.1%没有订计划;

7.5%不再需耍该开发中的系统。其中,与产品需求有关的(1,2,4,和6项)占了44.1%。这些数据突出地显示了软件产品需求在软件开发中的重要性。42023/8/6调查发现软件项目失败的原因:52023/9/17软件需求

需求是指用户对软件的功能和性能的要求,就是用户希望软件能做什么事情,完成什么样的功能,达到什么性能。52023/8/6软件需求需求是指用户对软件的功能62023/9/17软件需求的层次业务需求用户需求功能需求软件需求规格非功能性需求质量特性约束和假设系统需求62023/8/6软件需求的层次业务需求用户需求功能需求软件72023/9/17软件需求管理的过程需求分析编写需求规格需求验证需求获取需求变更需求确认需求变更72023/8/6软件需求管理的过程需求分析编写需求规格需求82023/9/17需求工程基本任务需求工程需求管理需求开发需求获取需求分析需求规格说明需求验证变更管理82023/8/6需求工程基本任务需求工程需求管理需求开发需92023/9/17需求分析定义

需求分析是为最终用户所看到的系统建立一个概念模型,是对需求的抽象描述。92023/8/6需求分析定义需求分析是为最终用户所102023/9/17软件开发是要实现目标系统的物理模型。需求分析的任务就是借助于当前系统的逻辑模型导出目标系统的逻辑模型,解决目标系统“做什么”的问题。目标系统当前系统物理模型逻辑模型模型化抽象化物理模型逻辑模型具体化实例化理解需求导出怎么做做什么需求分析模型表达需求102023/8/6软件开发是要实现目标系统的物理模型。需求112023/9/17§1需求分析的任务

需求分析的基本任务:准确的回答“系统必须做什么?”(注意:

细致、精确地回答“What”(合同的拟定),而不是“How”)1、确定系统的综合性要求(1)功能要求(2)性能要求(3)可靠性和可用性需求(4)出错处理需求(5)接口需求(6)约束(7)逆向需求(8)将来可能提出的要求112023/8/6§1需求分析的任务需求分析的基本2023/9/17122、分析系统的数据要求目标系统输入信息输出信息系统处理的信息和系统应该产生的信息在很大程度上决定系统的概貌。分析系统数据要求,通常使用概念模型的方法。数据信息在数据字典中,为了直观地描绘数据结构,可采用层次方框图和Warnier图等辅助工具。采用规范化理论来规范化数据结构。2023/8/6122、分析系统的数据要求目标系统输入信息输2023/9/17133、导出新系统的逻辑模型4、修正系统的开发计划成本和进度的更准确估计。高层数据流图数据字典(粗略)可行性研究分析、具体化数据流图数据流图数据流图数据字典(详细)简明的算法描述需求分析2023/8/6133、导出新系统的逻辑模型4、修正系统的开142023/9/17需求分析是一项软件工程活动,它包括:需求获取刻划出软件的功能和性能;指明软件与其他系统元素的接口;建立软件必须满足的约束。需求建模 需求分析建立起来的模型为日后软件设计人员提供了可被翻译成数据、体系结构、接口和处理过程设计的模型。小结:需求分析的任务142023/8/6需求分析是一项软件工程活动,它包括:小结152023/9/17需求规格说明 需求规格说明为开发人员和用户提供软件开发完成时质量评价的依据。需求评审需求分析研究的对象是用户的要求。必须全面理解用户的各项要求,准确表达被接受的用户要求。只有经过确切描述的软件需求才能成为软件设计的基础。 152023/8/6需求规格说明162023/9/17需求获取需求获取是在问题及其最终解决方案之间架设桥梁的第一步。需求获取的目的是清楚地理解所要解决的问题,完整地获得用户的需求。获取需求的一个必不可少的结果是对项目中描述的客户需求的普遍理解。一旦理解了需求,分析者、开发者和客户就能探索出描述这些需求的多种解决方案。162023/8/6需求获取需求获取是在问题及其最终解决方案172023/9/17软件需求的层次业务需求反映了组织或客户对系统、产品高层次的目标要求,它们一般在项目视图和范围文档中给予说明。用户需求描述用户使用软件需要完成哪些任务,它们可通过使用实例图或脚本说明加以阐明。功能―非功能需求定义了开发者必须实现的软件功能,而非功能需求如表所示:172023/8/6软件需求的层次业务需求反映了组织182023/9/17182023/8/6192023/9/17需求获取过程需求获取包括以下活动:发现和分析问题发现问题症结,并分析问题的原因/结果关系。获取需求根据对问题的理解定义需求。使用调查研究方法收集信息;遵循需求获取框架,按照三个成分观察:即数据、过程和接口。需求归档以草稿形式归档调查结果。形式有用例、决策表、需求表等。192023/8/6需求获取过程需求获取包括以下活动:202023/9/17需求获取的步骤软件开发项目和组织文化的不同,对于需求开发没有一个简单的、公式化的途径。下面9个步骤,针对信息系统的需求获取。定义项目的视图和范围包括组织结构图、各部门的岗位/角色列表。确定用户类包括人员/责任矩阵。确定目标系统的业务工作流包括物流、资金流、信息流,建立业务工作流模型。202023/8/6需求获取的步骤软件开发项目和组织文化的不212023/9/17运用需求获取技术开发反映主要业务规则的用例(或数据流图)并设置优先级。收集来自用户的质量特性信息和其他非功能需求

将性能、安全性、可靠性等需求和其他设计约束结合业务规则,形成功能需求。分类在用例(或数据流图)中涉及的数据

包括数据的组成和数据之间的关系。详细拟订用例(或数据流图)的规格说明,

建立功能模型,并进行审查,用以澄清需求获取的参与者对需求的理解。212023/8/6运用需求获取技术开发反映主要业务规则的用222023/9/17开发并评估界面原型

设想输入设备、输出设备、显示风格、显示方式、输出格式等,建立接口规范和信息流传输规则。从功能描述中开发概念测试用例

用测试用例来验证用例(或数据流图)、功能需求和原型。222023/8/6开发并评估界面原型设想输入设备、232023/9/17需求获取可能是软件开发中最困难、最关键、最易出错及最需要交流的方面。表现在:需求的不稳定性:在整个软件生存周期内软件需求会随着时间的推移发生变化;需求的不准确性:用户和开发人员的认识会随着使用系统实现业务流程的实践逐步提高,一开始不可能设想得面面俱到。需求获取只有通过有效的客户/开发者的合作才能成功。232023/8/6需求获取可能是软件开发中最困难、最关键、242023/9/17需求整理与表达的方法采用穷举方法可以避免遗漏。采用归纳方法,通过对各种情况进行综合分类可以使问题条理化。采用抽象方法,可以发现问题的实质,抓住问题的主要矛盾,忽略其次要矛盾。需求整理可以多种手段共用,如组织结构图、业务流程图、多叉树、关系矩阵、文字叙述、表格、图形等。需求描述包括组织结构与岗位定义、业务流程、处理规则、数据项、功能以及上述5个方面的关系。242023/8/6需求整理与表达的方法采用穷举方法可以避免252023/9/17§2与用户沟通获取需求的方法不需分解有补充修正无补充修正分析追踪数据流图用户复查细化数据流图需要分解访谈面向数据流自顶向下求精(细化数据流图)

加细前后的I/O须相同。分解到须考虑具体实现的代码时即可停止简易的应用规格说明技术快速建立软件原型

1)废弃型

2)追加型或演化型252023/8/6§2与用户沟通获取需求的方法不需分解有262023/9/17§3分析建模与规格说明需求建模是为了分析需求,以确定项目的确切需求需求建模遵循三个原则:

划分:描述需求的整体–部分关系;

抽象:描述需求的一般化–特殊化关系;

投影:描述需求的多维视图;定义系统模型要区分逻辑模型和物理模型。常用模型有数据建模、功能建模和过程建模。262023/8/6§3分析建模与规格说明需求建模是为了分272023/9/17常用的分析方法面向数据流的结构化分析方法(SA)面向数据结构的Jackson方法(JSD)面向数据结构的结构化数据系统开发方法(DSSD)面向对象的分析方法(OOA)等272023/8/6常用的分析方法面向数据流的结构化分析方法282023/9/17结构化分析方法最初只是着眼于数据流,自顶向下,逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。扩充后,将建模技术扩展到数据建模、功能建模和行为建模,以实体-关系图、数据流图和控制流图、状态-迁移图为工具,数据字典为核心,从不同视点建立系统的分析模型。结构化分析方法282023/8/6结构化分析方法最初只是着眼于数据流,自顶292023/9/17结构化分析的分析模型实体—关系图状态—迁移图数据流图数据对象描述加工规格说明数据字典控制规格说明292023/8/6结构化分析的分析模型实体—状态—迁移图数302023/9/17需求规格需求分析工作完成的一个基本标志是形成了一份完整的、规范的需求规格说明书需求规格说明书的编制是为了使用户和软件开发者双方对该软件的初始规定有一个共同的理解,使之成为整个开发工作的基础。302023/8/6需求规格需求分析工作完成的一个基本标志是312023/9/17软件需求规格说明的原则从现实中分离功能,即描述要“做什么”而不是“怎样实现”采用一定的规格说明语言如果被开发软件只是一个大系统中的一个元素,那么整个大系统也包括在规格说明的描述之中规格说明应该包括系统运行环境规格说明应该是一个认识模型规格说明应该容许不完备性并允许扩充312023/8/6软件需求规格说明的原则从现实中分离功能,322023/9/17需求规格说明的内容基于IEEE830改写的规格说明模板内容:引言a.1目的a.2文档约定

a.3预期的读者和阅读建议a.4产品的范围a.5参考文献综合描述

b.1产品的前景

b.2产品的功能322023/8/6需求规格说明的内容基于IEEE830改332023/9/17b.3用户类和特征b.4运行环境b.5设计和实现的限制b.6假设和依赖外部接口

c.1用户界面

c.2硬件接口

c.3

软件接口

c.4

通信接口系统特性

d.1说明和优先级332023/8/6b.3用户类和特征342023/9/17d.2激励/响应序列d.3功能需求其他非功能需求

e.1性能需求

e.2基本设施需求

e.3

安全性需求

e.4

软件质量属性

e.5

业务规则

e.6用户文档其他需求附录A:词汇表附录B:软件需求分析模型附录C:待确定的问题342023/8/6d.2激励/响应序列352023/9/17§4实体-联系图(ER图)数据模型包括三种互相关联的信息:数据对象,描述对象的属性,描述对象间相互连接的关系。在需求分析阶段描述数据对象和它们之间的关系,使用了E-R图。例如,在教学管理中,一个教师可以教授零门、一门或多门课程,每位学生也需要学习几门课程。因此,教学管理中涉及的对象有学生、教师和课程。数据建模352023/8/6§4实体-联系图(ER图)数据模型包362023/9/17⑴实体实体是客观世界中存在的且可相互区分的事务。实体可以是人也可以是物,可以是具体的事物也可以是抽象概念。例如,职工、学生、课程、教师等都是实体。⑵关系111NMN客观世界中的事物彼此间往往是有联系的,例如,教师与课程间存在“教”这种联系。⑶属性属性是实体或联系所具有的性质。通常一个实体由若干个属性来刻画。例如,“学生”实体有学号、姓名、性别、系、年级362023/8/6⑴实体实体是客观世界中存在的且可相互区372023/9/17教学数据模型学号姓名专业性别……学生职工号姓名专业职称年龄教师课程号课程名学分学时

……课程学号课程号成绩选课372023/8/6教学数据模型学号姓名专业382023/9/17实例的关联有三种:一对一(1:1);一对多(1:m);多对多(n:m)。这种实例的关联称为“基数”,基数表明了“重复性”。教师学生教授基数:一位教师基数:多位学生参与度:必须参与度:可选382023/8/6实例的关联有三种:一对一(1:1);392023/9/17XY一个X与一个Y相关联一个X与一个或多个Y相关联XY一个X与零个或一个Y相关联XY一个X与零个,一个或多个Y相关联XY一个X与一个Y或Z相关联XYZ一个X与一个Y与Z相关联XYZ392023/8/6XY一个X与一个Y相关联一个X与一个或多402023/9/171-NF:所有属性都是原子值,即不出现“表中有表”范式(NormalForms):消除数据冗余的程度§5数据规范化402023/8/61-NF:所有属性都是原子值,即不出412023/9/172-NF:在1-NF基础上,每个非主属性都由整个主关键字决定(而非依赖于主关键字的一部分)。例:“Major”实际上由“ID”的第5、6位决定,可省去。IDNameMajor200104423张望计算机200104512李望计算机200112302赵望艺术200112434钱望艺术412023/8/62-NF:在1-NF基础上,每个422023/9/173-NF:在2-NF基础上,非主属性之间无依赖关系。422023/8/63-NF:在2-NF基础上,非主属432023/9/17功能建模和数据流最初,结构化分析方法仅讨论数据流建模,目标系统被表示成如图所示的数据变换流程图。系统的功能体现在核心的数据变换中。外部实体外部实体外部实体外部实体目标系统输入信息输入信息输出信息输出信息顶层数据流图(上下文环境图)432023/8/6功能建模和数据流最初,结构化分析方法仅讨442023/9/17数据流图中的主要图形元素数据加工(数据变换)数据源或数据潭(外部实体)数据流数据存储文件或或442023/8/6数据流图中的主要图形元素数据加工(数据452023/9/17分层的数据流图452023/8/6分层的数据流图462023/9/17领书单

进书通知

购书单

缺书单

学生教材购销系统书库保管员案例1:售书系统DFD是系统中各处理功能以及它们之间数据流动的图形表示--刻划系统功能和行为462023/8/6领书单472023/9/17领书单进书通知

进书通知

购书单缺书单

1销售

2采购书库保管员

学生F1教材存量表

F2缺书登记表

472023/8/6领书单482023/9/17案例2:工资计算系统的顶层(0层)数据流图482023/8/6案例2:工资计算系统的顶层(0层)数据流492023/9/17工资计算系统第一层数据流图492023/8/6工资计算系统第一层数据流图502023/9/17工资计算系统的第二层数据流图(a)“计算工资”子数据流图;(b)“工资转存”子数据流图奖惩条例F1工资档案F2502023/8/6工资计算系统的第二层数据流图奖惩条例F1512023/9/17行为建模行为建模给出需求分析方法的所有操作原则,但只有结构化分析方法的扩充版本才提供这种建模的符号。数据流图不描述时序关系,控制和事件流通过行为模型描述。在描述系统或各个数据对象的行为时,采用状态迁移图。通过描述系统或对象的状态,以及引起系统或对象状态转换的事件来表示系统或对象的行为。§6状态转换图(状态迁移图)512023/8/6行为建模行为建模给出需求分析方法的所有操522023/9/17描述系统的状态如何相应外部的信号进行推移的一种图形表示。

圆圈“○”表示可得到的系统状态

箭头“→”表示从一种状态向另一种状态的迁移状态转换图(简称为状态图)通过描绘系统的状态及引起系统状态转换的事件,来表示系统的行为。此外,状态图还指明了作为特定事件的结果,系统将做哪些动作(例如,处理数据)。

522023/8/6描述系统的状态如何相应外部的信号进行推移532023/9/171.组成部分及其符号表示

532023/8/61.组成部分及其符号表示542023/9/17状态是任何可以被观察到的系统行为模式,一个状态代表系统的一种行为模式。状态规定了系统对事件的响应方式。

在状态图中定义的状态主要有:初态(即初始状态)、终态(即最终状态)和中间状态。在一张状态图中只能有一个初态,而终态则可以有0至多个。

542023/8/6状态是任何可以被观察到的系统行为模式,一552023/9/17状态图既可以表示系统循环运行过程,也可以表示系统单程生命期。

事件是在某个特定时刻发生的事情,它是对引起系统做动作或系统状态转变的外界事件的抽象。状态图中两个状态之间带箭头的连线称为状态转换,箭头指明了转换方向。

552023/8/6状态图既可以表示系统循环运行过程,也可以562023/9/17可得到的状态:等待,运行,就绪事件:t1─中断已处理t2─分配CPUt3─用完CPU时间t4─中断事件运行就绪等待t2t3t1t4

例:当有多个申请占用CPU运行的进程时,进程的状态迁移。562023/8/6可得到的状态:等待,运行,就绪运行就绪等572023/9/172.状态转换图实例

画出电话系统的状态图。没有人打电话时电话,电话处于闲置状态;有人拿起听筒,则进入拨号音状态,到达这个状态后,电话的行为是响起拨号音并计时;这时如果拿起听筒的人改变主意不想打了,他把听筒放下(挂断),电话重又回到闲置状态;如果拿起听筒很长时间不拨号(超时),则进入超时状态;……。

572023/8/62.状态转换图实例画出电话系统的状态582023/9/17582023/8/6592023/9/17数据字典数据字典是结构化分析方法的核心,与各模型的图形表示配合,能清楚地表达数据处理的要求。词条描述——对于在模型中每一个被命名的图形元素,均加以定义,其内容有:名字,别名或编号,分类,描述,定义,位置,其它,等592023/8/6数据字典数据字典是结构化分析方法的核心,602023/9/17§7其它图形工具1、层次方框图(Hierarchy)——用树型结构的一系列多层次的矩形框描绘数据的层次结构。顶层代表完整的数据结构,下面的各层矩形框代表这个数据的子集,最底层的各个框代表组成这个数据的实际数据元素(不能再分割的元素)。例1:602023/8/6§7其它图形工具1、层次方框图(Hi612023/9/17例2:某单位职工实发工资的层次方框图612023/8/6例2:某单位职工实发工资的层次方框图622023/9/17例1:2、Warnier图——用树型结构描绘信息,可以表明信息的逻辑组织(重复或条件出现),比层次方框图提供了更丰富的描绘手段。{:层次(n):重复n次

:二者择一622023/8/6例1:2、Warnier图——用树型结632023/9/17{:层次(n1,n2):重复n1到n2次

:二者择一例2:头条新闻地区队头版国内新闻体育新闻职业队本地新闻拳击社论(1,1)经营简讯专栏(1,3)

报纸社论读者来信(1,3)副刊商业新闻雇员简讯讽刺漫画(0,1)一般新闻体育新闻招生副刊商业新闻广告招聘广告求助细化632023/8/6{:层次(n1,n2):重复n1到n2642023/9/173、IPO图(Input/Process/Output):描绘输入数据、对数据的处理和输出数据之间的关系。在需求分析阶段可以使用IPO图简略地描述系统的主要算法(DFD中各个处理的基本算法)。1.校验主记录2.校验事务记录3.更新主

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论