软件构造复习2

软件构造复习2

1 三维视图

在这里插入图片描述

2软件构造的质量目标:

外部质量和内部质量:外部质量影响用户,内部质量影响软件本身和他的开发者,外部 质量取决于内部质量。最后只有外部质量起作用。

外部质量:
1.正确性(按照预先定义的“规约”执行,最重要的质量指标),健壮性(针对异 常情况的处理,出现异常时不要“崩溃”,未被 specification 覆盖的情况即为“异常情况”);
2.可扩展性(规模越大,扩展起来越不容易,为什么要扩展:应对变化,简约、分离);
3.可复用 性(一次开发,多次使用);
4. 兼容性(不同的软件系统之间相互可容易的集成,保持设计的 同构性)
5. 性能(性能毫无意义,除非有足够的正确性,对性能的关注要与其他质量属性进行折中,过度的优化导致软件不再适应变化和复用),
6. 可移植性(软件可方便的在不同的技 术环境之间移植,硬件、操作系统)
7. 易用性((容易学、安装、操作、监控,给用户提供详 细的指南)
8. 功能性
9. 及时性

内部质量:可读性,易于看懂,简约性,大小。

正确的软件开发过程中,开发者应该将不同质量因素之间如何做出折中的设计决策和标 准明确的写下来,虽然需要折中,但“正确性”绝不能与其他质量因素折中。

3 SOILD

  1. (SRP) The Single Responsibility Principle 单一责任原则:不应该有多于 1 个原因让你的 ADT 发生变化,否则就拆分开。一个类,一个责任。最简单的原则,却是最难做好的原则。
  2. (OCP) The Open-Closed Principle 开放-封闭原则:对扩展性的开放(模块的行为应是 可扩展的,从而该模块可表现出新的行为以满足需求的变化)、对修改的封闭(但模块自身 的代码是不应被修改的,扩展模块行为的一般途径是修改模块的内部实现,如果一个模块不 能被修改,那么它通常被认为是具有固定的行为)关键的解决方案:抽象技术。用继承和委
    托修改类的行为。
  3. (LSP) The Liskov Substitution Principle Liskov 替换原则:子类型必须能够替换其基类型、
    派生类必须能够通过其基类的接口使用,客户端无需了解二者之间的差异。
  4. (ISP) The Interface Segregation Principle 接口聚合原则:不能强迫客户端依赖于它们不 需要的接口:只提供必需的接口。客户端不应依赖于它们不需要的方法。“胖”接口具有很多 缺点,胖接口可分解为多个小的接口,不同的接口向不同的客户端提供服务,客户端只访问
    自己所需要的端口。
  5. (DIP) The Dependency Inversion Principle 依赖转置原则:抽象的模块不应依赖于具体
    的模块,具体的模块应依赖于抽象的模块。上层 client 的代码中直接嵌入了对下层具体实现 机制的调用,上层 client 的代码面向抽象接口编程,隔离对下层具体实现机制的直接接触。 delegation 的时候,要通过 interface 建立联系,而非具体子类。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值