软件设计的目标和任务
软件工程详细设计方案

软件工程详细设计方案一、设计背景及目的随着信息技术的发展,软件工程在各个行业中发挥着越来越重要的作用。
在软件工程中,详细设计方案是软件开发过程中非常重要的一环,它涉及到软件系统的具体实现细节,包括软件架构、模块设计、数据结构、算法设计等各个方面。
一个好的详细设计方案能够为软件开发提供清晰的指导,同时也能够为软件的测试、维护和升级提供便利。
本文旨在提出一份软件工程详细设计方案,以便为软件开发人员提供参考,同时也为软件开发过程中的相关工作提供指导。
二、设计原则1. 遵循软件工程的最佳实践,包括模块化、可重用、可扩展、可维护等原则。
2. 详细设计方案应能够明确地描述软件系统的结构和功能,以便开发人员可以清晰地理解并实施。
3. 详细设计方案应包括充分的测试计划,以保证软件的质量和稳定性。
三、详细设计方案内容1. 软件架构设计软件架构设计是软件系统中最基本的设计。
它应包括系统的整体结构,各个模块之间的关系,以及系统的部署方式。
- 系统结构:描述软件系统的总体结构,包括各个模块的功能和相互关系。
- 模块描述:对系统中各个模块进行详细的描述,包括模块的功能、接口和实现细节。
- 部署方式:描述软件系统的部署方式,包括客户端/服务器模式、云计算模式等。
2. 数据结构设计数据结构设计是软件系统中非常重要的一环,它决定了软件系统中数据的存储方式、处理方式和访问方式。
- 数据模型:描述软件系统中所使用的数据模型,包括数据库模型、文件模型等。
- 数据操作:描述系统中数据的操作方式,包括增删改查、事务处理等。
- 数据安全:描述系统中数据的安全策略,包括数据加密、访问控制等。
3. 接口设计接口设计是软件系统中模块之间交互所使用的接口设计,包括模块间的接口、用户界面的设计等。
- 模块接口:描述软件系统中各个模块之间的接口,包括参数传递、消息传递、事件触发等。
- 用户界面:描述软件系统的用户界面设计,包括界面元素、交互方式等。
软件设计概要讲义PPT(83张)

三、软件设计的概念和原理
自顶向下,逐步细化将软件的体系结构按自顶向下方式,对各个层次的过程细节和数据细节逐层细化,直到用程序设计语言的语句能够实现为止,从而最后确立整个的体系结构。 软件结构 ①软件结构包括两部分。程序的模块结构和数据的结构。 ②软件的体系结构通过一个划分过程来完成。该划分过程从需求分析确立的目标系统的模型出发,对整个问题进行分割,使其每个部分用一个或几个软件成份加以解决,整个问题就解决了。
项目经理
负责分配设计任务,追踪设计阶段进度,在项目组内协调设计过程中所需资源,参与设计文档的同行评审
系统分析员
完成相关的设计任务,编写设计文档,修改设计评审中发现的问题
项目组开发人员代表
参与设计文档的同行评审
其他项目经理
参与设计文档的同行评审
其他项目系统分析员
参与设计文档的同行评审
质量保证员
检查设计过程及设计阶段产生的文档,跟踪发现的问题的解决情况
一、软件设计的目标和任务
1、目标 系统结构设计定义软件系统各主要成份之间的关系。 过程设计。把结构成份转换成软件的过程性描述。
开发阶段的信息流
把需求翻译成文档
2、软件设计的任务 概要设计(系统设计),将软件需求转化为数据结构和软件的系统结构。概要设计由技术总监,部门经理和项目经理来做的,有可能会加一两个核心程序员。
二维画图又分为以下CASE,案例,任务的集合
(2)数据抽象 在不同层次上描述数据对象的细节,定义与该数据对象相关的操作。 例如,在CAD软件中,定义一个叫做drawing绘图的数据对象。可将drawing规定为一个抽象数据类型,定义它的内部细节为:
软件工作计划及目标

软件工作计划及目标一、引言随着信息化时代的到来,软件行业逐渐成为人们生活中不可或缺的一部分。
随着技术的不断进步,软件产业也日新月异,各种新型软件层出不穷。
作为软件行业的从业者,我们应该清楚地认识到软件工作的重要性,制定合理的软件工作计划和明确的软件工作目标,才能更好地提高工作效率,提高软件质量,实现软件项目的成功。
二、软件工作计划1. 起始阶段在软件项目的起始阶段,我们需要先进行项目调研,明确软件需求和项目目标,为软件工作的展开奠定基础。
在这一阶段,我们将明确软件项目的功能需求和时间要求,并确定软件项目的范围和规模。
2. 计划阶段在软件项目的计划阶段,我们将根据项目需求和目标,制定详细的软件工作计划。
具体来说,我们将明确软件工作的时间安排、工作人员分工、技术选型、软件质量控制等方面的工作内容,确保软件项目有条不紊地进行。
3. 实施阶段在软件项目的实施阶段,我们将根据软件工作计划和要求,开展软件开发、测试、部署等工作。
在这一阶段,我们将注重团队协作、技术创新和问题解决,确保软件项目的高效实施。
4. 控制阶段在软件项目的控制阶段,我们将重点关注软件工作的质量控制、进度控制和成本控制。
具体来说,我们将监督软件开发、测试和部署过程,及时发现和解决问题,确保软件项目的有效控制。
5. 结束阶段在软件项目的结束阶段,我们将对软件工作进行总结和评估,制定软件项目的收尾计划和后续工作安排。
在这一阶段,我们将进行软件项目的成果验收、问题总结和团队建设,为下一阶段的软件工作奠定基础。
三、软件工作目标1. 高质量软件产品我们的软件工作目标是开发高质量的软件产品。
具体来说,我们将注重软件架构设计、编码规范、测试流程等方面的工作,确保软件产品达到行业标准,满足用户需求。
2. 高效软件工作我们的软件工作目标是实现高效的软件工作。
具体来说,我们将注重团队协作、工作流程和技术创新,提高软件开发效率,提高软件工作质量,确保软件项目的成功。
简述软件工程的目标及原则

简述软件工程的目标及原则软件工程是一门利用系统性、规范化的方法来开发、维护和管理软件的学科。
它的目标是提高软件开发过程的效率和质量,确保软件项目的成功实施。
为了实现这一目标,软件工程遵循一些原则和准则。
本文将简要介绍软件工程的目标及其原则。
一、软件工程的目标软件工程的主要目标是开发出满足用户需求、功能强大、可靠稳定、易于维护和可扩展的软件。
具体来说,它的目标包括以下几个方面:1. 提高软件质量:软件工程通过系统化的方法和有效的质量控制,致力于开发高质量的软件产品。
这包括从需求分析到设计、编码、测试和维护等各个阶段的全面质量管理,以确保软件的可靠性、健壮性和安全性。
2. 提升开发效率:软件工程强调将软件开发过程转化为可管理的活动,通过分阶段的开发、模块化的结构和良好的团队合作,提高开发效率。
它还倡导使用自动化工具和技术来简化开发工作,减少重复性劳动,提高开发人员的生产力。
3. 控制开发成本:软件开发的成本往往非常昂贵,软件工程以经济高效为原则,通过合理规划和组织开发过程,控制开发成本。
它强调对项目的风险评估和管理,合理分配资源,合理制定进度计划,以确保项目能够按时完成并在预算范围内运行。
4. 适应需求变化:软件开发过程中,需求常常会发生变化。
软件工程强调灵活性和可适应性,通过建立灵活的开发框架和模型,使开发团队能够及时响应需求变化,保持与用户的沟通,确保软件能够满足用户的新需求。
二、软件工程的原则软件工程遵循一些原则和准则,以确保软件开发过程的有效性和质量。
以下是几个常用的软件工程原则:1. 分阶段开发原则:将软件开发过程划分为不同的阶段,每个阶段都有特定的目标和成果。
这能够使团队成员专注于当前阶段的任务,降低开发的复杂性,提高开发效率。
2. 模块化原则:将软件系统划分为多个模块,每个模块负责独立的功能。
模块化能够提高代码的可重用性和可维护性,同时也方便团队合作和并行开发。
3. 面向对象原则:软件工程倡导使用面向对象的编程方法,以对象为中心,通过封装、继承和多态等概念,使开发更加模块化、可扩展和易于维护。
软件设计方案怎么写

软件设计方案怎么写软件设计方案是指在软件开发过程中,根据需求分析和需求规格说明书,为软件系统设计出一套完整、可行和高效的解决方案。
下面是一个关于软件设计方案的700字示例:一、需求分析:本次软件设计的目标是开发一个在线学习管理系统,以方便学生和教师进行在线教学和学习管理。
系统需提供课程管理、作业管理和考试管理等功能,支持学生在线提交作业、参加在线考试,并可根据学生的学习情况自动生成学习报告,帮助教师更好地进行教学评估以及学生学习指导。
二、系统设计:1.架构设计:本系统采用B/S架构,前端使用HTML、CSS和JavaScript 进行开发,后端采用Java语言和MySQL数据库进行数据存储和处理。
前端页面通过HTTP协议与后端进行通信,实现与用户的交互。
2.功能设计:a.用户管理:包括学生和教师账号的注册、登录和信息管理功能,教师账号具备发布课程、作业和考试的权限。
b.课程管理:教师账号可发布、编辑和删除课程,学生账号可以查看和选择课程。
c.作业管理:教师账号可针对每个课程发布作业,学生账号可在线提交作业,教师可对作业进行评分。
d.考试管理:教师账号可发布、编辑和删除考试,学生账号可以参加在线考试,系统根据学生答题情况自动评分并生成考试报告。
e.学习报告:根据学生的学习情况,系统自动生成学习报告,包括学习进度、成绩和评价等信息。
3.界面设计:界面设计遵循简洁、直观、易用的原则,采用响应式设计,适配不同尺寸的设备。
主要包含登录、用户管理、课程管理、作业管理、考试管理和学习报告等页面。
4.安全性设计:a.HTTPS协议:采用HTTPS协议传输数据,保证数据传输的安全性。
b.权限设计:设置不同用户角色的权限,确保只有授权人员才能进行关键操作。
c.数据加密:对敏感数据进行加密存储,防止数据泄露。
d.防火墙和安全审计:采用防火墙和安全审计技术,监控系统的安全运行。
三、开发计划:1.需求分析和设计阶段:1周时间,确定系统具体需求和设计方案。
软件设计目标和任务

五. 模块独立——1.耦合性 非直接耦合举例
两个模块之间没 有直接关系,它 们之间的联系完 全是通过主模块 的控制和调用来 实现的。 这种耦合的模块 独立性最强。
5.2 设计原理
五. 模块独立——1.耦合性 数据耦合举例
一模块调用另一 模块时,被调用 单价, 模块的输入、输 数量 出都是简单的数 据(若干参数)。 计算水费 属松散耦合
5.2 设计原理
二. 抽 象
例子:讨论一个在不同抽象级别上的软件设计所具有 的形式。 抽象1.总体结构层次 CAD图形软件包可以画 的抽象 各种直线和曲线,能完成 所有几何图形的计算.图 图形软件包 软件任务 形设计的结果存于图形文 图形用户界面 件中,图形文件可包含几 创建 二维图形任务 何的、正文的和其它各种 显示 图形任务 设计信息。 管理 图形文件任务 End 图形软件包
5.2 设计原理
五. 模块独立——1.耦合性
例:试指出下述用C语言编写的函数声明 所代表的模块的 耦合的类型。 无耦合 void fun0( ); 数据耦合 void fun1(int); void fun2(int*); 标记耦合 公共耦合 内容耦合: fun6可以访 问fun5的内 部数据
逐步求精的思想: 对一个事物的认识是一个从高层次抽象向低层 次抽象逐步转化和过渡的过程。
Miller法则:
一个人在任何时候都只能把注意力集中在 (7+2)个知识块上。
5.2 设计原理
三. 逐 步 求 精
求精实际上是细化过程 求精要求设计者细化原始陈述,随着每个后续求 精(即细化)步骤的完成而提供越来越多的细节。 抽象与求精是一对互补的概念 抽象使得设计者能够说明过程和数据,同时却忽 略低层细节。事实上,可以把抽象看作是一种通 过忽略多余的细节同时强调有关的细节,而实现 逐步求精的方法。求精则帮助设计者在设计过程 中逐步揭示出低层细节。这两个概念都有助于设 计者在设计演化过程中创造出完整的设计模型。
软件制作课程设计

软件制作课程设计一、课程目标知识目标:1. 让学生掌握软件制作的基本概念,了解软件开发的过程和步骤。
2. 使学生了解软件制作的常用工具和软件工程的相关知识。
3. 帮助学生理解软件界面设计的原则,掌握基本的界面布局和交互设计方法。
技能目标:1. 培养学生运用软件制作工具进行项目设计和开发的能力。
2. 培养学生分析问题、设计解决方案并进行软件实现的能力。
3. 提高学生团队协作和沟通能力,能够与他人共同完成软件制作项目。
情感态度价值观目标:1. 培养学生对软件制作的兴趣,激发创新意识和探索精神。
2. 培养学生严谨细致的工作态度,注重软件制作的品质和用户体验。
3. 引导学生认识到软件制作在现代社会中的重要性,激发社会责任感和使命感。
课程性质:本课程为实践性较强的学科,注重理论联系实际,培养学生动手操作能力和创新思维。
学生特点:学生具备一定的计算机操作基础,对软件制作有一定的好奇心,但可能缺乏系统性的知识和实践经验。
教学要求:结合学生特点和课程性质,注重启发式教学,引导学生主动探究和实践,提高课程学习的趣味性和实用性。
在教学过程中,将课程目标分解为具体的学习成果,以便进行有效的教学设计和评估。
二、教学内容1. 软件制作基础知识:包括软件定义、软件开发流程、软件生命周期等基本概念,让学生对软件制作有整体的认识。
教材章节:第一章 软件制作概述2. 软件制作工具:介绍常用的软件制作工具,如Visual Studio、Eclipse等,使学生掌握开发环境的使用。
教材章节:第二章 软件制作工具及环境3. 程序设计基础:讲解编程语言的基本语法和常用算法,为学生进行软件制作奠定基础。
教材章节:第三章 程序设计基础4. 软件工程:包括软件需求分析、软件设计、编码、测试等环节,让学生了解软件制作的工程方法。
教材章节:第四章 软件工程5. 软件界面设计:讲解界面设计原则、布局方法和交互设计技巧,提高学生的界面设计能力。
教材章节:第五章 软件界面设计6. 软件制作实践:通过实际项目案例,让学生动手实践,培养实际操作能力。
软件工程课程设计

感谢您的观看
汇报人:
确定软件的目标和 范围
定义软件系统的功 能需求
描述软件系统的非 功能需求
确定软件系统的约 束和假设
软件设计
软件设计的目标和任务
软件设计的目标是 实现软件的功能需 求、性能需求和用 户界面需求,同时 保证软件的可维护 性、可扩展性和可
重用性。
软件设计的任务包 括对软件系统进行 结构设计和数据设 计,确定软件系统 的组成模块、接口 和数据库等,并制 定相应的设计规范
软件工程课程设计
汇报人:
目录
添加目录标题
软件设计
01
04
软件工程课程设计概 述
软件实现
02
05
软件需求分析
03
软件测试和维护
06
添加章节标题
软件工程课程设 计概述
课程设计的目的和意义
目的:通过实践操作,加深对软件工程理论知识的理解,提高实际操作 能力。
意义:为后续的软件开发工作打下基础,培养团队协作和沟通能力。
需求建模的方法和工具
需求建模的基本方 法:包括功能需求、 非功能需求、设计 约束等
需求建模的工具: 如Enterprise Architect、Visual Paradigm等
需求建模的步骤: 包括需求获取、分 析、描述、验证等
需求建模的注意事 项:如准确性、完 整性、可验证性等
需求规格说明的编写
设计目标:确定 系统的整体结构, 提高可维护性、 可扩展性和可重 用性。
设计过程:需求 分析、架构设计、 详细设计、实现 与测试。
常见软件体系结 构风格:分层式、 客户端-服务器、 浏览器-服务器等。
数据库设计
确定数据库需 求
创建数据表和 关系
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件设计的重要性:是软件开发时期的第一个步,
最终影响软件实现的成败和软件维护的难易程度。
.
2
软件设计的两个阶段
从工程管理的角度来看,软件设计分两 步完成。 总体设计:将软件需求转化为数据结构和 软件的系统结构。 详细设计:即过程设计。通过对结构表示 进行细化,得到软件的详细的数据结构和 算法。
.
3
软件设计的两个阶段
.
4
第5章 总体设计
.
5
第5章 总体设计
5.1 设计过程 5.2 设计原理 5.3 启发规则 5.4 描绘软件结构的图形工具 5.5 面向数据流的设计方法 5.6 小结 习题
.
6
重点和难点
重点: 软件设计过程中应遵循的基本原理 面向数据流设计方法
难点: 变换分析、事务分析法过程和应用
软件设计的目标和任务
软件需求:解决“做什么” 软件设计:解决“怎么做” 软件设计的任务:以软件需求规格说明书
为依据,进行
数据设计 系统结构设计 过程设计
.
1
软件设计的目标和任务
数据设计侧重于数据结构的定义
系统结构设计定义软件系统各主要成分之间的关 系
过程设计则是把结构成分转换成软件的过程性描 述。在编码步骤,根据这种过程性描述,生成源 程序代码,然后通过测试最终得到完整有效的软 件。
✓ 当被调模块只使用数据结构中的一部分数据元素时, 产生标记耦合.
✓ 被调模块 可使用的数据多于它所需要的数据, 从而导致对 数据的访问失去控制,给非法操作提供了机会。
.
25
五. 模块独立——1.耦合性 5.2 设计原理 非直接耦合举例
两个模块之间没 有直接关系,它 们之间的联系完 全是通过主模块 的控制和调用来 实现的。
5.2 设计原理
模块数目为M时,软件开发成本最小
.
14
二. 抽 象
5.2 设计原理
抽象:把一定事物、状态或过程中共性的方面集中 和概括起来,暂时忽略它们之间的差异。
抽象的思想:处理复杂系统的惟一有效的方法是用 层次的方式构造和分析它。
抽象层次:
✓最高抽象级别——面向问题的语言
✓较低抽象级别——面向问题和实现的语言
6
弱耦合
中耦合 较强耦合 强耦合
⒈非直接耦合:无信息交换 ⒉数据耦合:简单数据以参数形式进行交换 ⒊特征耦合:数据结构以参数形式进行交换;或共享数据结构 ⒋控制耦合:参与交换的数据内包含控制信息 ⒌公共耦合:一组模块使用同一个全局性数据结构/公共
区 ⒍内容耦合:一个模块可以直接访问另一个模块内部数据
本月 用电量
计算水费
计算电费
.
29
五. 模块独立——1.耦合性 控制耦合举例
控制耦合
二个模块通过参数交换信 息,传递的信息中有控制 信息
去除控制耦合的方法:
(1) 将被调用模块内的判 定上移到调用模块中 进行
(2) 被调用模块分解成若 干单一功能模块
.
5.2 设计原理
30
5.2 设计原理
五. 模块独立——1.耦合性
抽象与求精是一对互补的概念 抽象使得设计者能够说明过程和数据,同时却忽 略低层细节。事实上,可以把抽象看作是一种通 过忽略多余的细节同时强调有关的细节,而实现 逐步求精的方法。求精则帮助设计者在设计过程 中逐步揭示出低层细节。这两个概念都有助于设 计者在设计演化过程中创造出完整的设计模型。
.
20
四. 信息隐藏和局部化
五. 模块独立——1.耦合性
耦合:指模块之间联系的紧密程度。模块之间联系越紧 密,其耦合性越强,独立性就越差。
模块耦合度越低越好:1. 独立性;2. 减少错误传播。
模块的耦合性从低到高可分为以下几种类型: ✓ 非直接耦合(no direct coupling):
二个模块都不依赖对方而独立存在 ✓ 数据耦合(data coupling):
“分而治之”是模块化思想的依据:把复杂的问题分解为若干个
5.2 设计原理
令C(X):问题X的复杂程度,E(X):解决X问题所需 的工作量
规律1:若两个问题P1,P2
C(P1) > C(P2),则E(P1) > E(P2)
规律2:某问题P可以分成P1,P2,P=P1+P2
.
7
总体设计的步骤
设想供选择的方案 选取合理的方案
系统流程图 组成系统的物理元素清单 成本/效益分析 实现这个系统的进度计划
推荐最佳方案 功能分解 设计软件结构(模块化思想)
.
5.51.1设设计计过过程程
8
总体设计的步骤
设计数据库 制定测试计划 书写文档
系统说明 用户手册 测试计划 详细的实现计划 数据库设计结果
逐步求精的思想:
对一个事物的认识是一个从高层次抽象向低层 次抽象逐步转化和过渡的过程。
Miller法则:
一个人在任何时候都只能把注意力集中在 (7+2)个知识块上。
.
19
三. 逐 步 求 精
5.2 设计原理
求精实际上是细化过程 求精要求设计者细化原始陈述,随着每个后续求 精(即细化)步骤的完成而提供越来越多的细节。
这种耦合的模块 独立性最强。
.
26
五. 模块独立——1.耦合性 5.2 设计原理 数据耦合举例
一模块调用另一 模块时,被调用 模块的输入、输 出都是简单的数 据(若干参数)。
属松散耦合
开发票 单价, 数量
计算水费
金额
.
27
5.2 设计原理
五. 模块独立——1.耦合性 标记/特征耦合举例
“住户情况”是一个数据结构,图中模块都与之有关。 “计算水电费”和“计算水费”传递的是数据结构,它们之间
.
17
二. 抽 象
5.2 设计原理
CAD软件中的数据抽象举例:
STRUCT coordinate { int x; int y }; CLASS Drawing //parent class
{ PUBLIC : coordinate startpoint, endpoint; …… };
CLASS Line : PUBLIC Drawing { …… }; CLASS Curve : PUBLIC Line { …… }; CLASS StraightLine : PUBLIC Line { …… };
中); ✓ 一个模块有多个入口(这意味着一个模块有几种功能)。
.
33
五. 模块独立—5.2 —软件1设.耦计的合概性念及原理
内容耦合举例
最不好的耦合形式!!!
A
B
A
B
一模块直接访问
另一模块的内部 信息 (程序代码 或数据)
模块代码重叠
(只可能在汇编中 出现)
:一个模块不通过正常入
口而进入另一个模块内部,
4. 便于增加新的功能,新增加的模块和原有的
模块关系不大
5. 在较高层次上进行软件开发,有助于提高软
件质量和生产效率 .
21
四. 信息隐藏和局部化
5.2 设计原理
局部化:把一些关系密切的软件元素在物理 上放得彼此靠近。
例如:在模块中使用局部数据元素 有助于信息隐藏
.
22
五. 模 块 独 立
5.2 设计原理
软件可理解性降低
软件可维护性差
诊断错误困难
软件可靠性差
(公共数据区及全程变量无保护措施)
慎用公共数据区. 和全程变量!!!
32
五. 模块独立——1.耦合性
5.2 设计原理
✓ 内容耦合(content coupling):
✓ 一个模块访问另一个模块的内部数据; ✓ 一个模块不通过正常入口而转到另一个模块的内部; ✓ 两个模块有一部分程序代码重叠(只可能出现在汇编程序
Curve objCurve1; //objCurve1 is a instance of Curve StraightLine objSL2 ; //objSL. 2 is a instance of StraightL18ine
三. 逐 步 求 精
5.2 设计原理
逐步求精:
为了能集中精力解决主要问题而尽量推迟对问 题细节的考虑。
IF OpenFile THEN input filename;
open the file;
display the file;
ELSE IF SaveFile THEN input save filename;
save the file;
END IF
END PROCEDURE.
抽象3.实现层次的抽象(程序设计语言描述)
✓最低抽象级别——面向实现的语言
软件设计中的两类抽象: ✓ 过程抽象:功能-> 过程、函数 ✓ 数据抽象:数据对象定义、描述->数据类型名
.
15
5.2 设计原理
二. 抽 象
例子:讨论一个在不同抽象级别上的软件设计所具有
的形式。
CAD图形软件包可以画
抽象1.总体结构层次
各种直线和曲线,能完成
的抽象
二个模块通过参数交换信息,而信息仅限于数据 ✓ 控制耦合 (control coupling):
二个模块通过参数交换信息,传递的信息中有控制信 息
.
24
5.2 设计原理
五. 模块独立——1.耦合性
✓ 标记耦合 / 特征耦合 (stamp coupling):
✓ 二个模块通过传递数据结构加以联系(数据结构以参 数形式进行交换),或都与一个数据结构有关
模块独立性:每个模块只完成系统要求的独立的 子功能,与其他模块的联系最少且接口简单。
模块独立的概念是模块化、抽象、信息隐藏和 局部化三个基本原理的直接结果。