软件构造不完全知识点整理C1-3

一个没有条理的乱总结
Chapter 1

1.外部质量因素影响用户,内部质量因素影响软件本身和他的开发者。外部质量取决于内部质量。

2.外部质量因素:

1)正确性(至高无上的质量指标)

    确保正确性的办法:

        分层:每一层确保自己的正确性,同时假设其下层是正确的

        调试和测试

2)健壮性:针对异常情况的处理,对正确性的补充

    (正确性:严格符合规约---->健壮性:发生意外,不慌,不崩)

3)可扩展性:应对变化

    规模越大,扩展越不容易

4)可复用性:一次开发,多次使用

5)兼容性:不同的软件之间相互可以容易的集成

6)性能(效率):必须有足够的正确性,不然效率再高也没啥用

7)可移植性:可以方便的在不同的技术环境之间移植

8)易用性

9)功能

... ...

3.正确的软件开发过程中,开发者应该将不同质量因素之间如何做出折中的设计策略和标准明确的写下来。

!!!!

正确性绝对不能折中

4.最重要的因素:

正确性&健壮性--->可靠

可扩展性&复用性-->模块化

5.5 key quality objectives of software construction:

-easy to understand

-ready for change

-cheap for develop

-safe from bugs

-efficient to run


Chapter 2

1.SDLC一般的软件生命周期:从无到有  版本:从有到好

2.传统的软件进程模式:

-瀑布过程 

-增量模式

-V字模型

-原型过程

-螺旋模型

3.敏捷开发:通过快速迭代和小规模的持续改进,以快速适应变化

4.一般构造软件的过程:

设计->编程/重构->debug->test->build->release


Chapter 3

1.静态:在编译阶段进行类型检查,避免将错误带入运行阶段,提高程序正确健壮性

 动态:在运行阶段进行类型检查

2.改变一个变量:将该变量指向另一个值的存储空间

  改变一个变量的值:将该变量当前指向的值的存储空间中写入一个新的值

3.不变数据类型:一旦被创建,其值不能改变

4.可变vs不可变数据类型:

可变:最少化拷贝效率,获得更好的性能

不可变:更“安全”,在其他的质量指标上表现的更好

5.Snapshot diagram:用于描述程序运行时的内部状态

6.前置条件:对客户端的约束,在使用方法时必须满足的条件

后置条件:对开发者的约束,方法结束时必须满足的条件

契约:如果前置条件满足了,后置条件必须满足

避免使用可变的全局变量

7.ADT的特性:不变量、表示泄露、抽象函数AF、表示不变量RI

8.ADT是由操作定义的,与其内部实现无关

9.构造器:创造新对象

 生产器:从旧对象产生新对象

观察器:从抽象类型取对象,然后返回一个不同类型的对象

变值器:改变对象属性的方法

10.设计好的ADT靠经验法则提供一组操作,设计其行为规约spec:

rule1:设计简洁、一致的操作

rule2:需足以支持client对数据所做的所有操作需要,且用操作满足客户端需要的难度要低

rule3:要么抽象,要么具体,不要混合--要么针对抽象设计,要么针对具体应用的设计

11.表示独立性:客户端使用ADT时无需考虑其内部如何实现,ADT内部表示的变化不应影响外部spec和客户端

12.如何测试ADT:

-测试构造器,生产器,变值器:调用观察器来观察这些操作的结果是否满足spec

-测试观察器,调用构造器,生产器,变值器等方式产生或改变对象,来看结果是否正确

13.AF:抽象函数

RI:表示不变形,可以看做:所有表示值得一个子集,包含了所有合法的表示值

即使是同样的R,同样的RI,也可能有不同的AF,即解释不同

14.检查ADT是否保持不变量的三个标准:

established by creators and producers

preserved by mutators and observers

no representation exposure occurs

15.面向对象的标准:

泛型 继承 多态 动态分派/绑定

16.overriding :严格继承,子类只能添加新方法,无法重写超类中的方法

overloading:多个方法具有相同的名字,但有不同的参数列表或返回值类型

17.重载规则:

必须改变参数列表

相同/不同的返回值类型

可以改变access modifier

异常

可以在同一个类内重载,也可以在子类中重载

18.判断等价的方式:

-using AF or using a relation

AF:若用AF映射到相同的结果,则等价

关系:等价关系 满足 :自反 对称 传递

-用观察器

站在外部观察者角度,对2个对象我们能添加构造的每一步操作都有相同结果

19.== vs .equals()

== :引用等价性

.equals():对象等价性

基本类型相同 使用==判断


猜你喜欢

转载自blog.csdn.net/hwruirui/article/details/80777816