概要设计(模块设计)

模块化设计

认识模块化

1.什么是模块化设计?

2.为什么要进行模块化设计?

3.模块化特点

模块化的应用

模块化设计的原则?

耦合和内聚

认识耦合和内聚

1.什么是耦合?

2.什么是内聚?

耦合和内聚的类型

1.耦合都有哪些类型?

2.内聚都有哪些类型

模块设计

横向模块设计

纵向模块设计


模块化设计

认识模块化

1.什么是模块化设计?

        模块化是指将一个系统或软件拆分成多个独立的、可重用的模块或组件的设计方法。每个模块都有明确定义的功能和接口,可以独立开发、测试和维护。

2.为什么要进行模块化设计?

进行模块化设计有以下几个主要原因:

  1. 提高可维护性:模块化设计将系统拆分成多个独立的模块,每个模块只关注自身的功能,使得系统的各个部分更易于理解、修改和维护。当需要进行功能扩展、修复漏洞或进行重构时,只需关注特定的模块,而不会影响其他模块。

  2. 提高可重用性:模块化设计使得每个模块都可以独立地开发和测试,可以将模块作为独立的组件进行重用。这样可以减少重复开发的工作量,提高开发效率。同时,模块化设计也可以促进团队内部的合作和协作,不同团队可以独立开发不同的模块,提高开发效率和质量。

  3. 提高可测试性:模块化设计使得系统的各个模块可以独立地进行单元测试,可以更容易地验证模块的功能和正确性。这样可以提前发现和修复问题,提高软件的质量和稳定性。

  4. 降低复杂性:模块化设计将复杂的系统拆分成多个简单的模块,每个模块都有明确的功能和接口。这样可以降低系统的整体复杂性,使得开发人员更容易理解和管理系统的各个部分。

  5. 提高可扩展性:模块化设计使得系统的各个模块之间的依赖关系明确,可以更容易地进行系统的扩展和修改。当需要添加新的功能或调整现有功能时,可以通过添加、修改或替换特定的模块来实现,而不会对整个系统造成影响。

3.模块化特点

A.优点

a . 可维护性

1、灵活架构,焦点分离

2、方便模块间组合、分解

3、方便单个模块功能调试、升级

4、多人协作互不干扰

b . 可测试性

可分单元测试

B.缺点

性能损耗

1、系统分层,调用链会很长

2、模块间发送消息会很耗性能

        总之,模块化设计可以提高软件系统的可维护性、可重用性、可测试性,降低复杂性,提高可扩展性,从而提高开发效率和软件质。

模块化的应用

模块化设计的原则?

  1. 单一职责原则(Single Responsibility Principle,SRP):一个模块应该有且只有一个单一的责任。模块的功能应该被限制在一个明确的领域或任务范围内,这样可以使得模块的功能更加清晰和可理解。

  2. 开放封闭原则(Open-Closed Principle,OCP):一个模块应该对扩展开放,对修改封闭。即模块的设计应该是可扩展的,可以通过添加新的功能来扩展模块的功能,而不需要修改已有的代码。

  3. 依赖倒置原则(Dependency Inversion Principle,DIP):模块之间的依赖关系应该是通过抽象而不是具体的实现来实现的。即模块之间的耦合应该尽量降低,模块之间的通信应该基于抽象的接口或协议来进行。

  4. 接口隔离原则(Interface Segregation Principle,ISP):一个模块不应该强迫其他模块依赖它们不需要的接口。模块之间的接口应该是精简和最小化的,每个模块只关注自身需要的接口。

  5. 里氏替换原则(Liskov Substitution Principle,LSP):子类应该能够替换父类并且不会影响程序的正确性。即在使用继承关系时,子类应该能够完全替代父类,并且符合父类的行为约束。

  6. 迪米特法则(Law of Demeter,LoD):一个模块不应该了解其他模块的内部细节。模块之间的通信应该通过少量的接口进行,而不是直接访问其他模块的内部状态。

        这些原则可以帮助开发人员设计出更加灵活、可扩展、可维护和可测试的模块化系统。在实际开发中,可以根据具体的需求和情况来灵活应用这些原则

耦合和内聚

认识耦合和内聚

1.什么是耦合?

        耦合(Coupling)是指模块之间相互依赖的程度。耦合度越高,模块之间的依赖关系越紧密,一个模块的改动可能会影响到其他模块。耦合度高会增加系统的复杂性,降低系统的可维护性和可扩展性。

耦合度:耦合度则是指模块之间的关联度的度量。耦合度取决于模块之间接口的复杂性,进入或调用模块的位置等。与内聚度相反,在设计时应尽量追求松散耦合的系统。

2.什么是内聚?

        内聚(Cohesion)是指一个模块内部各个元素(如函数、变量)之间的关联程度。内聚度高表示模块内部的元素彼此关联紧密,功能相近,模块的功能单一,模块的设计更加清晰和可理解。

内聚度:内聚度指模块内部实现,它是信息隐藏和局部化概念的自然扩展,它标志着一个模块内部各成分彼此结合的紧密程度。好处很明显。当把相关的任务分组后去阅读就容易多了。设计时应该尽可能的提高模块内聚度,从而获得较高的模块独立性。

耦合和内聚的类型

1.耦合都有哪些类型?

  1. 内容耦合(Content Coupling):模块之间通过共享数据或共享全局变量进行通信。

  2. 公共耦合(Common Coupling):多个模块共享同一个全局环境或公共资源。

  3. 控制耦合(Control Coupling):一个模块通过传递控制信息(如参数、标志)来控制另一个模块的行为。

  4. 标记耦合(Stamp Coupling):一个模块通过传递复杂的数据结构(如记录、对象)来传递信息给另一个模块。

  5. 数据耦合(Data Coupling):一个模块通过传递简单的数据类型(如基本数据类型)来传递信息给另一个模块。

  6. 外部耦合(External Coupling):一个模块依赖于另一个模块的外部接口。

2.内聚都有哪些类型

  1. 功能内聚(Functional Cohesion):模块内的元素按照完成一个特定功能或任务进行组织。

  2. 顺序内聚(Sequential Cohesion):模块内的元素按照顺序执行一系列相关的操作。

  3. 通信内聚(Communicational Cohesion):模块内的元素按照共享相同的数据或信息进行组织。

  4. 过程内聚(Procedural Cohesion):模块内的元素按照完成一个特定的过程或算法进行组织。

  5. 时间内聚(Temporal Cohesion):模块内的元素按照在同一时间段内被使用进行组织。

  6. 逻辑内聚(Logical Cohesion):模块内的元素按照完成一个逻辑功能或任务进行组织。

模块设计

横向模块设计

        横向模块设计(Horizontal Module Design)是指将系统按照功能或业务逻辑划分为多个模块,每个模块负责完成特定的功能或业务流程。这种设计方法将系统的不同功能拆分为独立的模块,各个模块之间通过接口进行通信。

例如,一个电子商务系统可以拆分为用户管理模块、商品管理模块、订单管理模块等,每个模块负责相应的功能,通过接口进行交互。这样的设计使得系统更加灵活,各个模块可以独立开发、测试和维护,同时也方便了系统的扩展和升级。

纵向模块设计

        纵向模块设计(Vertical Module Design)是指将系统按照层次结构划分为多个模块,每个模块负责特定的层次功能。这种设计方法将系统的不同层次(如表示层、业务逻辑层、数据访问层)拆分为独立的模块,各个模块之间通过接口进行通信。

例如,一个Web应用程序可以拆分为前端模块、后端模块、数据库模块等,每个模块负责相应的层次功能,通过接口进行交互。这样的设计使得系统的各个层次可以独立开发、测试和维护,同时也提高了系统的可扩展性和可维护性。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
项目名称 软件概要设计说明书 版本:V1.0 文 档 编 号 保 密 等 级 作 者 最后修改日期 审 核 人 最后审批日期 批 准 人 最后批准日期 修订记录 日期 版本 修订说明 修订人 目 录 1 引言 1 1.1 编写目的 1 1.1.1 作用 1 1.1.2 预期读者 1 1.2 编写背景 1 1.2.1 系统名称及版本号 1 1.2.2 任务提出者 1 1.2.3 任务承接者及实施者 1 1.2.4 使用者 1 1.2.5 与其它系统的关系 1 1.3 文档结构 1 1.4 电子文档编写工具 1 1.5 定义说明与符号规定 2 1.6 参考资料 2 2 系统概述 2 2.1 系统目标 2 2.2 设计原则 3 2.3 运行环境 3 2.3.1 硬件平台 3 2.3.2 软件平台 3 2.3.3 网络体系结构 3 2.4 应用软件整体结构概述 3 2.5 关键技术 4 3 数据库设计 4 4 代码设计 4 5 功能概述 4 5.1 功能模块命名原则 4 5.2 功能层次图 4 5.3 功能简介 4 5.4 外部接口 4 6 用户界面设计 4 6.1 基本原则 4 6.2 设计概述 4 7 出错处理 5 7.1 出错信息设计 5 7.2 异常情况处理 5 引言 编写目的 作用 【说明】《软件概要设计说明书》是在《软件需求规格说明书》的基础上,通过我方与用户方反复沟通形成的。它必须充分反映《软件需求规格说明书》的用户需求,如有改动必须征得用户的认可。它将作为项目验收时重要的的标准和依据。 从另一方面讲,它又是开发人员在下一阶段进行系统详细设计的纲领性文件,也是考核系统总体质量的重要技术文档。 预期读者 【说明】本文档的阅读对象是软件开发人员、业务规范设计人员、软件测试人员、系统安装人员及用户代表。 编写背景 系统名称及版本号 【说明】形如“北京市地方税务局管理信息系统V3.0”。其,版本号的格式为“XX.XX”,X为阿拉伯数字,左“0”可省略。 任务提出者 【说明】指《工作说明书》规定的我方领导机构或项目负责人。 任务承接者及实施者 【说明】指承担概要设计的负责人及工作人员名单。 使用者 【说明】适应对象和范围。主要指预期读者,也供有关领导审阅。 与其它系统的关系 【说明】在用户现有的及预期的整个应用系统,给本系统准确定位。用示意图及相应的文字予以说明。 文档结构 【说明】章节划分原则、内容的取舍、重点的确定等。 电子文档编写工具 【说明】工具名、版本号、操作系统平台。使用多种工具时,应分别说明。形如: Microsoft Word 97 for Windows 95 Power-Designor 6.0 for Windows 95 PhotoShop 4.0 for Windows 95 Visio或Power Point 定义说明与符号规定 【说明】包括对专用术语及缩略语的解释、所用到的图(E-R图/功能层次图)图符的表示与解释、屏幕界面图标与按钮的表示与含义等。如在E-R图,表示两个实体之间的关系时,我们定义了以下图符(部分举例): 终结符 基数(自左至右) 1 多 终结符 基数 存在性 说明(自左至右) 1 强制 必须存在且只能存在1个 多 强制 必须存在1个或多个 1 任选 可能存在1个,或没有 多 任选 可能存在1个或多个,或没有 参考资料 【说明】格式:作者,[版本号,]资料来源,日期 [,起止页号]。其,《质量保证计划》与《需求规格说明书》是必选的参考资料。 系统概述 系统目标 【说明】开发意图、应用目标(总目标、分期目标)、作用范围、预期效益等。 设计原则 【说明】设计原则应包括: 质量管理应贯穿于整个设计之全过程。 对质量保证的承诺应落实到全体人员。 实际执行的过程,必须符合项目自身的特点,体现个性差异,切实做到有的放矢。 运行环境 硬件平台 【说明】指出本系统对硬件设备的需求、我们选型的原则和依据、推荐的型号与配置、性能综述、技术优势、特殊约定等。 软件平台 【说明】使用操作系统的名称、生产厂家、版本号等。 使用数据库的名称、生产厂家、版本号等。如使用了多种数据库,则要说明如何 实现互连。 其它支撑软件:指出开发与运行时需要的工具软件的情况,如4GL等。 对于选用的各类软件,均应着重说清其技术特点、与国内外同类产品的比较,明 确阐述我方选择的理由。 网络体系结构 【说明】写明网络设计原则、技术要求、产品选型、拓扑结构、基本部件与配件、传输介质、接口情况、通信协议、约束条件、结构化综合布线方案等。 画出网络结构图。图应标出各类服务器与客户机、网管机、路由器、网关等的数量与分布;应反映出局域网、广域网及其互连的情况;如使用国内的公用数据网或Internet,也须具体标出。 用文字说明各个服务器/客户机的作用、配置与具体位置。例如:Oracle数据库服务 器1台,位于局信息心,用于支撑征管业务信息处理、领导决策辅助支持、各征管业务科室的信息采集、查询及统计工作。它安装在IBM RS6000小型机上,操作系统是AIX 3.2。 说明拟采取的网络保护技术,如防火墙等。 应用软件整体结构概述 【说明】说明本系统的各层模块、公用模块的划分原则。 如果系统复杂而开发者又有比较多的技术积累,应说明其分层构造(如组件层、构件层与应用子系统层)。 对于大的系统,应画出体系结构图并予以说明。 关键技术 【说明】本系统采用了哪些关键技术,如算法、间件、构件等。 指出使用了那些主要工具。 解释作出上述选择的理由。 说明这些关键技术在整体结构的位置及内外接口。 数据库设计 【说明】单独成册,见《数据库设计说明书模板》 代码设计 【说明】 给出系统设计的代码的设计内容,代码设计包括系统代码(硬码)、系统代码(软码)、业务代码以及标准化代码等。对于硬码的引用需要在数据库设计的PDM注明,对于其他代码的引用需要在数据字典或数据库设计注明。 功能概述 功能模块命名原则 【说明】指出本系统的各层模块/公用模块的划分原则、命名原则、编号原则。并且需要指出在概要设计的功能模块编号与《软件需求规格说明书》的业务需求编号及性能需求编号之间的对应关系。 功能层次图 【说明】指明在输入信息转变为输出信息的过程,为了满足用户的业务需求,应用软件必须完成的基本动作。采用自然语言叙述+树状功能图描绘的方式。由此确定系统最终的菜单结构。 功能简介 【说明】用一览表或框图的形式扼要说明每个模块的编号、名称和基本功能。用矩阵形式标明《软件需求规格说明书》列出的各项功能需求与模块之间的对应关系。 外部接口 用户界面设计 基本原则 【说明】指出基本风格、屏幕总体布局和输入/输出的常规手段。 设计概述 【说明】本节的内容也可以归入附录“设计与编程规范、惯例及约定”,而不在这里 叙述。 一般地讲,界面设计应包括以下几项: □屏幕环境设置 □字型与字体 □颜色 □提示 □菜单(Menu) □按钮(Command Button) □图标 □列表框 □常用键 □Data Windows生成标准 □窗口定义 □日期类型 (特别要注意解决“千年虫”问题) □界面语言 □其它 出错处理 出错信息设计 【说明】扑捉出错信息、分析定位、提示信息。 异常情况处理 【说明】错误处理方案与帮助手段。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值