您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 结构设计 > 第03章1结构化分析与设计分析
第三章结构化分析与设计——分析在软件的整个生命周期中,首先是软件计划期,接着是软件开发期,软件需求分析是软件开发的第一个阶段,也是关系到软件开发成功与否的关键一步。本章的学习是基于已完成软件计划的基础上进行的。3.1需求分析的任务与步骤3.2需求获取的常用方法3.3分析建模3.4软件需求说明3.5结构化分析方法软件需求分析——结构化方法软件在需求分析和设计阶段占用的工作量达到总工作量的40%~50%,说明软件开发前期的活动多么重要。当然这也包括分阶段开发原型的开销。大家熟悉的编码工作只占全部工作量的10%~20%,而软件测试和调试的工作量占到总工作量的30%~40%,甚至≥50%。3.1需求分析的任务与步骤3.1.1需求分析的任务需求分析的任务就是准确地回答“系统必须做什么?”这个问题,是通过系统分析员与用户一起商定,清晰、准确、具体地描述软件产品必须具有的功能、性能、运行规格等要求。软件需求分析阶段的目的是澄清用户的要求,并把双方共同的理解明确地表达成一份书面文档——软件需求规格说明书。3.1需求分析的任务与步骤需求分析的任务就是借助于当前系统的逻辑模型导出目标系统的逻辑模型。主要有两个任务:1、建立分析模型——数据、功能和行为模型2、编写需求说明书。其实现模型如下图所示:系统实现模型目标系统当前系统物理模型逻辑模型逻辑模型物理模型模型化抽象化实例化具体化理解需求表达需求导出做什么怎么做1.分析建模导出目标系统逻辑模型的例子:找出当前系统的物理模型学生张秘书王会计李出纳赵保管学生学生购买教材的物理模型购书申请购书证明购书发票领书单书导出目标系统逻辑模型的例子•把当前系统的物理模型转换为逻辑模型学生审查有效性开发票开领书单发书学生购书单有效购书单领书单书发票学生购买教材的逻辑模型导出目标系统逻辑模型的例子•把旧系统的逻辑模型转换为目标系统逻辑模型学生审查并开发票开领书单发书学生购书单发票领书单书计算机售书系统的逻辑模型导出目标系统逻辑模型的例子•改进(优化)目标系统逻辑模型学生审查并开发票开领书单学生购书单发票领书单改进了的计算机售书系统模型无效书单分析阶段中常用的模型(逻辑模型)•数据流图(DFD)•实体―联系图(ERD)•层次方框图、IPO图、Warnier图•类图、实例图、时序图•状态图、协作图、活动图•事件列表•数据流定义•数据元素定义•……3.1需求分析的任务与步骤2.编写软件需求规格说明:主要包括描述目标系统概貌、功能要求、性能要求、运行要求和将来可能提出的要求。数据流图、用IPO图或其他工具简要描述的系统主要算法都是该份文挡的重要组成部分。此外,该份文档还应包括用户需求与系统功能之间的关系、设计约束等等文字描述。软件需求规格说明是需求分析阶段的最终成果。3.1需求分析的任务与步骤准确、完整和规范的软件需求是软件开发成功的关键!需求分析的任务–建立分析模型•描述软件需求的一组模型•精确记录用于对原始问题和目标系统的描述•帮助分析人员发现用户需求中的不一致性,排除不合理的部分,挖掘潜在的用户需求–编写需求说明应做到•准确性和一致性•清晰性和没有二义性•直观、易读和易于修改案例分析一个具有n部电梯的电梯系统要安装在一座m层的大楼上。电梯和控制机构已造好。每个电梯的内部机构也已给定。问题涉及电梯在楼层间移动的逻辑:(1)每座电梯有一套按钮,每层一个。按钮按下时使钮灯变亮,并使电梯达到相应的楼层。当电梯到达相应的楼层时按钮灯熄灭。案例分析(2)除了底层和顶层外,每层都有两个按钮,一个按钮请求电梯上升,另一个按钮请求电梯下降。这些按钮在按下时按钮灯亮。电梯到达指定楼层后按钮灯熄灭,然后要么朝期望的方向移动,要么请求等待。在后一种情况下,如果一个楼层上的两个请求按钮都按下,则只取消其中一个按钮。决定先服务哪一层的算法应当使两个请求的等待时间最小。案例分析(3)当一个电梯没有服务请求时,应当停留在最终的目的地,关上电梯门,并等待后面的请求。(4)楼层上所有电梯请求必须最终得到服务,并且所以楼层具有相同的优先权。(5)电梯内所有楼层的请求必须最终得到服务,各层按电梯移动方向先后得到服务。(6)每个电梯有一个紧急按钮。按下该按钮时,将使一个报警信号发送到现场管理人员,然后强制电梯“停止服务”。每一个电梯有一个取消其“停止服务”状态的机制。电梯状态转换图举例在一楼上升停滞下降回到一楼回一楼想要到达楼层想要到达楼层电梯行程开始向上向上向下案例分析•需求分析的步骤1.需求获取目的:清楚地理解所要解决的问题;完整地获取用户需求2.需求提炼任务:分析建模3.需求描述结果:软件需求说明书4.需求验证改善需求说明的完整性,确保他可作为软件设计和系统验收的依据。3.2需求获取的常用方法•联合分析小组–用户代表、领域专家和系统分析员•客户访谈–充分准备,寻找共同语言–循循序渐进、逐步逼近•问题分析与确认–多个来回调研问卷•部分的名称、人员数量和结构•部分发展或变化简单介绍•部分的主要任务•业务处理流程•业务处理过程中涉及哪些专业领域的知识•工作需要的审批流程是什么?•主要算法描述•哪些业务需要实时处理?•哪些业务需要交互操作?•部门各岗位的职责•部门接受哪些部门或外界的信息?信息的内容和格式是什么?•部门产生哪些信息?•部门产生的信息送到哪些其他部门?格式要求是什么?•对信息的输入和输出方式有要求吗?输入输出设备是什么?•数据要求实时备份吗?备份的设备是什么?时间策略?•业务处理有高峰期吗?高峰时间是什么?时间策略?•现有的哪些设备要继续使用?•对产品的运行环境有要求吗?•对界面风格和操作方式有要求吗?•在系统运行过程中允许停机吗?•操作方式要根据操作环境和使用人员素质分类吗?•需要的操作权限有哪些?•需要记录系统操作运行日志吗?•用户有能力进行系统维护吗?•需要分布式处理吗?•需要什么方式的用户操作培训。•需要制作联机帮助吗?案例•用户提出某种需求:–水的质量信息必须立即能够显示出来。•分析员更准确的描述:–水的质量记录必须在接到请求信号的5秒内显示出来。需求获取的三大挑战问题空间的理解人与人之间的通信需求的不断变化某出版社系统调查表编号提出问题1您在哪个部门工作?2出版业务流程是什么?3您每日都处理那些文件、数据、报表?4工作中手工处理特别麻烦的事情是什么?5工作中手工处理什么问题解决不了?影响效率的问题有哪些?6您认为提高工作效率,节省工作时间,减轻工作强度可采取哪些办法?某出版社系统调查表编号提出问题7您的部门需要成本核算和统计的内容有哪些?8您的部门采用计算机管理工作情况如何?9如何改进业务流程使之更合理?10哪些问题是目前传统手工方法根本无法解决的?11出版社计算机管理信息系统需要解决什么问题?需求获取的内容1.用户需求分类(1)功能性需求:定义了系统做什么(描述系统必须支持的功能和过程)(2)非功能性需求(技术需求):定义了系统工作时的特性(描述操作环境和性能目标)2.两类需求包括的内容(1)功能(2)性能(3)环境(4)界面(5)用户或人的因素(6)文档(7)数据(8)资源(9)安全保密(10)软件成本消耗与开发进度(11)质量保证(1)功能需求•系统做什么?•系统何时做什么?•系统何时及如何修改或升级?(2)性能需求软件开发的技术性指标例如:•存储容量限制•执行速度、相应时间•吞吐量(3)环境需求•硬件设备:机型、外设、接口、地点、分布、温度、湿度、磁场干扰等•软件:操作系统网络数据库(4)界面需求•有来自其它系统的输入吗?•到自其它系统的输出吗?•对数据格式有规定吗?•对数据存储介质有规定吗?(5)用户或人的因素•用户类型?•各种用户熟练程度?•需受何种训练?•用户理解、使用系统的难度?•用户错误操作系统的可能性?(6)文档需求•需哪些文档?•文档针对哪些读者?(7)数据需求•输入、输出数据的格式?•接收、发送数据的频率?•数据的准确性和精度?•数据流量?•数据需保持的时间?(8)资源需求•软件运行时所需的数据、软件。内存空间等资源。•软件开发、维护所需的人力、支撑软件、开发设备等。(9)安全保密要求•需对访问系统或系统信息加以控制吗?•如何隔离用户之间的数据?•用户程序如何与其它程序和操作系统隔离?•系统备份要求?(10)软件成本消耗与开发进度需求•开发有规定的时间表吗?•软硬件投资有无限制?(11)质量保证•系统的可靠性要求?•系统必须监测和隔离错误吗?•规定系统平均出错时间?•出错后,重启系统允许的时间?•系统变化如何反映到设计中?•维护是否包括对系统的改进?•系统的可移植性?3.3分析建模•所谓模型,就是为了理解事物而对事物做出的一种抽象,是对事物的一种无歧义的书面描述。简单地说,模型就是某一事物的抽象表示方式。•经过软件的需求分析建立起来的模型可以称之为分析模型或者需求模型。3.3分析建模需求分析模型:数据字典数据模型功能模型行为模型功能模型功能模型可以用数据流图(DFD)描述,所以又称为数据流模型。下面是数据流图的基本形式:3变换4变换1变换2变换外部实体外部实体外部实体外部实体数据文件输入数据中间数据输出数据学生1审查开发票2开领书单学生购书单发票领书单计算机售书系统的数据流图无效书单各班学生用书表教材存量表数据模型包含有3种相关的信息:(1)数据对象数据对象是几乎所有必须被软件理解的复合信息的表示。它只封装数据,不包含作用于对象的操作。(2)属性属性定义了数据对象的性质。(3)关系数据对象彼此之间是有关联的,也称为关系。数据模型数据模型常常用“实体-关系图(ERD)”来描述。ERD包含3种基本元素,即实体、属性和关系。通常,用矩形表示即数据对象,用圆角矩形或椭圆形表示实体的属性,用菱形连接相关实体表示关系。下图是一个简化的教学管理ERD:性别职称姓名教工号姓名性别系学号年级课程号课程名学时学分课程教师学生教学行为模型•行为模型常用状态转换图(简称状态图)来描述,它又称为状态机模型。•状态图中的基本元素有事件、状态和行为等。•系统的状态机模型可以理解为在任一个时刻,系统处于有限可能的状态中的一个状态,当某一个激励(条件)到达时,它激发系统从一个状态转换到另一个新状态。•下面是电话系统的状态图:闲置拨号音do:响拨号音超时do:响蜂鸣音存储的信息do:播放信息接通中do:试接通振铃do:振铃拨号通话断线忙音do:响忙音挂断电话挂断电话拿起话筒超时无效号码有效号码超时数字数字占线已接通受话人回话受话人挂断电话信息播完数据字典数据字典(DataDictionary)用于描述软件系统中使用或者产生的每一个数据元素,是系统数据信息定义的集合。数据字典的作用,就是对软件中的每个数据规定一个定义条目,以保持数据在系统中的一致性。软件中的数据,可分为三种情况:①只含一个数据的数据项(或数据元素);②由多个相关数据项组成的数据流;③数据文件或数据库。数据流“发票”的字典条目数据流名:发票别名:购书发票组成:学号+姓名+{书号+单价+数量+总价}+书费合计备注:数据字典的例子3.3分析建模•下面介绍两种需求模型:结构化分析模型和面向对象分析模型•分析模型描述工具–DFD、DD和PSPEC–CFD、CSPEC和STD–E-R图–用例图–对象-关系图:类、对象、构建等图–对象-行为图:状态、时序、协作、活动等图结构化分析模型数据对加工象说明说明控制说明E-R图DFD图STD图DD数据模型功能模型行为模型面向对象分析模型属性、操作、协作者类/对象对象-关模型系模型对象-行为模型使用实例功能模型行为模型数据模型(静态)(静态)(动态)分析模型描述工具•结构化分析工具–DFD、DD和PSPEC(加工说明)——基本组成–CFD、CSPEC(控制说明)和STD——扩展–E-R图——扩展(复杂数据结构可以使用)•面向对象分析工具–用例图,类对象图–对象-关系图–对象-行为图1.数据流图(DFD)飞机票预订系统数据流图1.数据流图(DFD)•数据流图——他以图形的方式反映系统的数据流程由四种基本元素组成,代表符号和名称:加工名编号
本文标题:第03章1结构化分析与设计分析
链接地址:https://www.777doc.com/doc-2152666 .html