目录

一、总体设计

(一)总体设计的任务

(二)总体设计的概念

(三)结构设计的准则

二、详细设计

(一)详细设计的原则

(二)详细设计的工具

三、总体设计、详细设计文档的重要性


需求分析确定了系统的开发目标,下一步工作就是软件设计。软件设计可以进一步地 分为两个阶段:总体设计和详细设计。

一、总体设计

(一)总体设计的任务

在总体设计中有3个主要任务。

(1)将系统划分成物理元素,即程序、文件、数据库和文档等。

(2)设计软件结构,即将需求规格转换为体系结构,划分出程序的模块组成、模块间的相互关系。确定系统的数据结构、文件结构、数据库模式,确定测试方法与策略。

(3)编写总体设计说明书、用户手册、测试计划,用结构图来描述软件结构,选择分解功能与划分模块的设计原则。

(二)总体设计的概念

模块:又称构件,是指能够单独命名并独立完成一定功能的程序语句的集合。

抽象:即 抽出事物的本质特性而暂时不考虑它们的细节

信息隐蔽:每一个模块的实现细节对于其他模块来说是隐蔽的,也就是说 模块中所包含的信息不允许其他不需要这些信息的模块调用。

模块的独立性:模块独立性的概念是模块化、抽象和信息隐蔽的直接结果。

模块的独立性可以用两个定性标准度量:耦合和内聚。

低         ————

耦合性

———→             高

非直接耦合

数据耦合

标记耦合

控制耦合

外部耦合

公共耦合

内容耦合

强       ←———

模块独立性

————             弱

高         ←————

内聚性

————             低

功能内聚

信息内聚

通信内聚

过程内聚

时间内聚

逻辑内聚

偶然内聚

强       ←———

模块独立性

————             弱

(三)结构设计的准则

1.提高设计准则

2.选择合适的模块规模

3.适当选择模块的深度、宽度、扇入和扇出

4. 模块的作用范围应在控制范围之内

5. 降低模块接口的复杂程度

6. 设计单入口单出口且功能可预测的模块

二、详细设计

根据“由外向里”的思想方法,概要 设计完成之后,就要进行详细设计。详细设计确定每个模块的内部特征,即每个模块内部 的执行过程

(一)详细设计的原则

(1) 由于详细设计的蓝图是给其他人看的,所以模块的逻辑描述要清晰易读、正确可靠,这样别人才能读懂。这也是常说的清晰第一的设计风格。

(2) 采用结构化设计方法,改善控制结构,降低程序的复杂程度,从而提高程序的可 读性、可测试性、可维护性。其基本内容归纳为如下几点:

① 程序语言中应尽量少用GOTO语句,以确保程序结构的独立性。

② 使用单入口单出口的控制结构,确保程序的静态结构与动态执行情况相一致,保证 程序易理解。

③ 程序的控制结构一般采用顺序、选择、循环三种结构,确保结构简单。

④ 用自顶向下逐步求精方法完成程序设计。

⑤ 经典的控制结构有顺序、IF THEN ELSE分支、DO-WHILE循环。扩展的还有多分支CASE、DO-UNTIL循环结构、固定次数循环DO-WHILE。

(二)详细设计的工具

1.传统程序流程图

2.N-S图

3.PAD图

三、总体设计、详细设计文档的重要性

在总体设计阶段设计人员完成的主要文档是总体设计说明书,详细设计阶段的文档就是详细设计说明书。

在设计软件的过程中,可能涉及到很多相关人员,建立设计文档的目的是为了把设计的思想告诉其他的相关人员。只有先让别人知道你设计的思想后别人才能做相应的工作, 可读性高同样有利于维护。

软件工程——总体设计与详细设计相关推荐

  1. 第4章 软件的设计——总体设计与详细设计

    第4章 软件的设计--总体设计与详细设计 1.划分模块可以减低软件的复杂度和工作量,所以应该将模块分得越小越好.(错误) 2.一般来讲,在模块划分时,应当尽量使用数据耦合,少用控制耦合,限制公共耦合的 ...

  2. 2017.10.8 软件工程----总体设计

    (1)经过需求分析阶段的工作,系统必须做什么已经清楚了,现在是决定怎样做的时候,总体设计的基本目的就是回答"概括地说, 系统应该如何实现"这个问题,因此,总体设计有称为概要设计或初 ...

  3. 软件工程--总体设计过程详解

    总体设计过程 总体设计过程通常由两个主要阶段组成:系统设计阶段, 确定系统的具体实现方案:结构设计阶段, 确定软件结构.典型的总体设计过程包括下述9个步骤. 1. 设想供选择的方案 如何实现要求的系统 ...

  4. 软件工程(总体设计②设计原理)

    设计原理 模块化 模块是由边界元素限定的相邻程序元素的序列,而且有一个总体标识符代表它. 按照模块的定义,过程.函数.子程序和宏,都可作为模块. 面向对象方法学中的对象是模块,对象内的方法也是模块.模 ...

  5. 软件工程详细设计说明书_软件工程导论知识点梳理之简答题

    1. 软件危机的表现形式 对软件开发成本和进度估计不准确 已完成的软件不符合用户需求 软件产品质量差,可靠性得不到保证 软件产品可维护性差 软件成本在计算机总成本中的比例逐渐变大 软件开发生产率提高速 ...

  6. 软件工程导论 05章总体设计

    1.典型的总体设计步骤: ①确定最佳方案 ②功能分解 ③体系结构设计 ④模块设计 ⑤数据结构与数据库设计 ⑥用户界面设计 ⑦设计完成设计文档 ⑧评审 总体设计的目的:概括地回答系统应该如何实现这个问题 ...

  7. 软件工程——软件总体设计

    一.选择题 1.软件设计包括概要设计和详细设计两个阶段. 2.SA方法的基本思想是自项向下逐步分解. 3.结构化方法的基本原则是功能的分解和抽象. 4.软件概要设计结束后得到优化后的软件结构图. 5. ...

  8. 软件工程导论—总体设计

    Mitch Kapor曾经就软件设计发表过宣言:"什么是设计?设计是你站在两个世界--技术世界和人类的目标世界,而你尝试将这两个世界结合在一起--". 文章目录 1. 设计过程 1 ...

  9. 软件工程第五章——总体设计

    总体设计的基本目的就是回答"概括地说,系统应该如何实现"这个问题,因此,总体设计又称为概要设计或初步设计. 总体设计阶段的另一项重要任务是设计软件的结构,也就是要确定系统中每个程序 ...

  10. 软件工程——软件开发阶段(概要设计、详细设计)

    需求分析确定了系统的开发目标,下一步工作就是软件设计.软件设计可以进一步地 分为两个阶段:总体设计和详细设计.确定系统的具体 实现方案.给出软件的模块结构.编写各个文档 目的是什么? 承上(需求)启下 ...

最新文章

  1. PNAS | 根际植保素合成调控细菌对植物的促生长作用
  2. jsp是怎么连接java_java-如何从jsp中的超链接调用doPost()servlet
  3. 线性八叉树_octree八叉树数据结构原理与实现
  4. python代码_自学Python之后不想去公司上班,教你如何月入10000+,听过来人说
  5. 21-matlab 迷宫题
  6. Memcached相关内容总结
  7. Xamarin.Android 开发中遇到旋转屏幕错误
  8. Mybatis生成器插件扩展,定制方法生成,list参数生成
  9. review what i studied `date` - 2017-3-31
  10. Android官方开发文档Training系列课程中文版:创建自定义View之View的优化
  11. “社区之星”(社区核心贡献者)成长故事征集
  12. python类基础知识
  13. java怎么反编译_java如何进行反编译
  14. IDEA 导出配置方法
  15. 前端html小技巧(css篇)—表单美化详解
  16. opnet matlab联合仿真,OPNET与Matlab联合仿真参数设置
  17. 内网渗透----Windows下信息收集
  18. YOLOV5的数据处理 增强技术
  19. 容器化(docker)
  20. 【软件全称】图书管理系统

热门文章

  1. 如何清理苹果MAC电脑系统缓存数据?
  2. 线性代数辅导讲义(第四章 线性方程组)
  3. 给MDK5/KEIL5安装51/ARM编译坏境
  4. Eclipse修改JSP新建模板
  5. set-cookie无法存入到浏览器cookie问题汇总
  6. mysql之魔鬼训练营
  7. photoshop标尺工具_RulersGuides.js – Web上的Photoshop样式标尺和指南
  8. cass连接复合线命令 lisp_在cass中如何使两个多段线合为一条
  9. [网站加载优化]公共CDN库/Nginx启用Gzip/全站CDN加速
  10. python蓝牙通信_python实现蓝牙通信