软件工程课程讲义V1.0(chapter3)2h.ppt_第1页
软件工程课程讲义V1.0(chapter3)2h.ppt_第2页
软件工程课程讲义V1.0(chapter3)2h.ppt_第3页
软件工程课程讲义V1.0(chapter3)2h.ppt_第4页
软件工程课程讲义V1.0(chapter3)2h.ppt_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

华中科技大学计算机学院 胡卫军 Tel:E-mail:,软件工程,第二篇 传统方法学,第 3 章 结构化分析(Structured Analysis,SA) 第 4 章 结构化设计(Structured Design,SD) 第 5 章 结构化实现,第 3 章 结构化分析,3.1 概 述,需求分析:发现、求精、建模、规格说明和复审的过程。,从宏观角度调查、分析用户所面临的问题。 分析员对用户提出的初步要求应该反复求精多次细化,才能充分理解用户的需求,得出对目标系统的完整、准确和具体的要求。,第 3 章 结构化分析,3.1 概 述,数据模型 功能模型 行为模型,软件需求规格说明,需求分析的任务就是借助于当前系统的逻辑模型导出目标系统的逻辑模型,解决目标系统的 “做什么” 的问题。,模型:为了理解事物而对事物做出的一种抽象,是对事物的一种无歧义的书面描述。 模型:由一组图形符号和组织这些符号的规则组成。,第 3 章 结构化分析,3.1 概 述,必须理解和表示问题的信息域,根据这条准则应该建立数据模型 必须定义软件应完成的功能,这条准则要求建立功能模型 必须表示作为外部事件结果的软件行为,这条准则要求建立行为模型 必须对描述信息、功能和行为的模型进行分解,用层次的方式展示细节 分析过程应该从要素信息移向实现细节,结构化分析方法必须遵守的准则:,第 3 章 结构化分析,3.2 与用户通信的技术,正式访谈:事先准备好的问题 非正式访谈:提出可以自由回答的开放性问题 当需要调查大量人员的意见时,向被调查人员分发调查表是一个十分有效的做法 情景分析技术:对用户运用目标系统解决某个具体问题的方法和结果进行分析,访谈(会谈):最早开始运用的获取用户需求的技术,也是迄今为止仍然广泛使用的主要的需求分析技术。,3.2.1 访谈,它能在某种程度上演示产品的行为,从而便于用户理解,而且还可能进一步揭示出一些系统分析员目前还不知道的需求 由于情景分析较易为用户所理解,因此,使用这种技术能保证用户在需求分析过程中始终扮演一个积极主动的角色,第 3 章 结构化分析,3.2 与用户通信的技术,在中立地点举行由开发者和用户双方出席的会议 制定准备会议和参加会议的规则 提出一个议事日程,这个日程应该足够正式以便能够涵盖所有要点,同时这个日程又应该足够非正式,以便鼓励自由思维 由一个“协调人”来主持会议,他既可以是用户也可以是开发者还可以是从外面请来的人 使用一种“定义机制”(例如,工作表、图表等) 目标是标识问题、提出解决方案要素、商讨不同的方法以及在有利于实现目标的氛围中指定初步的需求,简易的应用规格说明技术:提倡用户与开发者密切合作,共同标识问题,提出解决方案的要素,商讨不同的方法并指定基本的需求。,3.2.2 简易的应用规格说明技术,第 3 章 结构化分析,3.2 与用户通信的技术,初步的访谈,通过用户对基本问题的回答,对待解决的问题的范围和解决方案有一个总体认识 开发者和用户都写出“产品需求” 选定会议地点、日期和时间,并选举一个协调人 与会者在开会前认真复审产品需求,并且列出,简易的应用规格说明技术:提倡用户与开发者密切合作,共同标识问题,提出解决方案的要素,商讨不同的方法并指定基本的需求。,3.2.2 简易的应用规格说明书,作为系统环境组成部分的对象、系统将产生的对象以及系统为了完成自己的功能将使用的对象 操作这些对象或与这些对象交互的服务 约束条件和性能标准,会议,讨论是否需要这个产品 各人列表讨论 小组共同创建组合列表 分组讨论,小组展示小型规格说明 每个与会者提出产品的一整套确认标准 一名或多名与会者根据会议成果起草完整的规格说明,第 3 章 结构化分析,3.2 与用户通信的技术,快速 容易修改 “修改-试用-反馈”,快速建立软件原型是最准确、最有效、最强大的需求分析技术。,3.2.3 软件原型,快速地构建和修改原型的方法和工具,第四代技术(4GT) 可重用的软件构件 形式化规格说明和原型环境,使得分析员能够交互地创建基于语言的规格说明 调用自动工具把基于语言的规格说明翻译成可执行的代码 使得用户能够使用可执行的原型代码去精化形式化的需求,第 3 章 结构化分析,3.3 分析建模与规格说明,描述用户的需求 为软件设计工作奠定基础 定义一组需求,一旦开发出软件产品之后,就可以用这组需求为标准来验收该产品,结构化分析实质上是一种创建模型的活动 通过需求分析而建立的模型必须达到的基本目标:,3.3.1 分析建模,数据 字典,状态转换图,控制规格说明,数据对象描述,实体-关系图,数据流图,处理规格说明,分析模型的形式,核心: 数据字典描述软件使用或产生的所有数据对象,第 3 章 结构化分析,3.3 分析建模与规格说明,3.3.1 分析建模,数据 字典,状态转换图,控制规格说明,数据对象描述,实体-关系图,数据流图,处理规格说明,分析模型的形式,核心:数据字典描述软件使用或产生的所有数据对象,实体-关系图,描绘数据对象之间的关系 用于数据建模活动的图形 数据对象描述:每个数据对象的属性,数据流图,状态转换图,指出当数据在软件系统中移动时怎样被变换 描绘变换数据流的功能和子功能 处理规格说明:数据流图中每个功能的描述,指明作为外部事件结果的系统行为 描绘系统各种行为模式(“状态”)和在不同状态间转换的方式 控制规格说明:软件控制的附加信息,3.3.2 软件需求规格说明,引言,系统参考文献 整体描述 软件项目约束,数据流 控制流,信息描述,信息内容 信息流,处理说明 限制 性能需求 设计约束 支撑图,功能描述,功能分解 功能描述,控制规格说明 设计约束,行为描述,系统状态 事件和动作,确认标准,性能范围 测试种类 预期的软件响应 特殊考虑,参考书目 附录,控制描述,第 3 章 结构化分析,3.4 实体-关系图,数据模型包括三种相互关联的信息:,数据对象 描述数据对象的属性 数据对象彼此间相互连接的关系,第 3 章 结构化分析,3.4 实体-关系图,3.4.1 数据对象,数据 字典,状态转换图,控制规格说明,数据对象描述,实体-关系图,数据流图,处理规格说明,数据对象:对软件必须理解的复合信息的表示 复合信息:具有一系列不同性质或属性的事物 数据对象可以是,外部实体 事物 行为 事件 角色 单位 地点 结构,第 3 章 结构化分析,3.4 实体-关系图,3.4.2 属性,属性:数据对象的性质 属性的特征:,为数据对象的实例命名 描述该实例 引用另一个数据对象的实例,标识符:一个或多个属性 关键字:当我们希望找到数据对象的一个实例时,标识符属性成为“关键字” 例子:开发机动车管理系统中汽车的属性,制造商、品牌、型号、发动机号码、车体类型、颜色、车住姓名、住址、驾驶证号码、生产日期以及购买日期,例子:设计汽车的CAD系统中汽车的属性?,第 3 章 结构化分析,3.4 实体-关系图,3.4.3 关系,关系(联系):数据对象彼此之间相互连接的方式称为关系 联系可以分为三类:,一对一联系(1:1):,一对多联系(1:N):,多对多联系(M:N):,例如:一个部门有一个经理,而每个经理只在一个部门任职,例如:一个部门有多个雇员,而每个雇员只在一个部门任职,例如:一个学生可以学多门课程,一门课程也可以有多个学生来学,第 3 章 结构化分析,3.4 实体-关系图,3.4.4 实体-关系图的符号,实体-关系图(Entity-Relationship Diagram),简称ER图 ER模型:用ER图描绘的数据模型 ER图中三种基本成分的符号:,实体(数据对象): 关系: 属性:,例:某学校教学管理的ER图。,第 3 章 结构化分析,3.5 数据流图,数据流图(DFD):一种图形化的技术,描述信息流和数据从输入移动到输出的过程中所经受的变换,数据的源点或终点:正方形(或立方体) 变换数据的处理:圆角矩形(或圆形) 数据存储:开口矩形(或两条平行横线) 数据流(特定数据的流动方向):箭头,3.5.1 数据流图符号,四种基本符号,描述银行取款过程的数据流图,第 3 章 结构化分析,数据:可以存储在磁带、磁盘、磁鼓、主存及其他任何介质上(包括人脑) 处理:并不一定是一个程序 数据存储(处于静止状态的数据)和数据流都是数据(处于运动中的数据) 数据流与程序流程图中用箭头表示的控制流有本质的不同!,3.5.1 数据流图符号,注意事项:,3.5 数据流图,数据流图中忽略出错处理,也不包括内务处理,其基本要点是描绘“做什么”,而不考虑“怎样做”!,第 3 章 结构化分析,数据的源点和终点相同时,3.5.1 数据流图符号,3.5 数据流图,表示方法:,代表同一个事物的同一个符号在图中出现在n个地方,为避免可能引起的误解,在符号的一个角上画n-1条短斜线做标记,第 3 章 结构化分析,* 数据流之间是“与”关系(同时存在) + 数据流之间是“或”关系 + 只能从中选一个(互斥的关系),3.5.1 数据流图符号,3.5 数据流图,附加符号,T,A,B,C,*,T,A,B,C,+,T,A,B,C,+,T,A,B,C,+,T,A,B,C,+,T,A,B,C,*,数据A和B同时输入才能变换成数据C,数据A变换成B或C,但不能变换成B和C,数据A或B,或A和B同时输入变换成C,数据A变换成B和C,只有数据A或只有数据B(但不能A、B同时)输入时变换成C,数据A变换成B或C,假设一家工厂的采购部每天需要一张定货报表,报表按零件编号排序,表中列出所有需要再次定货的零件。对于每个需要再次定货的零件应该列出下述数据:零件编号、零件名称、定货数量、目前价格、主要供应者和次要供应者。零件入库或出库称为事务,通过放在仓库中的CRT终端把事务报告给定货系统。当某种零件的库存数量少于库存量临界值时就应该再次定货。,例子,源点或终点: 处理: 数据流: 数据存储:,数据流图的四种成分,终点:采购员 “采购部每天需要一张定货报表” 源点:仓库管理员 “通过放在仓库中的CRT终端把事务报告给定货系统”,产生报表 对事务的加工:事务的后果是改变零件库存量,任何改变数据的操作都是处理,定货报表:系统把定货报表送给采购部 事务:事务需要从仓库送到系统中,用于产生定货报表的数据:产生报表和处理事务这两个处理在时间上明显不匹配 保存库存清单数据(库存量和库存量临界值):“当某种零件的库存数量少于库存量临界值时就应该再次定货。”,从描述问题的信息中提取的组成数据流图的元素,假设一家工厂的采购部每天需要一张定货报表,报表按零件编号排序,表中列出所有需要再次定货的零件。对于每个需要再次定货的零件应该列出下述数据:零件编号、零件名称、定货数量、目前价格、主要供应者和次要供应者。零件入库或出库称为事务,通过放在仓库中的CRT终端把事务报告给定货系统。当某种零件的库存数量少于库存量临界值时就应该再次定货。,例子,假设一家工厂的采购部每天需要一张定货报表,报表按零件编号排序,表中列出所有需要再次定货的零件。对于每个需要再次定货的零件应该列出下述数据:零件编号、零件名称、定货数量、目前价格、主要供应者和次要供应者。零件入库或出库称为事务,通过放在仓库中的CRT终端把事务报告给定货系统。当某种零件的库存数量少于库存量临界值时就应该再次定货。,仓库 管理员,定货 系统,采购员,事务,定货报表,基本系统模型,假设一家工厂的采购部每天需要一张定货报表,报表按零件编号排序,表中列出所有需要再次定货的零件。对于每个需要再次定货的零件应该列出下述数据:零件编号、零件名称、定货数量、目前价格、主要供应者和次要供应者。零件入库或出库称为事务,通过放在仓库中的CRT终端把事务报告给定货系统。当某种零件的库存数量少于库存量临界值时就应该再次定货。,定货系统的功能级数据流,把处理事务的功能进一步分解后的数据流图,第 3 章 结构化分析,名字应该代表整个数据流(或数据存储)的内容,而不是仅仅反映它的某些成分 不要使用空洞的、缺乏具体含义的名字(如“数据”、“信息”、“输入”之类) 如果在为某个数据流(或数据存储)起名字时遇到了困难,则很可能是因为对数据流图分解不恰当造成的,应该试试重新分解,看是否能克服这个困难,3.5.3 命名,3.5 数据流图,数据流(数据存储),先为数据流命名,再为与之相关的处理命名 名字应反映整个处理的功能,而不是它的一部分功能 名字最好由一个具体的及物动词,加上一个具体的宾语组成,避免用“加工”、“处理”等空洞笼统的名字 通常仅包括一个动词,如必须用两个动词,则将处理分解成两个处理可能更恰当 如为某处理命名时遇到困难,则可能是发现了分解不当的迹象,应考虑重新分解,处理,数据源点/终点:采用它们在问题域中习惯用的名字,第 3 章 结构化分析,3.6 状态转换图,状态:任何可以观察到的系统行为模式,事件:某个特定时刻发生的事情,对引起系统从一个状态转换到另一个状态的外界事件的抽象,状态1 do:行为1,初始事件,状态2 do:行为2,事件条件1,结束事件,例子:电话系统的状态图,挂断电话,拨号音 do:响拨号音,拨 号,接通中 do:试接通,振 铃 do:振铃,通 话,断 线,超时 do:响蜂鸣音,存储的信息 do:播放信息,忙音 do:响忙音,闲 置,挂断电话,拿起听筒,数字,有效号码,已接通,受话人回话,受话人挂断电话,超时,无效号码,数字,占线,信息播完,第 3 章 结构化分析,3.7 数据字典,数据字典:描述结构化分析过程中定义的对象的内容,一种半形式化的工具。,数据字典:所有与系统相关的数据元素的有组织的列表,并且包含了对这些数据元素的精确、严格的定义,从而使用户和系统分析员双方对输入、输出、存储的成分甚至中间计算结构有共同的理解,数据字典包含的信息:,名字:数据、控制项、数据存储或外部实体的主要名称 别名:第一项中对象的其他名字 使用地点与方式:使用数据或控制项

温馨提示

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

评论

0/150

提交评论