3软件工程和软件系统

1、 享元(Flyweight)模式运用共享技术有效地支持大量细粒度的对象。适用于:一个应用程序使用了大量的对象;完全由于使用大量的对象而造成很大的存储开销;对象的大多数状态都可变为外部状态;如果删除对象的外部状态,那么可以用相对较少的共享对象取代很多组对象;应用程序不依赖于对象标识。
抽象工厂(Abstract Factory)模式提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。适用于:一个系统要独立于它的产品的创建、组合和表示时;一个系统要由多个产品系列中的一个来配置时;要强调一系列相关的产品对象的设计以便进行联合使用时;当提供一个产品类库,而只想显小’它们的接口而不是实现时。如为图形用户界面(GUI)组件定义不同平台的并行类层次结构,适合采用此模式,其中抽象工厂声明一个创建抽象界面组件的操作接口,具体工厂实现创建产品对象的操作。
外观(Facack)模式为子系统中的一组接口提供一个-致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。适用于:要为一个复杂子系统提供一个简单接口时,子系统往往因为不断演化而变得越来越复杂;客户程序与抽象类的实现部分之间存在着很大的依赖性;当需要构建一个层次结构的子系统时,使用facade模式定义子系统中每层的入口点。
装饰器(Decorator)模式描述了以透明围栏来支持修饰的类和对象的关系,动态地给一个对象添加~些额外的职责,从增加功能的角度来看,装饰器模式相比生成子类更加灵活。适用于:在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责;处理那些可以撤销的职责;当不能采用生成子类的方式进行扩充时。
组合(Composite)模式将对象组合成树形结构以表示“部分-整体”的层次结构,使得用户对单个对象和组合对象的使用具有一致性。适用于:想表示对象的部分-整体层次结构;希望用户忽略组合对象与单个对象的不同,用户将统一地使用组合结构中的所有对象。
中介者(Mediator)模式用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。适用于:一组对象以定义良好但是复杂的方式进行通信,产生的相互依赖关系结构混乱且难以理解;一个对象引用其他很多对象并且直接与这些对象通信,导致难以复用该对象;想定制一个分布在多个类中的行为,而又不想生成太多的子类。欲使一个后端数据模型能够被多个前端用户界面连接,采用中介者模式最合适。
迭代器(Iterator)提供一种方法顺序访问一个聚合对象中各个元素,而又不需暴露该对象的内部表示。适用于:访问一个聚合对象的内容而无须暴露它的内部表示;支持对聚合对象的多种遍历;为遍历不同的聚合结构提供一个统一的接口。
备忘(Memento)在不破坏封装性的前提下,捕获一个对象的内部状态,并在对象之外保存这个状态。这样以后就可将对象恢复到原先保存的状态。适用于:必须保存一个对象在某一个时刻的(部分)状态,这样以后需要时它才能恢复到先前的状态;如果一个用接口来让其他对象直接得到这些状态,将会暴露对象的实现细节并破坏对象的封装性。
命令模式(Command):将一个请求封装为一个对象,从而可用不同的请求对客户进行参数化,将请求排队或记录请求日志,支持可撤销的操作。
解释器模式(Interpreter):给定一种语言,定义它的文法表示,并定义一个解释器,该解释器用来根据文法表示来解释语言中的句子。 责任链模式和迭代器模式都是行为型对象模式。

2、RUP应用了角色、活动、制品和工作流4种重要的模型元素,其中角色表述“谁做”,制品表述“做什么”,活动表述“怎么做”,工作流表述“什么时候做”。

3、

5、
责任链(Chain of Responsibility)模式使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系,将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。
命令(Command)模式将一个请求封装为一个对象,从而使得使用者可以采用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。
抽象工厂 (Abstract Factory)模式提供一个创建一系列相关或相互依赖对象的接口, 而无需指定它们具体的类。
观察者(Observer)模式定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。
原型(Prototype)模式用原型实例指定创建对象的种类,并且通过拷贝这个原型来创建新的对象。
工厂方法(Factory Method)定义一个用于创建对象的接口,让子类决定将哪一个类实例化,使一个类的实例化延迟到其子类。
单例(Singleton)模式是指系统运行过程中,一个类只有一个对象实例。
生成器(Builder)模式将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
适配器(Adapter)模式将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
桥接(Bridge)模式将抽象部分与其实现部分分离,使它们都可以独立地变化。
组合(Composite)模式将对象组合成树形结构以表示“部分一整体”的层次结构, 使得用户对单个对象和组合对象的使用具有一致性。
装饰器(Decorator)模式描述了以透明围栏来支持修饰的类和对象的关系,动态地给一个对象添加一些额外的职责,从增加功能的角度来看,装饰器模式相比生成子类更加灵活。

6、COCOMO用3个不同层次的模型来反映不同程度的复杂性,它们分别为: 基本模型(Basic Model):是一个静态单变量模型,它用一个以已估算出来的源代码行数(LOC)为自变量的函数来计算软件开发工作量。
中级模型(Intermediate Model):则在用LOC为自变量的函数计算软件开发工作量的基础上,再用涉及产品、硬件、人员、项目等方面属性的影响因素来调整工作量的估算。
详细模型(Detailed Model):包括中级COCOMO型的所有特性,但用上述各种影响因素调整工作量估算时,还要考虑对软件工程过程中分析、设计等各步骤的影响。

7、 模块的内聚是一个模块内部各个元素彼此结合的紧密程度的度量。
①巧合内聚:指一个模块内的各处理元素之间没有任何联系。
②逻辑内聚:指模块内执行考干个逻辑上相似的功能,通过参数确定该模块完成哪一个功能。
③时间内聚:把需要同时执行的动作组合在一起形成的模块。
④过程内聚:指一个模块完成多个任务,这些任务必须按指定的过程执行。

结构型设计模式(7种)

13、
Gantt图:又称横道图,能清晰地描述每个任务从何时开始,到何时结束,任务的进展情况以及各个任务之间的并行性。但不能清晰地反应出各任务的依赖关系,难以确定整个项目的关键所在,也不能反应计划中最有潜力的部分。
PERT图:又称前趋图,不仅给出了每个任务的考试时间、结束时间和完成该任务的时间,还给出任务之间的关系。不能反应任务之间的并行关系

14、
黑盒测试也称为功能测试,在完全不考虑软件的内部结构和特性的情况下来测试软件的外部特性。常用的黑盒测试技术包括等价类划分、边界值分析、错误猜测和因果图的 告。
白盒测试也称为结构测试,根据程序的内部结构和逻辑来设计测试用例,对程序的执行路径和过程进行测试,检查是否满足设计的需要。常用的白盒测试技术包括逻辑覆盖和基本路径测试。

15、风险是一种具有负面后果的、人们不希望发生的事件。
风险管理是软件项目管理的一项重要任务。在进行风险管理时,根据风险的优先级来确定风险控制策略,而优先级是根据风险暴露来确定的
风险暴露是一种量化风险影响的指标,等于风险影响乘以风险概率,风险影响是当风险发生时造成的损失。
风险概率是风险发生的可能性。风险控制是风险管理的一个重要活动。
,而优先级是根据风险暴露来确定的
风险暴露是一种量化风险影响的指标,等于风险影响乘以风险概率,风险影响是当风险发生时造成的损失。
风险概率是风险发生的可能性。风险控制是风险管理的一个重要活动。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年5月3日
下一篇 2022年5月3日

相关推荐