软件工程导论——总体设计
- 总体设计的目的:回答“概括地说,系统应该如何实现”这个问题,总体设计又称概要设计或初步设计
1.设计过程
- 两个阶段:一.系统设计阶段,确定系统的具体实现方案。二.结构设计阶段,确定软件结构
- 九个步骤:
- 设想供选择的方案
- 选取合理的方案
- 推荐最佳方案
- 功能分解
- 设计软件结构
- 设计数据库
- 制定测试计划
- 书写文档
- 审查和复审
2.结构化开发方法设计原理
- 模块:是由边界元素限定的相邻程序元素的序列,而且有一个总体标识符代表它。模块是构成程序的基本构件
- 模块化:就是把程序划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能满足用户的需求。
- 模块的属性:接口,功能,状态,逻辑
- 软件结构:树状结构和网状结构
- 结构图(SC)是精确表达模块结构的图形表示工具
- 有关指标:⑴深度:表示软件结构中从顶层模块到最底层模块的层数。 ⑵宽度:表示同一层次上的模块总数。 ⑶扇出数:指一个模块直接控制下属的模块个数。 ⑷扇入数:指一个模块的直接上属模块个数。
- 抽象:抽象就是抽出事物的本质特征而暂时不考虑他们的细节。
- 逐步求精:定义为为了能集中精力解决主要问题而尽量推迟对问题细节的考虑
- 信息隐藏:应该这样设计模块,使得一个模块内包含的信息对于不需要这个信息的模块来说,是不能访问的
- 局部化:局部化是指把一些关系密切的软件元素物理地放得彼此靠近
- 模块独立性:可以有两个定性标准度量:内聚合耦合
- 耦合性:指模块相互联系的紧密程度,是模块间相互连接性的度量。耦合强度的大小是由模块间接口的复杂程度决定的。
- 耦合性由高到低:内容耦合,公共耦合(松散和紧密),外部耦合,控制耦合,标记耦合,数据耦合,非直接耦合
- 内容耦合:一个模块直接访问另一模块的内部数据,一个模块不通过正常入口转到另一个模块的内部,一个模块多个入口,两个模块有部分代码重叠。
- 公共耦合:若干模块访问一个公共的数据环境,松散公共耦合:模块同时只对公共数据环境进行读或写一种操作,紧密公共耦合:若干模块对公共数据环境同时读和写操作
- 外部耦合:一组模块都访问同一全局简单变量
- 控制耦合:一个模块传递给另一模块的信息是用于控制该模块内部逻辑的控制信号。
- 标记耦合:一个模块传送给另一个模块的参数是一个复合的数据结构
- 数据耦合:一个模块传送给另一个模块的参数是一个单个的数据项或者单个数据项组成的数组
- 非直接耦合:两个模块间没有直接的关系,它们分别从属于不同模块的控制与调用,它们之间不传递任何信息。
- 内聚性:表示一个模块内部各元素(数据、处理)之间联系的紧密程度。
- 内聚性由低到高:偶然型,逻辑型,时间型,通信型,顺序型,功能型
- 偶然内聚:又称巧合型,为了节约空间,将毫无关系的各元素放在一个模块中。
- 逻辑内聚:将几个逻辑上相似的功能放在一个模块中,使用时由调用模块传递的参数确定执行的功能。
- 时间内聚:又称经典内聚。是把需要同时执行的成分放在一个模块中。如初始化,中止操作等
- 过程内聚:一个模块内的处理元素是相关的,而且必须以特定的次序执行。
- 通信内聚:模块中的成分引用共同的输入数据,或者产生相同的输出数据
- 顺序内聚:一个模块内的处理元素都密切相关于同一功能,模块中某个成分的输出是另一成分的输入。
- 功能内聚:一个模块包括而且仅包括完成某一具体功能所必须的所有成分。
3.启发规则
- 改进软件结构提高模块独立性
- 模块规则应该适中
- 深度、宽度、扇出和扇入都应适当
- 模块的作用域应该在控制域之内
- 力争降低模块接口的复杂程度
- 设计单入口单出口的模块
- 模块功能应该可以预测
4.描绘软件结构的图形工具
- 层次图和HIPO图
- 结构图(SC图)
5.面向数据流的设计方法
- 目标:给出设计软件结构的一个系统化的途径
- 概念:面向数据流的设计方法把信息流映射成软件结构,信息流的类型决定了映射的方法。
- 变换流:信息沿输入通路进入系统,由 外部形式变换成内部形式,进入系统的信息通过变换中心,经加工处理以后再沿输出通路变换成外部形式离开软件系统。 当数据流图具有这些特征时,这种信息流就叫作变换流。
- 事物流:数据沿输入通路到达一个处理T,这个处理根据输入数据的类型在若干个动作序列中选出一个来执行。这类数据流 应该划为一类特殊的数据流,称为事务流。
软件工程导论——总体设计相关推荐
- 软件工程导论—总体设计
Mitch Kapor曾经就软件设计发表过宣言:"什么是设计?设计是你站在两个世界--技术世界和人类的目标世界,而你尝试将这两个世界结合在一起--". 文章目录 1. 设计过程 1 ...
- 《软件工程导论》课后习题答案
<软件工程导论>课后习题答案 第一章 软件工程概论 1.什么是软件危机? 软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题.这些问题表现在以下几个方面: (1)用户对开发出 ...
- 《软件工程导论》考研复试整理
一.名词解释 DFD 数据流图Data Flow Diagram PDL 过程设计语言 Process Design Language PAD 问题分析图 Problem Analysis Diagr ...
- 软件工程导论复试——一、软件工程学概述
软件工程导论复试 本文用书 <软件工程导论>第六版张海藩.牟永敏 清华大学出版社 一.软件工程学概述 软件危机:计算机软件开发和维护时遇到的一系列严重问题 典型表现: (1) 对软件开发成 ...
- 首经贸电子信息复试软件工程导论
一.名词解释 DFD 数据流图Data Flow Diagram PDL 过程设计语言 Process Design Language PAD 问题分析图 Problem Analysis Diagr ...
- 软件工程导论期末考点总结
文章目录 一.软件工程学概述 1.1.软件危机 1.2.软件工程 1.2.1.软件工程的介绍 1.2.3.软件工程方法学 1.3.软件生命周期 1.4.软件过程 1.4.1.瀑布模型 1.4.2.快速 ...
- 软件工程导论(张海藩第六版)期末考试、考研复试重点
这里是一个重点的简介,只是概念性的内容,软件工程导论中还有一些画图的题目,建议先掌握概念性的内容,之后的画图就比较容易了. 文末附有完整的思维导图链接,思维导图里面是完整的知识点,学完一遍之后直接拿着 ...
- [课程复习] 软件工程导论之经典题目回顾 (一)选择题、填空题1
作者最近在复习考博,乘此机会分享一些计算机科学与技术.软件工程等相关专业课程考题,一方面分享给考研.考博.找工作的博友,另一方面也是自己今后完成这些课程的复习资料,同时也是在线笔记.基础知识,希望对您 ...
- 软件工程导论期末复习整理
软件工程导论 第1章 软件工程学概述 复习小结 1.识记概念:软件,程序.数据,文档.软件危机.软件工程,软件过程, 软件生命周期 2.理解软件工程的本质特性6个和基本原理7条 3.掌握软件工程的三个 ...
最新文章
- [Hibernate]在VS2010中应用NHibernate 3.2与MySQL
- .NET新手系列(六)
- JavaScript中的原型(prototype)与继承
- apache2.4.9 开启path_info访问_如何通过SSH访问NAS?
- OllyDbg捕捉MFC程序按钮事件
- 将Quartz与Spring集成
- nacos 怎么配置 里的配置ip_nacos集群配置
- java输入最大10位数,倒数输出(很鸡肋)
- 运用网络管理工具主动纠错
- 在CentOS6和CentOS7安装epel仓库-最简单的方法
- 查看Oracle当前用户下的信息
- Java集合不能存放基本数据类型,只存放对象的引用
- windows下ulipad开发环境安装
- 计算机与信息技术基础读书笔记,信息技术读书笔记3篇
- glassfish mysql datasource_GlassFish连接池(GlassFish connection pool)
- java颜色识别_Java颜色检测
- 【看表情包学Linux】插叙:实现简易的 Shell | 通过内建命令实现路径切换 | 再次理解环境变量
- 几款常用UML建模工具解析
- 互联网新闻八卦信息监测监控方案
- 锐评:泡沫中的token和被冷落的联盟链
热门文章
- 《真象还原》读书笔记——第二章 编写 MBR 主引导记录
- 8086微型计算机原理答案,8086微型计算机原理与应用(吴宁)习题答案(第二章)
- 美化窗体——VB窗体的背景图充满整个窗体
- [机缘参悟-30]:鬼谷子-内揵篇-同理心,站在对方的立场,拉近与对方的心理距离
- 华为ENSP路由相关配置
- DSPE-PEG-LyP-1(CGNKRTRGC)(二硬脂酰基磷脂酰乙醇胺-聚乙二醇-肿瘤靶向蛋白);肿瘤淋巴管归巢肽
- 写自动化测试代码中的命名规范
- SIFT算法详解——图像特征提取与匹配
- 智慧与智能与AI(自动化)
- IOS学习之UISwitch控件两种使用方法和监听