软件工程 第六章 模块设计

6 模块设计

面向对象的设计原则

单一职责原则

  • 定义: 在软件系统中一个类只负责一个功能领域的相应职责
  • 一个类承担的指责越多,被复用的可能性就越小。
  • 类的指责体现在两个方面:数据职责、行为职责
  • 高内聚、低耦合

单一职责原则实例:

在这里插入图片描述
转单一职责
在这里插入图片描述

开闭原则

  • 定义:一个软件实体,应该对扩展开放,对修改关闭。 模块可以在不被修改的前提下被扩展,实现在不修改源码的情况下改变这个模块的行文。
  • 软件实体可以指一个软件模块、一个有多个类组成的局部结构或一个独立的类。
  • 关键: 抽象化
  • 使用开闭原则,对灵活性喝可扩展性进行评价

实例:
在这里插入图片描述
根据开闭原则修改
在这里插入图片描述

里氏代换原则

  • 一个软件如果使用的是一个父类的话, 那么一定适用于其子类, 而察觉不出父类对象和子类对象的区别。 也即是说,在软件里面, 把父类替换成它的子类, 程序的行为不会有变化。
  • 子类型必须能够替换掉它们的父类型。

当满足以下条件的时候,一个子类对父类就是可替换的:

  1. 子类支持父类的所有方法,并且他们的签名是兼容的
  2. 子类的方法必须满足父类方法的规格说明。两个类的犯法不一定要完全相同,但是子类必须不违反父类放大的前置条件和后置条件。
  3. 子类必须保留父类中声明了的所有性质。

主要用途:确定社么时候一个而对象可以安全的被另一个对象所替换。

倒转依赖原则

  • 定义: 高层模块不应依赖底层模块,他们都应该依赖抽象。抽象不应该依赖于细节,细节应该依赖于抽象。
  • 要针对接口编程,不要针对实现编程
  • 代码要依赖抽象的类,而不依赖具体的类
  • 常用实现:在代码中使用抽象地类,将具体的类放在配置文件中
  • 关键: 抽象耦合

实例;
在这里插入图片描述
由于需求的变化,该系统可能需要增加新的数据源或者新的文件格式,每增加一个新的类型的数据源或者新的类型的文件格式,客户类MainClass都需要修改源代码,以便使用新的类,违背了开闭原则。现使用依赖倒转原则对其进行重构。

在这里插入图片描述

合成复用原则

  • 尽量使用对象组合而不是进程来达到复用目的
  • 合成复用原则就是指在一个新的对象里通过关联关系(包括组合关系和聚合关系)来使用一些已有的对象,使之成为新对象的一部分;新对象通过委派调用已有对象的方法达到复用其已有功能的目的
  • 继承复用: 简单,易于扩展。破环系统的封装性,从基类继承而来的是实现时静态的,不能在运行时改变,缺少灵活性。(白箱复用)
  • 组合/聚合复用:耦合度相对较低,选择性地调用成员对象,可以在运行时动态进行。(黑箱复用)
  • 组合/聚合:是系统更加灵活,降低类与类的耦合度。

迪米特法则

  • 每个软件单位对其他的单位都只有最少的知识,并且局限于那些和本单位密切相关的软件单位。
  • 一个软件实体应当尽可能少的与其他实体发生相互作用。
    在这里插入图片描述
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引言 1.1编写目的 图书管理系统详细设计设计的第二个阶段,这个阶段的主要任务是在图书管理系统概要设计书基础上,对概要设计中产生的功能模块进行过程描述,设计功能模块的内部细节,包括算法和详细数据结构,为编写源代码提供必要的说明。 概要设计解决了软件系统总体结构设计的问题,包括整个软件系统的结构、模块划分、模块功能和模块间的联系等。详细设计则要解决如何实现各个模块的内部功能,即模块设计。具体的说,模块设计就是要为已经产生的图书管理各子系统设计详细的算法。但这并不等同于系统实现阶段用具体的语言编码,它只是对实现细节作精确的描述,这样编码阶段就可以将详细设计中对功能实现的描述, 直接翻译、转化为用某种程序设计语言书写的程序。 1.2 参考资料 《实用软件工程》 《Oracle数据库》 《数据结构》 《软件工程概述》 2.软件结构 3.模块描述 3.1 模块名称 登陆模块 3.1.1功能描述 (1)功能类型:查询数据 (2)功能描述: 提高系统的安全性 (3)前提业务: 无 (4)后继业务: 02管理模块 (5)功能约束:权限约束 3.1.2类属性和类方法 3.1.3 重要的算法 进行对索要登陆人员进行信息注册,给予所登陆的账号进行登陆,并且进行验证。 3.2 模块名称 管理模块 3.2.1功能描述 (1) 功能类型:其他 (2)功能概述: 总体归纳图书馆管理功能 (3) 前提业务:登陆模块(01) (4) 后续业务: 021, 022, 023, 024, 03(5)功能约束: 权限约束 (6) 约束描述: (7) 操作权限:图书馆管理人员 3.2.2类属性和类方法 3.2.3 重要的算法 1).图书编号生成(自动生成)录入时自动生成,对于新书的编号,显示添加图书完成后的页面中 2).图书信息修改(即对该类图书总量能修改,包含图书的编号 数据库操作,根据数据库显示修改之前,后的页面 3).注销(破损图书) 数据库操作,注销页面 唯一编号--检索出先关书籍信息--删除 4).查询 3.3 模块名称 (031)图书信息查询模块 3.3.1功能描述 (1) 功能类型:查询数据 (2)功能概述: 显示查询结果 (3)前提业务: 无 (4) 后继业务: (5) 功能约束:没有约束; (6)约束描述: (7)操作权限: 面向所有用户 3.3.2类属性和类方法
准、软件测试、维护与升级等是软件开发过程中需要关注的重要概念。以下是这些概念的简要介绍: 1. 软件工程软件工程是一种系统性、规范化、可量化的方法,用于开发和维护软件。它涉及整个软件开发生命周期,包括需求分析、设计、编码、测试、部署和维护。 2. 软件危机:软件危机指的是在软件开发过程中遇到的问题,包括开发成本高、开发周期长、质量难以保证等。这些问题导致了许多软件项目失败或超预算。 3. 生命周期:软件生命周期指的是软件从概念到废弃的整个过程,包括需求分析、设计、编码、测试、部署、维护和升级等阶段。 4. 开发模型:开发模型是软件开发过程中采用的一种规范化方法,它指导软件开发人员在不同的阶段中进行何种活动。 5. 需求分析:需求分析是软件开发过程中的第一步,它涉及识别用户需求、定义系统功能、确定约束条件等。 6. 概要设计:概要设计软件开发过程中的第二步,它涉及系统的总体结构和组件之间的关系。 7. 详细设计:详细设计软件开发过程中的第三步,它涉及组件的具体设计和实现。 8. 模块独立性度量标准:模块独立性度量标准是评估软件模块独立性的指标,它包括模块的耦合性和内聚性等方面。 9. 软件测试:软件测试是为了发现和纠正软件中的错误,保证软件质量的过程。 10. 维护与升级:软件维护和升级是在软件发布后,对软件进行修改和更新的过程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值