清华软件工程课件第05章_结构化分析与设计

合集下载

软件工程概述-第5章 结构化需求分析

软件工程概述-第5章 结构化需求分析

实体 属性 联系
用矩形表示,矩形内写 明实体名
用椭圆形表示,并用无 向边将其与对应实体连 接起来
用菱形表示,并用无向 边分别与有关实体连接 起来,同时在无向边旁 标上联系的类型。
E-R 图表示图示 例 2-1 中的例子
练习
例:简单的学生选课系统:
(1)学生 属性有学号,姓名, 性别,年龄,所在系
x
1.1
1.2
1.3
1
3
2
2.1 2.3
2.2
1.1 1.3
目录
1
5.1结构化分析
2
5.2数据流图
3
5.3数据字典
4
5.4 实体关系图
5
5.5 状态转换图
数据流图
数据流图(Data Flow Diagram,DFD)是描述系统中数据 流程的图形工具,它描述了将系统的逻辑输入转换为逻辑输出 所需的加工处理过程。
(2)课程 属性有课程号,课程 名称,先修课程号,学分
实体之间的联系:
一个学生可同时选修多门 课程,而一门课程可以同时被 若干学生选修。用成绩来表示 某个学生学习某门课程的成绩 。
分解:对于一个复杂的系统,为了将复杂性降 低到可以掌握的程度,可以把大问题分解成若 干小问题,然后分别解决。
抽象:分解可以分层进行,即先考虑问题最本 质的属性,暂把细节略去,以后再逐层添加细 节,直至涉及到最详细的内容,这种用最本质 的属性表示一个系统的方法就是“抽象”
结构化分析
结构化分析方法基本思想 “分解”和“抽象”
取值范围:数据项的取值范围,例如,职工年龄 的取值范围定义为18至60岁,表示为18..60。
初始值:数据项的初始值,例如,为了操作简便, 软件定义借书日期的初始值默认为系统的当前日 期。

软件工程实用案例教程 第5章 结构化软件设计

软件工程实用案例教程 第5章 结构化软件设计
HIPO图由H图和IPO图两部分组成。 H图描述软件总的模块层次结构; IPO图描述每个模块输入/输出数据、处理功能及
模块调用的详细情况。
5.1 软件设计的相关概念
5.1.3 结构化设计图形工具
5.1.3.2 HIPO图
1.H图(层次图)
5.1 软件设计的相关概念
5.1.3 结构化设计图形工具
软件设计
需求分析解决软件系统“做什么”的问题,而软件设 计解决“怎么做”的问题。
软件设计可分为:
概要设计:体系结构设计、数据设计和接口设计。 详细设计:过程设计。
本章主要讨论问题:
软件设计的任务、原则、图形工具和启发规 则是什么?
常用的结构化软件设计的方法是什么? 结构化软件设计案例。
的语句在多处出现,于是为了节省空间而将这些语 句作为一个模块设计,这样就出现了偶然内聚。
5.1 软件设计的相关概念
5.1.3 结构化设计图形工具
5.1.3.1 结构图
1.结构图的图形符号 (1)模块 (2)模块间的调用关系 (3)模块间的信息传递
图5-15 结构图示例
5.1 软件设计的相关概念
5.1.3.2 HIPO图
2.IPO图
5.1 软件设计的相关概念
5.1.4 软件设计的启发规则
1.模块规模应该适中
通常规定模块中语句行数在50~100左右,保持在一 页纸之内,最多不超过500行。
这对提高程序的可理解性是有好处的。基本的准则 是要保证模块的独立性。
5.1 软件设计的相关概念
5.1.4 软件设计的启发规则
2.消除重复功能,改进软件结构
图5-20 模块的各种合并方案
5.1 软件设计的相关概念
5.1.4 软件设计的启发规则

软件工程基础-5结构化分析与设计技术

软件工程基础-5结构化分析与设计技术

区分事务中心 和数据接收通路
区分输入和 输出分支
据 – 第二级映射成事务结构

的 • 第三级
映射成变换结构
设 计 过
– 第四级 事务分»析第五级
用启发式设计规则 精化软件结构
导出接口描述和
变换分析程Fra bibliotek全程数据结构
复查
详细设计
1
结构化设计方法概述
2
面向数据流的设计方法
3
面向数据的设计方法
4
结构化详细设计的工具
–{第if b(b二re>a=级k2;0)
if•(b第%3三==级1)
{ cbo+n–=t3i第n;u四e;级
}
» 第五级
b+=3
T
b-=5;
}
……
a=0,b=1
a++
a<=100 F
T
b>=20
T
F
b%3==1
F
b-=5
单出口
结构化单设计击方法此概述处编辑母版标题样式
• 单结击构此化设处计分编为辑面向母数版据流文的本设计样方式法和面向数据的设计方法。
– 第四级
确定模块的外部接口和用户界面
» 第五级
详细设计阶段
的主要任务
为每一模块设计一组测试用例
结构化单详细击设此计的处工具编辑母版标题样式
• 单击此处编辑母版文本样式 结构化设计的详细设计阶段,主要完成系统各模块功能的过程描述。 详–细第设二计提级供了图形、表格和语言等三类不同工具。 无论何• 种第图三形级工具,都提供结构化程序设计对应的控制流程,以及功能的处
的分层编号• 一第致三。级
层次图只反–映第上四下级层间的调用关系,不反映系统的组成关系,也不反映系 » 第五级

《软件工程(第二版)》 第五章

《软件工程(第二版)》  第五章

5.2.4 模块独立性
模块的独立性是软件质量的关键: (1)模块化程度较高的软件容易开发; (2)模块化程度较高的软件也比较容易测试和维护。 模块的独立性的度量标准:耦合和内聚。
1、耦合 耦合:软件结构中各个模块之间相互关联程度的度量。
常见的耦合:
(1)非直接耦合 (2)数据耦合 (3)标记耦合 (4)控制耦合 (5)公共耦合 (6)内容耦合 设计原则:尽量使用数据耦合,少用控制耦合,限制公 共耦合的范围,避免使用内容耦合。
这个不等式表明:单独解决问题 P1 和 P2 所需的工作 量之和,比把 P1 和 P2 合起来作为一个问题来解决时所需 的工作量要少。 这种“分而治之”的思想提供了模块化的根据:把复 杂的问题分解成许多容易解决的小问题,原来的问题也 就容易解决了。
模块化和软件成本的关系
软件总成本 最小成本区 M 接口成本
5.5.1 数据流图的类型 5.5.2 设计步骤 5.5.3 变换设计 5.5.4 事务设计 5.5.5 设计的后处理
需求分析阶段得出的数据流图是总体设计的根 本出发点。 通常,选取的这些方案中至少应包括低成本、 中成本和高成本的三种方案类型。 对每个合理方案要提供以下几方面资料: (1)系统流程图; (2)数据字典; (3)成本/效益分析; (4)实现这个系统的进度计划。
5.1.2 推荐最佳方案
分析员从合理方案中选择一个最佳方案向用户 推荐,并为推荐的方案制定详细的实现计划。 对于分析员推荐的最佳方案,用户和有关专家 应该认真审查。如果确认该方案确实符合用户的需 要,并且在现有条件下完全能够实现,则应该提请 使用部门负责人进一步审批。在使用部门负责人也 接受了分析员所推荐的方案之后,方可进入总体设 计过程的下一步工作,即结构设计阶段。

软件工程第五章结构化设计

软件工程第五章结构化设计

服务注册中心
发现
注册
服务消费者 调用
服务提供者
并发系统的集中式控制模型
传感器进程 用户界面Fra bibliotek传动装置进程 系统控制器
计算进程 故障处理器
系统控制模型
事件驱动系统
广播模型:发生的事件广播到所有子系统,任何能处理 该事件的子系统都会响应。该模型适用于基于网络的分 布式系统。
广播模型中的子系统注册其感兴趣的特别事件 广播模型的优点是进化比较简单
软件模块化设计
模块是一个独立命名的,拥有明确定义的输入、输出 和特性的程序实体。
软件的模块化设计(Modular Design)。系统是有 一个个模块组装而成。
软件模块化设计优点
可以简化软件的设计和实现 提高软件的可理解性和可测试性 软件更容易得到维护。
软件模块化设计缺点
结构化设计阶段 数据流设计方法 面向数据的设计 结构化程序设计 案例分析
结构化设计概述
结构化设计方法(Structured Design, SD)是基于模 块化、自顶向下细化、结构化程序设计等程序设计技 术基础上发展起来的。
结构化设计方法用模块结构图来表达程序模块之间的 关系。
缺点是子系统都知道是否和什么时候处理事件,这可能会引 起冲突。
中断驱动模型:由中断处理器对来自外部的中断进行检 测,然后在其他组件中处理这些中断。该模型适用于对 定时有严格要求的实时系统。
只用在硬件实时系统中,要求对一些事件能做出及时响应
总线架构
像水管一样随意接入 像PCI总线一样即插即用
第三部分软件设计与建模
结构化软件设计
阳王东
回答问题
什么是软件设计?有哪些阶段和任务? 什么是模块化设计?有哪些原理? 什么是软件结构和体系结构?二者有什么区别? 数据流有哪些类型?如何区分? 数据流映射的步骤是什么? 什么是结构化程序设计?有哪些工具? 什么是JSD方法?具体步骤是什么?

软件工程第二部分 结构化分析、设计与测试(5-9)

软件工程第二部分  结构化分析、设计与测试(5-9)

实例分析:出卷系统
用户:
教师:关注如何出一份合理的试卷,并能根据样式打 印与输出。
学生:关注如何通过生成一些模拟试题,并在线学习 和检查学习结果。
题库维护人员:关注试题的添加、更新和删除等工作。
视点:
教师关注自动出卷、手工出卷、试卷编辑和试卷输出。 学生关注随时抽卷、联系试卷和评价分析。 题库维护人员关注试题管理。
护性
3.4 数据字典
可移植性、安全保密性)
3.5 数据采集
4 功能需求
4.1 功能划分
验证需求
验需求证对需求文档和制品进行质量评估,确保 需求说明准确、完整.
包括以下内容:
正确性 一致性 完整性 可行性 必要性 可检验性 需求的可跟踪性
最后签字确认
管理需求
例如:图书馆系统的功能需求基于标准用户界 面将一些文档输出到本地打印机或网络打印机 上,但因为版权限制,这些文档打印之后应立 即删除。
需求分析过程
需求分析主要是理解客户需要什么、分析要求、评价可行 性、协商合理的方案、无歧义地详细说明方案、确认规格 说明、管理需求以至将这些需求转化为可行系统.
多视点的需求分析过程
视点识别:包括发现接收系统服务的视点和发 现提供给每个视点的特别服务。
视点组织:包括组织相关的视点到层次结构中, 通用的服务放在较高的层次,并被较低层次的 视点继承。
视点文档编写:包括对被识别的视点和服务描 述的精炼。
视点系统映射:包括在面向对象设计中通过封 装在视点中的服务信息识别对象。
第5章 软件需求分析(内容提要)
什么是软件需求? 软件需求分析有哪些过程? 如何启动分析过程? 需求规格文档有哪些内容? 需求分析有哪些技术?

《软件工程与项目管理》课件_第5章

《软件工程与项目管理》课件_第5章

图5.6 信息内聚模块
(7) 功能内聚。若一个模块中各个部分都是为完成一项 具体功能而协同工作、紧密联系、不可分割的,则称该模块 为功能内聚模块。功能内聚模块是内聚性最强的模块。
2.耦合性 耦合性是对模块之间的相对独立性(互相连接的紧密程 度)的度量。它取决于各个模块之间接口的复杂程度、调用 模块的方式以及哪些信息通过接口。 一般模块之间可能的连接方式有七种,构成耦合性的七 种类型。不同类型耦合的强弱关系如图5.7所示。
析,确定系统具体的实施方案,然后进行结构设计,确定软件结构。 总体设计的一般步骤如下:
(1) 设计系统方案。 (2) 选取一组合理的方案。 (3) 推荐最佳实施方案。 (4) 功能分解。 (5) 设计软件结构。 (6) 设计数据库和文件结构。 (7) 制定测试计划。 (8) 编写概要设计文档。 (9) 审查与复审概要设计文档。
(5) 标记耦合。如果一组模块通过参数表传递记录信息, 则它们之间的耦合称为标记耦合。事实上,这组模块共享了 某一数据结构的子结构,而不是简单变量。这就要求这些模 块都必须清楚该记录的结构,并按结构要求对记录进行操作。
图5.9 控制耦合
(6) 数据耦合。如果一个模块访问另一个模块时,彼此 之间通过数据参数(不是控制参数、公共数据结构或外部变 量)来交换输入、输出信息,而且交换的信息仅限于数据, 则称这种耦合为数据耦合。数据耦合是松散的耦合,模块之 间的独立性比较强。
(2) 逻辑内聚。这种模块把几种相关的功能组合在一起, 每次被调用时,由传送给模块的控制型参数来确定该模块应 执行哪一种功能。逻辑内聚模块比巧合内聚模块的内聚程度 要高,因为它表明了各部分之间在功能上的相关关系。
(3) 时间内聚(经典内聚)。这种模块大多为多功能模块, 但要求模块的各个功能必须在同一时间段内执行,例如初始 化模块和终止模块。时间内聚模块比逻辑内聚模块的内聚程 度又稍高一些。在一般情况下,时间内聚模块各部分可以以 任意的顺序执行,所以它的内部逻辑更简单。

软件工程课件 第五章 结构化需求分析

软件工程课件 第五章 结构化需求分析
件开发人员通常建立一个概念性的数据模型(也 称为信息模型)。
➢ 概念性模型是一种面向问题的数据模型,是按照
用户的观点来对数据和信息建模。它描述了从用
户角度看到的数据,反映了用户的现实环境,但 与在软件系统中的实现方法无关。
➢ 最常用的表示概念性数据模型的方法,是实体/关 系方法(Entity Relationship Approach)。这种 方法用ER图描述oss提出,由DeMarco进行了推广。 DeMarco引入并命名了使得分析员可以创建信息流模 型的关键图形符号、提出了使用这些符号的模型。
➢ 之后的几年中,Page-Jones、Gane和Sarson等人提出 了结构化分析方法的一些变种,在这些变种中,结构
化方法关注于信息系统的应用,而没有提供足够的符 号来表示实时工程问题中的控制和行为方面。
© 2008 BUPT TSEG
北京邮电大学 通信软件工程中心
9
§5.2 分析模型的结构
➢ 属性
属性定义了数据对象的性质,它可以具有三种不 同的特性,可以用来:
(1)为数据对象的实例命名; (2)描述这个实例; (3)建立对另一个表中的另一个实例的引用。 一个或多个属性应被定义为标识符,也就是说,
© 2008 BUPT TSEG
北京邮电大学 通信软件工程中心
14
示例
学生
学号 姓名 年龄 性别 专业 班级号
上课
§5.2 分析模型的结构
课程
课程号 课程名 学分 学时数 成绩 上课时间 上课教室
授课
教师
职工号 姓名 职称 年龄 单位 性别
教学管理系统数据模型
© 2008 BUPT TSEG
北京邮电大学 通信软件工程中心
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档