软件工程--总体设计
软件工程——总体设计报告简洁范本

软件工程——总体设计报告软件工程——总体设计报告1. 引言本总体设计报告旨在详细说明软件工程项目的整体设计方案。
在此将对项目的业务需求、系统架构和模块设计进行说明,以确保项目能够成功完成。
2. 业务需求2.1. 项目背景软件工程项目旨在开发一款新的电商平台。
该平台将提供用户注册、商品购买、订单管理等功能,为用户提供便捷的购物体验。
2.2. 功能需求用户注册与登录:提供用户注册和登录功能,以便用户可以使用平台的各项功能。
商品浏览与搜索:允许用户浏览平台上的不同商品,并能通过关键字搜索目标商品。
购物车管理:为用户提供购物车功能,用户可以将自己感兴趣的商品加入购物车,并进行管理。
订单管理:用户可以在平台上提交订单、查看订单状态、取消订单等操作。
评价与反馈:用户可以对购买的商品进行评价和反馈,以供其他用户参考。
3. 系统架构本软件工程项目采用三层架构模式进行设计,分为表示层、业务逻辑层和数据访问层。
3.1. 表示层表示层负责与用户进行交互,接收用户的请求并展示相应的内容。
该层将接收用户注册、登录、商品浏览等请求,并将这些请求传递给业务逻辑层处理。
3.2. 业务逻辑层业务逻辑层负责处理业务逻辑和业务规则,处理来自表示层的请求,并返回处理结果。
该层将负责用户注册、登录、商品浏览、购物车管理、订单管理等功能的实现。
3.3. 数据访问层数据访问层负责访问数据库,并进行数据的查询、插入、更新和删除等操作。
该层将保存用户信息、商品信息、订单信息等相关数据。
4. 模块设计基于业务需求和系统架构,将系统分为以下几个模块:4.1. 用户模块用户模块负责用户注册、登录和个人信息管理等功能。
该模块将包含用户注册表单、登录页面、个人信息展示页面等。
4.2. 商品模块商品模块负责商品的浏览、搜索和详情展示等功能。
该模块将包含商品列表页面、商品搜索页面和商品详情页面等。
4.3. 购物车模块购物车模块负责用户的购物车管理功能。
用户可以将感兴趣的商品加入购物车,并在购物车中进行管理和结算。
软件工程总体设计

软件工程总体设计软件工程总体设计1. 引言在软件开发过程中,总体设计是一个重要的阶段。
通过总体设计,软件工程师可以定义系统的整体结构、功能模块的划分以及模块间的关系,从而为后续的详细设计和实现提供指导。
本文将介绍软件工程总体设计的基本概念、重要内容和步骤,并通过一个示例来说明如何进行总体设计。
2. 总体设计概述总体设计是在需求分析的基础上进行的,其目标是确定软件系统的整体结构和模块划分,并定义模块间的接口和交互规则。
总体设计要考虑系统的可扩展性、模块的复用性以及系统的性能等方面。
在总体设计过程中,需要完成以下几个主要任务:- 软件系统结构的定义:确定软件系统的整体结构,包括模块的层次关系、控制流程等。
- 模块划分:将系统划分为多个功能模块,每个模块负责完成特定的功能。
- 接口设计:定义模块间的接口和数据交互规则。
- 数据结构设计:设计系统中需要使用的数据结构,包括数据库表设计、数据流图等。
- 性能优化:考虑系统的性能需求,进行必要的性能优化设计。
3. 总体设计步骤总体设计的过程可以分为以下几个步骤:3.1 需求分析在进行总体设计之前,首先要对用户需求进行分析和理解。
这包括与用户进行需求沟通,澄清用户需求,明确系统的功能和性能需求等。
只有清楚了用户需求,才能进行后续的总体设计。
3.2 系统结构设计系统结构设计是总体设计的核心内容之一。
在这一阶段,需要确定系统的整体结构,包括模块和数据流之间的关系。
可以使用层次化的方式来设计系统结构,将系统分为若干个层次,每个层次负责不同的功能。
3.3 模块划分在系统结构确定之后,需要对系统进行模块划分。
每个模块负责完成特定的功能,并且模块之间要有清晰的接口和数据交互规则。
模块划分要考虑系统的可扩展性和模块的复用性,避免模块之间的耦合度过高。
3.4 接口设计接口设计是模块划分的基础,它定义了模块之间的接口和数据交互规则。
在接口设计中,需要明确定义每个模块暴露给其他模块的功能接口和输入输出参数。
软件工程——总体设计报告-无删减范文

软件工程——总体设计报告软件工程——总体设计报告1. 引言本文档是软件工程项目的总体设计报告,用于阐述项目的整体设计方案。
本项目旨在开发一款具有特定功能的软件,该软件既要满足用户的需求,又要保证系统的稳定性和可维护性。
本报告将介绍项目的总体设计思路、结构和主要功能模块。
2. 总体设计思路在总体设计中,我们将采用分层结构的设计思路。
将软件系统划分为多个功能模块,每个模块之间通过接口进行交互。
模块之间的解耦合使得系统具有良好的扩展性和可维护性。
3. 系统结构设计3.1 模块划分根据对用户需求的分析,我们将系统划分为以下几个模块:1. 用户管理模块:负责用户的注册、登录和权限管理。
2. 数据处理模块:用于处理用户输入的数据,并进行相应的计算和分析。
3. 数据存储模块:负责将处理后的结果存储到数据库中,并提供数据的读取和查询功能。
4. 数据展示模块:用于展示处理后的数据结果,支持图表展示和数据导出等功能。
3.2 模块之间的关系下图展示了各个模块之间的关系:```用户管理模块 --> 数据处理模块 --> 数据存储模块 --> 数据展示模块```3.3 接口设计为了确保模块之间的解耦合,我们需要定义清晰的接口规范。
以下是各个模块的接口设计:1. 用户管理模块:- 注册用户(registerUser): 用于用户注册,参数为用户名和密码。
- 用户登录(loginUser): 用于用户登录,参数为用户名和密码。
- 权限管理(managePermission): 用于管理用户的权限,参数为用户ID和权限类型。
2. 数据处理模块:- 数据处理(processData): 用于处理用户输入的数据,参数为原始数据。
- 数据计算(calculateData): 用于对处理后的数据进行计算和分析。
3. 数据存储模块:- 数据存储(saveData): 用于将处理后的结果存储到数据库中,参数为处理结果。
- 数据读取(readData): 用于从数据库中读取数据,参数为数据ID。
软件工程导论第5章 总体的设计

⑵内聚:衡量一个模块内部各个元素彼此结合的紧密 程度。
5.2 续
耦合
软件结构中各个模块之间相互关联程度的度量。 常见的耦合: • ⑴非直接耦合 • ⑵数据耦合 • ⑶控制耦合 • ⑷特征耦合 • ⑸公共环境耦合 • ⑹内容耦合 设计原则:尽量使用数据耦合,少用控制耦合, 限制公共耦合的范围,避免使用内容耦合。
划分模块时尽量做到高内聚,低耦合,保持模块相对 独立性,并以此原则优化初始的软件结构。
⑴如果若干模块之间耦合强度过高,每个模块内功能 不复杂,可将它们合并,以减少信息的传递和公共区 的引用。
⑵若有多个相关模块,应对它们的功能进行分析,消 去重复功能。
设计准则
5.3 续
⑵模块规模应该适中
过大的模块往往是由于分解不充分。 过小的模块开销大于有效操作。
设计方法:定义一些不同的“映射”,把数据流 图变换成软件结构。
结构化设计方法——面向数据流的设计方法。
变换流
5.5 续
信息沿输入通路进入系统,同时由外部形式变换 成内部形式,进入系统的信息通过变换中心,经 加工处理以后再沿输出通路变换成外部形式离开 软件系统。当数据流图具有这些特征时,这种信 息流就叫作变换流。
B
C
D
(a) 基 本 形 式
(b) 顺 序
B
C
(c) 选 择
B
(d) 重 复
结构图
5.4 续
判定为真时调用A,为假时调用B
结构图
5.4 续
模块M循环调用模块A、B、C
概念
5.5 面向数据流的设计方法
定义:把信息流映射成软件结构,信息流的类型 决定了映射的方法。
目标:给出设计软件结构的一个系统化的途径。
软件工程知识梳理3-总体设计

总体设计(概要设计)总体设计的基本目的是回答“概括地说,系统应该如何实现”这个问题,因此总体设计又称为概要设计或初步设计。
本阶段的工作讲划分出组成系统的物理元素:程序、文件、数据库、人工过程和文档等,但是每个物理元素仍然处于黑盒子级,这些黑盒子里面的具体内容将在后面的详细设计完成。
两个阶段:系统设计:确定系统具体实现方案结构设计:确定软件结构九个步骤:1.设想供选择的方案2.选取合理的方案3.推荐最佳方案——>进入下一个阶段结构设计4.功能分解:先进行结构设计确定软件结构,然后进行过程设计5.设计软件结构6.设计数据库7.制定测试计划8.书写文档:系统说明、用户手册、测试计划、详细的实现计划、数据库设计结果9.审查和复审设计原理1.模块化:把程序划分程独立命名且可独立访问的模块,每个模块完成一个子功能,再把这些模块集成起来构成一个整体,可以完成指定的功能以满足用户需求。
(分治)2.抽象:3.逐步求精:4.信息隐藏和局部化:5.模块独立:耦合、内聚启发规则:经验之谈!1.改进软件结构提高模块独立性2.模块规模应该适中3.深度、宽度、扇出和扇入都应适当4.模块的作用域应该在控制域之内5.力争降低模块接口的复杂程度6.设计单入口单出口的模块7.模块功能应该可以预测描绘软件结构的图形工具1.层次图和HIPO图2.结构图面向数据流的设计方法在软件工程的需求分析阶段,信息流是一个关键考虑,通常用数据流图描绘信息在系统中加工和流动的情况。
面向数据流的设计方法定义了一些不同的“映射”,利用这些映射可以把数据流图变换成软件结构。
因为任何软件系统都可以使用数据流图表示,所以面向数据流的设计方法在理论上可以设计任何软件结构。
通常所说的结构化设计方法(SD方法)就是基于数据流的设计方法。
信息流—>软件结构,信息流的类型决定了映射的方法,信息流有两种:变换流和事务流。
变换分析:一系列设计步骤的总称,经过这些步骤把具有变换流特点的数据流图按预先确定的模式映射成软件结构。
软件工程 总体设计

软件工程总体设计在当今数字化的时代,软件如同无处不在的精灵,融入我们生活的方方面面。
从智能手机上的各种应用程序,到企业内部复杂的业务系统,软件的身影无所不在。
而软件工程中的总体设计,就像是为软件绘制蓝图的建筑师,决定着软件的架构、功能模块的划分以及它们之间的交互关系,对软件的质量、可维护性和可扩展性起着至关重要的作用。
总体设计是软件工程中的一个关键阶段,它承接了需求分析的成果,为后续的详细设计和编码工作奠定了基础。
在这个阶段,软件工程师需要综合考虑各种因素,包括软件的功能需求、性能要求、运行环境、用户界面、安全性等,以设计出一个满足用户期望并且高效、可靠的软件架构。
首先,在进行总体设计时,需要明确软件的目标和范围。
这就像是确定一座建筑的用途和占地面积一样。
比如,是要开发一个在线购物平台,还是一个企业资源规划系统?不同的目标和范围将导致截然不同的设计方案。
通过与利益相关者(如客户、用户、业务分析师等)的充分沟通,软件工程师能够清晰地了解软件需要解决的问题和实现的功能,从而为后续的设计工作指明方向。
接下来,是对软件架构的设计。
软件架构就像是建筑的框架结构,决定了软件的整体稳定性和可扩展性。
常见的软件架构模式有分层架构、客户端服务器架构、微服务架构等。
选择合适的架构模式需要考虑软件的规模、复杂性、性能要求以及开发团队的技术能力等因素。
例如,对于一个小型的单机应用程序,分层架构可能是一个简单而有效的选择;而对于一个大型的分布式系统,微服务架构可能更能适应其高并发和快速迭代的需求。
在设计软件架构的过程中,还需要合理划分功能模块。
这就像是将一座大楼划分为不同的房间和区域,每个模块负责实现特定的功能。
功能模块的划分应该遵循高内聚、低耦合的原则,即模块内部的元素紧密相关,而模块之间的交互尽量简单和明确。
这样可以提高软件的可维护性和可重用性,当某个模块出现问题时,能够快速定位和修复,而不会影响到其他模块的正常运行。
《软件工程》第4章软件总体设计

《软件工程》第4章软件总体设计软件总体设计是软件工程的一个重要环节,它涉及到软件系统的整体结构和架构的定义,以及软件模块之间的关系和接口的设计。
软件总体设计的目标是确保软件系统能够满足用户需求,并且具有高性能和可扩展性,同时保证系统的可维护性和可测试性。
软件总体设计的过程包括以下几个步骤:1.确定系统的功能需求:根据用户需求和系统分析的结果,定义系统应该具备的功能和特性。
2.划分系统结构:将系统划分为多个模块和子系统,确定各个模块之间的关系和层次结构。
3.定义模块接口:对每个模块定义清晰的接口,包括输入参数、输出参数和功能描述,以便模块之间的协作和集成。
4.设计系统架构:选择合适的架构风格和模式,确定系统的整体结构和组成,包括数据流、控制流和模块之间的通信。
5.设计数据结构和算法:根据系统需求和性能要求,设计合适的数据结构和算法,以满足系统的功能和性能要求。
6.设计系统界面:设计系统与用户和外部系统的界面,包括图形界面、命令行界面和数据交换接口。
7.考虑系统安全性和可靠性:在设计阶段考虑系统的安全性和可靠性需求,设计对应的安全和可靠性机制。
8.进行评审和验证:对软件总体设计进行评审和验证,确保设计的可行性和完整性。
软件总体设计的核心是系统架构设计,系统架构设计要考虑系统的功能需求、性能要求、可扩展性、可维护性、可测试性等因素。
常用的软件架构风格包括层次架构、客户端-服务器架构、分布式架构、面向服务的架构等。
选择合适的架构风格可以提高系统的灵活性和可维护性。
在软件总体设计过程中,还需要考虑到软件的适应性和可移植性。
软件应该能够适应不同平台和操作系统的要求,并能够方便地移植到其他环境中。
为了提高软件的可移植性,可以采用标准化的接口和协议,避免使用具体的硬件和操作系统依赖。
此外,软件总体设计还需要考虑到系统的可维护性和可测试性。
软件系统通常需要进行修改和维护,因此设计时需要考虑到系统的可扩展性和模块之间的解耦。
软件工程总体设计

软件工程总体设计软件工程总体设计简介软件工程总体设计是软件开发过程中的重要阶段之一,用于定义软件系统的整体结构和框架。
本文档将从需求分析、结构设计、模块设计、接口设计等方面,详细介绍软件工程总体设计的内容和方法。
需求分析在软件工程总体设计的过程中,需要进行需求分析。
需求分析是确定软件系统功能和性能要求的过程,它包括对用户需求的调查和分析,形成软件需求规格说明书。
需求分析阶段的主要任务包括:- 收集用户需求:通过与用户的沟通和调研,获取用户对软件系统的需求和期望。
- 分析需求:对收集到的需求进行整理和分析,确保需求的准确性和一致性。
- 确定功能和性能要求:根据用户需求,确定软件系统需要实现的功能和性能要求。
结构设计在需求分析阶段确定了软件系统的功能和性能要求后,接下来就需要进行结构设计。
结构设计是软件工程总体设计的核心任务,它包括定义软件系统的整体结构和模块划分。
结构设计阶段的主要任务包括:- 定义软件系统的层次结构:确定软件系统的整体结构,将系统划分为各个模块,并确定各个模块之间的关系。
- 选择合适的架构风格:根据软件系统的需求和特点,选择合适的架构风格,如客户端-服务器架构、分层架构等。
- 设计系统的数据流和控制流:确定软件系统中数据的流动方式和控制的流程,确保系统能够按照预期的方式运行。
模块设计在结构设计阶段确定了软件系统的整体结构和模块划分后,接下来就需要进行模块设计。
模块设计是定义软件系统各个模块的具体实现方式和功能的过程。
模块设计阶段的主要任务包括:- 设计模块的接口:确定模块与模块之间的接口,包括输入参数、输出结果以及模块之间的调用关系。
- 设计模块的内部逻辑:定义模块内部的实现逻辑,包括算法、数据结构等。
- 确定模块的策略:设计模块的策略,确保模块的功能和性能能够满足需求和规格说明。
接口设计在进行模块设计的过程中,还需要进行接口设计。
接口设计是定义模块和外部环境之间的通信接口,确保模块能够与其他模块正确地进行交互。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
西北师大数学与信息科学学院
软件设计
内
内聚性 顺序 内聚 通信 内聚
聚
高 功能 内聚 强
低
时间 内聚 逻辑 内聚 弱 偶然 性内 聚
过程 内聚
模块独立性
19
西北师大数学与信息科学学院
2、内聚
内聚:一个模块内各个元素彼此结合的紧密程度。
低内聚 偶然内聚:一个模块完成一组任务,任务之间的关系很松散。公共语句。 逻辑内聚:若干个逻辑功能类似的任务组成一个模块。 时间内聚:若干个任务必须在同一段时间内执行。如初始化工作。
11
西北师大数学与信息科学学院
模块化和软件成本的关系
软件总成本 最小成本区
M
接口成本
成本或工作量
模块数目
12
西北师大数学与信息科学学院
5.2.2
抽象
我们在考虑问题时,集中考虑和当前问题有关的方 面,而忽略和当前问题无关的方面,这就是抽象。或 者说抽象就是抽出事物的本质特性而暂时不考虑它们 的细节。 5.2.3 逐步求精 逐步求精是人类解决复杂问题时采用的基本技 术,也是许多软件工程技术(例如,规格说明技术,
25
西北师大数学与信息科学学院
5.4 表示软件结构的图形工具
5.4.1 5.4.2 5.4.3 层次图 HIPO图 结构图
26
西北师大数学与信息科学学院
5.4.1
层次图和HIPO图
通常使用层次图描绘软件的层次结构。
1、层次图
层次图用来描绘软件的层次结构,很适于在自顶向下 设计软件的过程中使用。 在层次图中一个矩形框代表一个模块,框间的连线表 示调用关系(位于上方的矩形框所代表的模块调用位于 下方的矩形框所代表的模块)。
37
西北师大数学与信息科学学院
A
M
B (a )
C
T1
T2 (b )
T3
4.3 选择调用和循环调用的表示
(a) 选择调用; (b) 循环调用
38
西北师大数学与信息科学学院
产生最佳解 好输入 解 解
好 输 入
得到好输入
计算最佳解
输出结果
原始输入 原始输入 读输入
编辑结果
1、耦合
1. 2. 3. 非直接耦合 数据耦合 特征耦合 弱耦合
模块A
内容耦合 • 访问其它模块的内部数据 • 直接跳到其他模块内部执行 非直接耦合 模块之间没有信息传递
模块B 数据耦合 通过简单变量 交换数据 模块3
4.
5. 6. 7.
控制耦合
外部耦合 公共耦合 内容耦合
模块1
模块2
中耦合
特征耦合 通过数据结 构交换数据
第八章基于构件的软件工程
第五章系统设计
1
西北师大数学与信息科学学院
4
5.1 5.2 5.3 5.4 5.5 设计过程 设计原理 启发规则 描绘软件结构的图形工具 面向数据流的设计方法
2
西北师大数学与信息科学学院
软件设计
软件设计阶段要解决“怎么做”的问题,是整个 软件开发过程的核心问题,所有的开发工作都将根据 设计的方案进行。系统的总体结构在该阶段决定,因 此软件的总体设计决定了系统的质量。软件设计分为 总体设计和详细设计两个阶段。
数据设计
其他需求
程序模块 过程设计 编码
软件开发阶段的信息流
4
西北师大数学与信息科学学院
总体设计的任务
●任务:确定系统的软件结构,分解模块 , 确定系统的模块层次关系。 ●目标: 编写软件的 “总体设计说明书” ●工具:采用的工具 数据流图 层次图 HIPO图 软件结构图
5
西北师大数学与信息科学学院
修 需求 说明书 软件 总体 结构 设计 改
修
改
设计说 明书 复审
复审
详细 可接受 设计 模块描述
1、设计阶段结束要交付的文档是设计说明书,根据 设计方法的不同,有不同的设计文档。 2、每个设计步骤完成后,都应进行复审。 3
西北师大数学与信息科学学院
软件设计的过程
信息描述 功能描述 设计 行为描述 集成并确 认的软件 测试
详细阐述。
15
西北师大数学与信息科学学院
模块间的耦合
耦合性是程序结构中各个模块之间相互关联的度量 它取决于各个模块之间接口的复杂程度、调用模块的方 式以及那些信息通过接口。
低 非直接 耦合 强 数据 耦合 特征 耦合 耦合性 控制 耦合 模块独立性 外部 耦合 公共 耦合 高 内容 耦合 弱
16
西北师大数学与信息科学学院
数据流图
• 组成系统的物理元素清单 • 成本/效益分析 • 实现系统的进度计划 审查和 复 审
8
制订测 试计划
数据库 设 计 • 系统说明 • 用户手册 • 测试计划 • 详细的实现计划 • 数据库设计结果
书写 文档
西北师大数学与信息科学学院
5.2 系统设计的基本原则
5.2.1 模块化
5.2.2 抽象 5.2.3 信息隐蔽 5.2.4 模块独立性
过程、函数、子程序和宏等,都可作为模块。 面向对象范型中的对象是模块,对象内的方法也是 模块。模块是构成程序的基本构件。
10
西北师大数学与信息科学学院
3、模块化原理
有两个函数:C(x)表示问题x的复杂程度;E(x)表示解决 问题x所需要的工作量(时间)。 对于两个问题P1和P2,如果:C(P1)>C(P2) 则:E(P1)>E(P2) 另一个有趣的特性是:C(P1+P2)>C(P1)+C(P2) 根据前面的结论,我们可以得出下面的不等式: E(P1+P2)>E(P1)+E(P2) 这个不等式表明:单独解决问题P1和P2所需的工作量之和, 比把P1和P2合起来作为一个问题来解决时所需的工作量要少。
尾部是空心圆表示传递的是数据 实心圆表示传递的是控制信息
34
西北师大数学与信息科学学院
描绘软件结构的图形工具
结构图的组成 有6种类型的模块:传入模块、传出模块、变换模块、协调模 块,如下图所示,还有两种: 源模块:不调用其它模块的传 入模块,只适用于传入部分的始端。最初的输入; 漏模块: 不调用其它模块的传出模块,只适用于传出部分的末端。最后 的输出。
14
西北师大数学与信息科学学院
5.2.5 模块独立
模块独立概念是模块化、抽象、逐步求精和信息
隐藏等概念的直接结果,也是完成有效的模块设计
的基本标准。 模块的独立程度可以由两个定性标准来度量,这 两个标准分别称为内聚和耦合。耦合衡量不同模块
彼此间互相依赖(连接)的紧密程度;内聚衡量一个
模块内部各个元素彼此结合的紧密程度。以下分别
强耦合
模块4 控制耦合 模块之间传递 的是控制信息
模块A
模块L 模块1
模块B
模块C
模块D
模块N
T 全 局 性简单变量 外部耦合 S1 Flag=1? F S2
全局性数据结构 公共耦合 17
西北师大数学与信息科学学院
设计原则:尽量使用数据耦合, 少用控制耦合,限制公共环境耦合, 完全不用内容耦合。
18
软件设计的目标
结构化设计(SD)技术
1、确定系统的软件结构,分解模块 ,确定系统 的模块层次关系 2、确定每个模块功能的算法、数据结构 数据流图的特征 分层的DFD图
启发式规则
最终的结构图 优化 确定每个模块功能的算 法、数据结构
初始的结构图
(层次图表示)
转换
(事务型、变换型(特征) )
6
西北师大数学与信息科学学院
尾部是空心圆表示传递的是数据 实心圆表示传递的是控制信息
33
西北师大数学与信息科学学院
5.4.1 结构图
结构图和层次图类似也是描绘软件结构的图形工具。 结构图的基本符号 方框代表模块,框内注明模块的名字或主要功能;
箭头表示模块的调用关系,为了简单起见,可以只 用直线而不用箭头表示模块间的调用关系。
设计和实现技术、测试和集成技术)的基础。逐步
求精定义为:“为了能集中精力解决主要问题而尽
量推迟对问题细节的考虑。”
1隐蔽和局部化
信息隐蔽指:是指在设计和确定模块时,使得一个 模块内包含的信息(过程或数据),对于不需要这些 信息的其他模块来说, 是不能访问的;即将那些自 身的实现细节与数据“隐藏”起来。 信息局部化指:局部化是指把一些关系密切的软件 元素物理地放得彼此靠近。在模块中使用局部数据 元素是局部化的一个例子。 信息隐蔽 局部和的关系?
描绘软件结构的图形工具
在层次图(H图)里除了最顶层的方框之外,每个方框都加编 号。编号规则和数据流图的编号规则相同,例如,图加了编号后 得到图0。像这样带编号的层次图称为HIPO图(层次图加输入/ 处理/输出图的英文缩写)。
图学生成绩管理系统HIPO图
30
西北师大数学与信息科学学院
图4.6
31
IPO图的一个例子
TOP TOP TOP
A
B
A
B
A
B
C
D
C
D
C
D
E ( a)
F
E (b)
F
E ( c)
F
图 模块的判定作用范围
(a) 差的结构图; (b) 不理想的结构图; (c) 理想的结构图
24
西北师大数学与信息科学学院
5.力争降低模块接口的复杂程度。 模块接口复杂是软件发生错误的一个主要 原因。 6.设计单入口单出口的模块,避免“病态 连接” 7.模块功能应该可以预测 。 防止模块功能过分局限
5.1 设计过程
软件设计分为: 结构设计 总体设计(概要设计) 过程设计 详细设计 总体设计过程分两个阶段: 系统设计阶段:确定系统的具体设计方案; 结构设计阶段:确定软件结构(划分模块)。