模块划分应遵循的准则:
高内聚低偶合
模块大小规模适当
模块的依赖关系适当等
大型软件项目开发中,模块的划分非常的重要!一般来说,模块在功能上尽可能单一和明确化,最好做到模块与目标的一一对应。模块间的联系应尽可能少,对于必须的联系都应该有明确的说明,模块应足够小,以方便单个模块的调试。
从模块划分的视角优化架构:
http://blog.csdn.net/zengjibing/archive/2009/02/13/3888747.aspx引用
对初步的架构轮廓作第二个方面的审视,是考虑模块化的设计问题。也就是从架构的组
成单元来说,定义清楚子系统以后,下一步就是定义模块。
1,模块化设计的概念
如何合理的进行模块设计呢?这里的关键是要保证模块的独立性。
模块:模块是数据说明、可执行语句等程序对象的集合,是单独命名的并且可以通过名
字来访问,例如过程、函数、子程序、宏等。
模块化:软件被划分成独立命名和可独立访问的被称作模块的构件,每个模块完成一个
子功能,它们集成到一起可以满足问题需求。
利用模块化解决方案的注意事项:
一般来说,倾向于每个用户描述定义一个模块。我们应该努力使每个模块的大小差
别在一个数量级之内。如果发现某个模块规模太大,就需要实现模块切割,然后针
对这种切割的结果,反过来修改需求分析的时候用户描述(或者用例)的表达方式。
这就是由设计引发的需求变更。
模块的大小一般以一个开发团队在一次迭代时间内能完成为好。模块切割方法与开
发成本有关。我们可以这样来思考模块化对软件工作量和成本的影响。实际的情况
见下图, 随着模块数量的增加,开发成本减低,但是系统集成的成本增加,所以
最小成本的区域在一个合适的区间。也就是说,模块并不是越多越好,只有模块数
量适当的时候,总体成本才可能下降。
2,实现模块化的手段
抽象:抽出事物的本质特性而暂时不考虑它们的细节。
信息隐蔽:应该这样设计和确定模块,使得一个模块内包含的信息(过程和数据)
对于不需要这些信息的模块来说,是不可访问的。
模块独立性问题:
模块独立是指开发具有独立功能而且和其它模块之间没有过多的相互作用的模块。
模块独立的意义:
1)功能分割,简化接口,易于多人合作开发同一软件;
2)独立的模块易于测试和维护。
模块独立程度的衡量标准:
1)耦合性:对一个软件结构内不同模块间互连程度的度量。
2)内聚性:标志一个模块内各个处理元素彼此结合的紧密程度,理想的内聚模块只
做一件事情。
3,模块化设计的一般准则
改进软件结构,提高模块独立性。
模块规模应该适中。大模块分解不充分;小模块使用开销大,接口复杂。
尽量减少高扇出结构的数目,随着深度的增加争取更多的扇入。扇出过大意味着模
块过分复杂,需要控制和协调过多的下级模块。一般来说,顶层扇出高,中间扇出
少,低层高扇入。
模块的作用范围保持在该模块的控制范围内。模块的作用范围是指该模块中一个判
断所影响的所有其它模块;模块的控制范围指该模块本身以及所有直接或间接从属
于它的模块。
力争降低模块接口的复杂程度模块接口的复杂性是引起软件错误的一个主要原因。
接口设计应该使得信息传递简单并且与模块的功能一致。
设计单入口单出口的模块,以避免内容耦合,易于理解和维护。
模块的功能应该可以预测。相同的输入应该有相同的输出,否则难以理解、测试和
维护。
该博客引申:
从质量属性及其应对策略的视角优化架构 :
http://blog.csdn.net/zengjibing/archive/2009/02/13/3888736.aspx
从共享分层结构的视角优化架构:
http://blog.csdn.net/zengjibing/archive/2009/02/13/3888755.aspx
从软件复用与构件化的视角优化架构:
http://blog.csdn.net/zengjibing/archive/2009/02/13/3888759.aspx
软件架构设计的流程:
http://blog.csdn.net/zengjibing/archive/2009/02/13/3888760.aspx
分享到:
相关推荐
《需求分析与系统设计》第三版是一本深入探讨软件工程中关键步骤——需求分析与系统设计的权威著作。这本书详细阐述了如何有效地理解和提取用户需求,以及如何将这些需求转化为可实施的系统设计方案。在软件开发过程...
《需求分析与系统设计》是IT领域中一本重要的著作,主要关注软件开发过程中的关键环节——需求分析和系统设计。作者Leszek A. Maciaszek是该领域的权威专家,而马XX、王XX和谢XX则将这本书翻译成了中文,确保了国内...
1. 高层次设计:基于需求分析,进行系统架构设计,包括模块划分、接口定义、数据流图等,以展示系统的整体结构。 2. 详细设计:深入到每个模块,定义模块的内部逻辑和操作,包括类设计、接口设计、数据库表设计等。...
系统模块划分是软件开发中的一种常见的设计方法,它将整个系统分解成多个较小的模块,以便于更好地管理和维护系统。本文将对系统模块划分进行详细的介绍,并提供一个实例来说明如何对系统进行模块划分。 系统模块...
在本文中,我们将深入探讨需求分析与设计文档的重要性和具体内容。 首先,需求分析是软件工程的第一步,其目标是明确系统的目的、功能和性能要求。这通常通过以下方式实现: 1. 需求获取:通过访谈、问卷调查、...
概要设计是基于需求分析的结果,将软件系统分解成各个模块,并确定这些模块之间的关系。主要知识点包括: 1. 功能划分:将系统分解为若干个子系统或模块,每个模块负责特定的功能。 2. 接口设计:定义模块间的接口...
在软件开发过程中,需求分析与设计是至关重要的步骤,它们奠定了项目的基础,确保产品的质量和功能满足用户的需求。华为作为全球知名的科技企业,其在需求分析和设计方面有着严谨的流程和丰富的经验。本资料“华为...
1. **系统设计**:基于需求分析的结果,设计师将创建概念模型、架构设计、模块划分等,为后续的开发工作提供指导。 2. **编码实现**:根据设计文档,开发者编写代码来实现各个功能,遵循良好的编程规范和设计模式,...
《东北大学软件需求分析与系统设计笔记》是学习软件工程领域中两个核心环节的重要参考资料,这份笔记详尽地记录了2020年3月至5月间的学习过程,旨在帮助学习者深入理解和掌握软件需求分析与系统设计的关键概念和技术...
- 模块划分:将系统分解为多个相互协作的子系统或模块。 - 接口设计:定义各模块间的接口,包括输入、输出和控制信息。 - 数据结构和算法:初步设计主要数据结构和核心算法。 - 性能估算:预估软件在各种条件下...
需求分析与系统设计是软件开发过程中的核心环节,它涵盖了对用户需求的理解、转化和表达,以及基于这些需求创建系统的架构和设计。本PPT课件来自清华大学,结合了Maciaszek的软件工程理论,旨在深入讲解这一领域的...
《东北大学软件需求分析与设计PPT》是针对软件工程领域中的一个重要环节——软件需求分析与设计进行深入讲解的教学资料,出自东北大学软件学院。在软件开发过程中,需求分析与设计是基石,决定了项目的成功与否。这...
在IT行业中,需求分析与系统设计是软件开发过程中的关键环节。这关乎到软件产品的质量、功能性和用户体验。东北大学的这门课程旨在教授学生如何有效地进行这些关键步骤。以下是根据提供的信息,对这两个主题的详细...
1. **系统架构设计**:确定软件的整体结构,包括模块划分、模块间的交互方式等。 2. **数据设计**:定义软件处理的数据类型、结构以及数据流。 3. **接口设计**:明确系统与其他系统、硬件或用户的交互界面。 4. **...
详细设计: 根据概念设计, 进行详细设计, 包括数据库设计, 界面设计, 程序模块划分, 等. 编码: 根据详细设计, 进行编码, 包括编写程序代码, 配置数据库, 编写文档. 测试: 进行系统测试, 包括单元测试, 集成测试, ...
【信息系统分析与设计:第07章 总体设计】 信息系统设计是系统开发过程中的关键环节,它在系统分析的基础上,解决如何实现系统的具体技术问题。本章主要探讨了系统设计的任务、原则以及一系列设计方法。 系统设计...
在软件开发过程中,需求分析与系统设计是至关重要的步骤,它们为项目的成功奠定了坚实的基础。在C#编程环境中,理解并应用这些概念可以帮助开发者构建高效、稳定且易于维护的应用程序。下面将详细介绍C#需求分析与...
1. 架构设计:确定软件的整体结构,包括模块划分,模块间的交互关系,以及技术选型。 2. 接口设计:定义软件与用户、硬件、操作系统、网络和其他软件的交互方式。 3. 数据结构与算法设计:选择合适的数据结构和算法...
- 功能模块划分:将系统功能分解为若干个相互独立、职责明确的模块。 - 数据库设计:包括数据表设计、数据流图、ER图等,用于存储和处理系统数据。 - 接口设计:定义系统内部各模块之间的接口和系统与外部环境的交互...