软件工程导论复习之总体设计
1. 总体设计过程
主要任务:完成软件结构的设计,确定系统的模块及其模块之间的关系。
两个阶段:系统设计阶段 and 结构设计阶段
九个步骤:
1)设想供选择的方案
2)选取合理的方案
3)推荐最佳方案
4) 功能分解
5)设计软件结构
6)设计数据库
7)制定测试计划
8)书写文档
9)审查和复审
2. 设计原理
(1)模块化
模块:模块是数据说明、可执行语句等程序对象的集合,可以单独命名且可通过名字来访问。模块有输入和输出(参数传递)、功能、内部数据结构(局部变量)和程序代码四个特性。
模块化:按规定的原则将一个大型软件划分为一个个较小的、相对独立但又相关的模块。每个模块完成一个子功能,将这些模块构成一个整体,可以完成指定功能。
优点:使软件结构清晰,易读易理解;使软件容易测试调试,提高软件的可靠性;提高软件的可修改性;有助于软件开发工程的组织管理
(2)抽象
概念:将某些事物,状态之间存在相似的方面集中概括,暂时忽略它们之间的差异
(3)逐步求精
为了能集中精力解决主要问题而尽量推迟对问题细节的考虑
(4)信息隐藏和局部化
信息隐藏:使得一个模块内包含的信息对于不需要这些信息的模块来说是不能访问的
局部化:把一些关系密切的软件元素物理得放得彼此靠近,例如使用局部数据元素
(5)模块独立
模块的独立程度可以由内聚和耦合度量,耦合衡量不同模块间互相依赖的紧密程度;内聚衡量一个模块内各个元素结合的紧密程度。
①耦合
无直接耦合:如果两个模块分别从属于不同模块的控制和调用,它们之间不传递任何信息,没有直接的联系,相互独立,称无直接耦合。软件系统中不可能所有模块没有任何连接
数据耦合:如果两个模块之间有调用关系,相互传递的信息以参数的形式 给出,而且传递的信息仅仅是简单的数据,则称为数据耦合。
标记耦合:如果两个模块之间传递的是数据结构,而且被调用模块不需要作为参数传递过来的整体数据结构,只需要使用数据结构其中一部分数据元素, 则称为标记耦合。
控制耦合:当一个模块调用另一个模块时,传递的信息控制了该模块的功能,则称为控制耦合。
公共环境耦合:两个或多个模块共用一个数据环境,称为公共环境耦合。
内容耦合:一个模块直接访问另一个模块的内部数据,一个模块 不通过正常入口而转入另一个模块内部,一个模块有多个入口,这都属于内容耦合。
②内聚
偶然内聚:模块内的元素之间没有意义上的联系。
逻辑内聚:将逻辑上相同或相似的一类任务放在同一个模块中,每次被调用时,由传送给模块的参数来确定该模块应完成的某一功能。
时间内聚:把需要同时执行的动作组合在一起形成的模块称为时间内聚模块。
过程内聚:一个模块内的处理元素是相关的,且必须以特定次序执行。
通信内聚:如果模块中所有元素都使用相同的输入数据或者产生相同的输出数据,则称为通信内聚。
顺序内聚:一个模块中各个处理元素都紧密相关于同一个功能个且必须顺序执行,此模块的块内联系属顺序内聚。
功能内聚:模块内所有元素属于一个整体,共同完成一个单一功能,缺一不可,则称为功能内聚
3. 启发规则
4. 层次图and HIPO图
层次图:描绘软件的层次结构,与层次方框图的形式相同,但是表现内容却不同。层次图的一个矩形框代表一个模块,方框间的联系表示调用关系而不是组成关系
层次图很适合于自顶向下设计软件的过程中使用
HIPO图:层次图+输入处理输出图
5. 结构图
结构图是进行软件结构设计的另一个有力工具。结构图和层次图类似,也是描绘软件结构的图形工具,图中一个方框代表一个模块,框内注明模块的名字或主要功能;方框之间的箭头(或直线)表示模块的调用关系。
在结构图中通常还用带注释的箭头表示模块调用过程中来回传递的信息。如果希望进一步标明传递的信息是数据还是控制信息,则可以利用注释箭头尾部的形状来区分:尾部是空心圆表示传递的是数据,实心圆表示传递的是控制信息。
软件工程导论复习之总体设计相关推荐
- 软件工程导论复习总结
软件工程导论 第一章 软件工程学概述 第二章 可行性研究 第三章 需求分析 第五章 总体设计 第六章 详细设计 第七章 实现 第八章 维护 第九章 面向对象方法学索引 第十.十一.十二章 面向对象分析 ...
- 软件工程导论 05章总体设计
1.典型的总体设计步骤: ①确定最佳方案 ②功能分解 ③体系结构设计 ④模块设计 ⑤数据结构与数据库设计 ⑥用户界面设计 ⑦设计完成设计文档 ⑧评审 总体设计的目的:概括地回答系统应该如何实现这个问题 ...
- 期末软件工程导论复习稳过不挂指南(更新中)
第1章 软件工程概述 1.1 软件基本概念 软件 = 程序 + 数据 + 文档 软件的特点 : 1.逻辑 2. 磨损 3. 依赖 4. 手工 5. 成本 软件危机 :开发和维护 严重 软件危机产生原因 ...
- 内科大软件工程导论复习内容笔记
文章目录 一. 概念(共60分,单选题.多选题) 1. 软件是程序.数据.文档的集合. 2. 软件的分类(按规模.性质分) 3. 软件危机的表现.缓解软件危机的途径 4. 软件工程方法学主要有两种:结 ...
- 软件工程导论 复习笔记 (1)
合理的要求 正确的途径 智慧的方法 文章目录 题型分配 其他概述 章节叙述 第一章 软件工程概述 软件危机 软件工程的定义 软件工程方法学 软件生命周期 软件过程(模型) 第二章 可行性研究 数据流图 ...
- 软件工程导论复习之软件项目管理
1. 估算软件规模 (1)代码行技术 依据以往开发类似产品的经验和历史数据,估计实现一个功能所需要的源程序行数.程序规模的估计值: 式内字母分别表示最小规模a,最大规模b和最可能的规模m的平均值. 优 ...
- 软件工程导论 复习笔记 (3)
许多人太过沉迷于现在,这些是无忧无虑.漫不经心的人:也有的人则更多地关注将来,他们则是谨小慎微.忧心忡忡的杞人. 文章目录 第八章 维护 第九章 面向对象方法学引论 功能模型 用例图 第十章 面向对象 ...
- [课程复习] 软件工程导论之经典题目回顾 (一)选择题、填空题1
作者最近在复习考博,乘此机会分享一些计算机科学与技术.软件工程等相关专业课程考题,一方面分享给考研.考博.找工作的博友,另一方面也是自己今后完成这些课程的复习资料,同时也是在线笔记.基础知识,希望对您 ...
- 软件工程导论期末复习整理
软件工程导论 第1章 软件工程学概述 复习小结 1.识记概念:软件,程序.数据,文档.软件危机.软件工程,软件过程, 软件生命周期 2.理解软件工程的本质特性6个和基本原理7条 3.掌握软件工程的三个 ...
- 软件工程导论第五章复习总结附思维导图及部分习题答案
软件工程导论第五章复习总结附思维导图及部分习题答案 总体设计 一.设计过程 1.设想提供选择的方案 2.选取合理的方案 3.推荐最佳方案 4.功能分解 5.设计软件结构 6.设计数据库 7.制定测试计 ...
最新文章
- Linux内核I/O系统报错日志与硬盘故障对应关系
- python使用界面-python 可视化界面
- python合并列表重新排序_python – 将两个已排序的列表合并为一个更大的排序列表...
- phpcms后台进入地址(包含No permission resources错误)
- 联想将在CES上展示LePad平板
- iOS iphone屏幕分析(岂止而大)
- python 如何匹配一撇字符_python,yaml如何解析包含撇号的字符串
- php 远程图片合拼,php获取远程图片的两种 CURL方式和sockets方式获取远程图片_php技巧...
- python类添加方法以及pow和cmp的使用
- 牛客网2018多校第一场J题
- SQL:postgresql中使用limit ... offset ... 实现分页查询
- 【雷达通信】基于matlab CDIF算法雷达信号分选【含Matlab源码 1186期】
- 项目进度计划的基本方法
- python spyder下载_2.4 熟悉Anaconda3的开发工具——Spyder
- 计算机专业本科一批,本科一批招生计划
- python计算工资工时_Python实现扣除个人税后的工资计算器示例
- 计算机中vlookup函数公式,Excel表中VLOOKUP函数使用方法和操作实例
- html复选框打钩行变颜色,Excel 单元格打勾会变颜色,开发工具的复选框这样玩...
- 计算机硬盘解密,如何解除电脑硬盘密码 解除电脑硬盘密码方法【详解】
- 数据库与php衔接,【杂谈】PHP怎样衔接Mysql数据库