您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 软件工程(张海藩)第3章
第3章需求分析3.1需求分析的任务3.2与用户沟通获取需求的方法3.3分析建模与规格说明3.4实体-联系图3.5数据规范化3.6状态转换图3.7其他图形工具3.8验证软件需求3.9小结1如何准确有效地得到用户的需求为什么要进行需求分析在需求阶段修复一个错误的费用是编码阶段的1/5到1/10,是维护阶段修复费用的1/100到1/200。因此,我们可以认为,设计错误的修复费用要远远高于编码错误的修复费用。通过“分析”,理解用户的各种问题,通过“规格说明”把问题表达出来。要求大家:(1)掌握具体的步骤和方法(2)提高分析问题和解决问题的能力(3)熟练运用一些图形工具2基本概念开发过程的两大阶段(1)正确地确定问题(2)为问题寻找合适的解答目的澄清用户的各种需求基本任务用户和软件人员双方一起来充分理解用户的要求,并把双方共同的理解明确地表达成一份书面文档——软件需求规格说明书。3在软件生命期的每个阶段中,分析阶段是面向“问题”的,它主要是对用户的业务活动进行分析,明确在用户的业务环境中,软件系统应该“做什么”。4需求分析的任务确定对系统的综合要求1.确定系统的功能要求提出系统必须完成的全部所有功能2.确定系统的性能要求(1)系统的响应时间(2)系统需要的存储容量(3)后援存储器容量、系统重新启动(4)系统的安全性和可靠性3.确定系统的运行要求(1)支持系统运行的软件环境(2)工具软件和系统软件(3)支持系统运行的硬件环境(4)外存储器、通信接口、输入和输出4.确定系统的扩充要求5分析系统的数据要求建立数据模型(层次方框图、Warnier图)导出系统的逻辑模型数据流图实体—联系图状态转换图数据字典主要的处理算法修正系统开发计划6需求分析的过程需求分析阶段可分为四个过程:调查研究、分析与综合、书写需求分析的文档和评审。(1)调查研究目的:通过各种途径获取用户需求信息产生《用户需求说明书》角色与职责:需求分析员调查、分析用户的需求,客户与最终用户提供必要需求信息7(2)分析与综合从信息流和信息结构出发,逐步细化所有的软件功能,找出系统各元素之间的联系、接口特性和设计上的约束,分析它们是否满足功能要求。(3)书写需求分析文档软件需求说明书数据要求说明书初步的用户手册修改、完善与确定软件开发实施计划8(4)需求分析的评审系统定义的目标是否与用户的要求一致系统需求分析阶段提供的文档资料是否齐全文档中的所有描述是否完整、清晰、准确反应用户要求与所有其它系统成分的重要接口是否都已经描述9需求获取的方法系统分析员建立需求的过程中所遇到的困难⑴分析员与领域专家交流的过程中,容易产生误解⑵大型系统有时会有不同的用户群体,他们往往会提出相互矛盾的要求,分析员要寻求令所有用户满意的答案很难⑶需求永远不会稳定。系统工程环境一旦改变,用户对软件的需求也会改变,而且这种需求往往无法预测。10访谈访谈有正式访谈和非正式访谈两种形式。非正式访谈以一种较自由的形式,交换对问题的看法,主要是了解问题的性质、需要解决的方案、所需的人数和能力,关注客户的目标和收益。正式访谈将根据一些事先准备好的议题全面展开讨论,得出结论性的意见。11情景(场景)分析是从软件系统的一个交互情景示例中得到需求分析信息,然后将其以形式化方式表示出来。情景分析是用户在某种程度上演示产品的应用“样本”,通过交互实例片断细节(情景)的描述,实现对某个目标产品的表述。每个情景可能包含一个或多个交互,它们能在不同的细节层次上提供不同类型的情景信息。情景开始于一个框架,在导出过程中,细节被逐渐增加,直到产生交互的一个完整的描述。12场景(情景)内容通常,一个场景(情景)可能包括:①在场/情景开始部分有一个系统状态描述;②一个关于标准事件流的描述;③一个关于哪儿会出错,以及如何处理错误的描述;④有关其他可能在同一时间进行的活动的信息;⑤在场/情景完成后系统状态的描述。13面向数据流自顶向下求精结构化分析方法(SA)就是面向数据流自顶向下逐步求精进行需求分析的方法。“结构化分析”(“StructuredAnalysis”)是一个简单实用,使用广泛的方法。它适用于分析大型的数据处理系统,尤其是企事业管理方面的系统,这个方法通常与设计阶段的结构化设计方法(SD)衔接起来。14软件工程技术中,控制复杂性的两个基本手段是“分解”和“抽象”。分解:把大问题分割成若干个小问题,然后分别解决。15对于一个复杂的系统(比如银行管理系统)如何理解和表达它的功能呢?SA方法使用了“自顶向下逐层分解”的方法。16“逐层分解”体现了分解和抽象的原则,它使我们不至于一下子陷入细节,而是有控制地逐步地了解更多的细节,这是有助于理解问题的。无论系统多么复杂,分析工作都可以有计划有步骤、有条不紊地来进行,系统规模再大,分析工作的复杂程度不会随之增大,而只是多分解几层而已,所以SA方法有效地控制了复杂性。18描述方式SA方法采用了介于形式语言和自然语言之间的描述方式。用SA方法获得的需求说明书由以下几部分组成:一套分层的数据流图一本数据字典一组小说明补充材料19“数据流图”描述系统的分解,即描述系统由哪些部分组成,每个部分之间有什么样的联系等;“数据字典”描述系统中的每一个数据;“小说明”详细描述系统中的每一个加工;“补充材料”是根据需要对系统的补充。以上就可以明确而完整地描述一个系统的功能20结构化分析方法在描述上的特点:尽量采用图形表示,比较形象、直观和易于理解。21系统的分析过程1.理解当前的现实环境,获得当前人工系统的具体模型2.从当前系统的具体模型抽象出当前系统的逻辑模型3.分析目标系统与当前系统逻辑上的差别,建立目标系统的逻辑模型4.为目标系统的逻辑模型作补充22小说明SA方法的基本思想:将一个大型复杂的系统逐层分解成许多个足够简单的基本加工,然后分别理解每个基本加工,并为每个基本加工详尽地写下“小说明”,再将所有这些“小说明”组织起来,就得到了整个系统的说明书。23小说明中应精确地描述用户要求一个加工“做什么”,这包括加工的激发条件、加工逻辑、优先级、执行频率、出错处理等等。其中最基本的部分是加工逻辑。24注意对一个加工应描述的是用户要求这个加工“做什么”,而不是用编程语言来描述具体的加工过程。25快速原型法基本思想:在很短的时间内建立起一个只包含基本数据库和一些基本功能的原型给用户使用,然后根据用户意见对原型进行修改,直到满意为止。26短时间内建立原型用户满意修改,完善原型否是完成原型27结构化分析模型的体系结构数据字典实体-关系图数据流图加工规约数据对象描述状态转换图控制规约结构化分析模型的体系结构28实体-联系图1.实体“实体”是信息世界中描述客观事物的概念。实体可以是现实世界的人、物、抽象的概念、事物之间的联系等。如一个人,一件物品,一个部门,一种思想等都可以是实体。(实体有总体和个体之分)2.属性“属性”是指实体具有的某种特性。属性是对实体的进一步描述。如学生实体可由学号、姓名、年龄、性别、系、年级等属性来刻画。(属性有属性名和属性值的概念)293.联系现实世界里的事物总是存在着这样或那样的联系,这种联系必然要在信息世界中得到反映。在信息世界中,事物之间的联系可分为两类:一是实体内部的联系,如组成实体的各属性之间的关系;另一是实体之间的联系,这里我们主要讨论实体与实体之间的联系30系统建模的一个重要方面是定义系统处理的数据的逻辑结构。实体—关系模型描述数据实体、关联以及实体属性。该模型用实体-关系图描述现实世界中的实体,而不涉及实体在系统中的实现方法。实体彼此间的联系分为三类:一对一(1:1)联系,一对多(1:N)联系,多对多(M:N)联系。31设A,B为两个包含若干个体的总体,其间建立了某种联系,其联系方式可分为三类:一对一联系、一对多联系(包括多对一联系)、多对多联系。AB32AB1:nn:mAB33一对一联系:如果对于A中的每一个实体,B中至多有一个实体与其对应;B中的每一个实体也至多对应A中的一个实体,则称A与B是一对一的,记作1:1。比如:学校校长领导11工厂厂长管理11科室主任病区负责11属性1属性n属性1属性n校名属性n属性1校址姓名职称属性1属性n属性1属性n属性1属性n属性1属性n34一对多联系:如果对于A中的一个实体,B中有一个以上的实体与之对应;B中的每一个实体至多对应A中的一个实体,则称A与B是一对多的,记作1:n。比如:学校班级下设1n工厂车间有1n病区医生拥有1n属性1属性n属性1属性n属性1属性n校名校址属性1属性n属性1属性n班名人数属性1属性n属性1属性n35多对多联系(M∶N)如果A中有实体对应B中一个以上实体;B中也有实体对应A中一个以上实体,则称A与B为多对多的,记作m:n。比如:学生课程选课mn项目职工参加mn医生病人诊治mn成绩属性1属性n记录学号姓名属性1属性n属性1属性n课程号课程名属性1属性n属性1属性n36实体——矩形框——联系——菱形框——属性——椭圆形——4.符号374.如何设计E-R图考察客观事物及其联系,抽象出实体,并一一命名(不能重名)根据需求确定实体的属性根据属性外在的联系,描述实体间的联系先作出局部E-R图,再综合产生总体E-R图。总体E-R图不是各局部E-R图的简单拼合,而是有可能增加了某些联系,也有可能减少了某些联系384.实例一个学生管理系统的实体-关系图【步骤】(1)考察客观事物及其联系,抽象出实体,并一一命名(不能重名)实体:教师,学生,课程(2)根据需求确定实体的属性教师:教工号,姓名,性别,职称,职务学生:学号,姓名,性别,系,年级课程:课程号,课名,学时,学分39(3)根据属性外在的联系,描述实体间的联系教:教师教课程学:学生学课程(4)画出E-R图40状态转换图状态模型是一种描述系统对内部或者外部事件响应的行为模型。它描述系统状态和事件,以及事件引发系统在状态间的转换。状态模型一般采用状态转换图(状态图)标记方法。状态图提供了行为建模机制。状态图描述了系统中某些复杂对象的状态变化,主要有状态、变迁和事件三种描述。状态1状态2事件/触发行为41(1)状态•状态是任何可以被观察到的系统行为模式,一个状态代表系统的一种行为模式。•状态规定了系统对事件的响应方式。•系统对事件的响应可以是做一个(或一系列)动作,也可以只是改变系统本身的状态,还可以既改变状态又做动作。•状态图中定义的状态有:初态、终态和中间状态;•在一张状态图中只能有一个初态,而终态可以有若干个。(2)事件•事件是引起系统做动作或转换状态的控制信息42(4)实例【一】电话系统状态图43【二】CPU分配的进程状态转换图运行等待就绪t1t2t3t444【三】一个复印机控制软件简化的状态图读命令复印重加载纸诊断问题闲置与“读命令”相关非卡纸与“读命令”相关卡纸与“完成问题”相关“满”和“开始”与“复印”相关复印与“读命令”相关满与“读命令”相关缺纸45其他图形工具(一)层次方框图层次方框图用树形结构的一系列多层次的矩形框描绘数据的层次结构。46(二)Warnier图由法国专家Warnier提出用树形结构描绘信息表明了信息的逻辑组织结构47(三)IPO图描述输入数据、处理数据和输出数据形式:左边框——输入数据中间框——主要处理右边框——输出数据48验证软件需求验证软件需求的正确性一致性:所有的需求一致,任何一条不能和别的冲突完整性:应考虑到用户要求的所有功能和性能现实性:在现有技术的基础上应能实现需求有效性:能解决用户遇到的问题验证软件需求的方法用于需求分析的软件工具RSL(需求陈述语言)PSL/PSA(问题陈述语言/问题陈述分析程序)49结构化分析步骤⑴问题描述⑵画分层的数据流图⑶决定哪些部分需要计算机化和怎样计算机化⑷数据细节描述⑸定义处理逻辑⑹定义物理资源⑺确定输入/输出规格说明,确定有关数值⑻确定硬件需求⑼根据结构化分析模型,建立系统规格说明文档50用结构化分析方法分析图书馆系统【问题描述】①一个图书馆藏有图书
本文标题:软件工程(张海藩)第3章
链接地址:https://www.777doc.com/doc-1371807 .html