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