软件设计与体系结构复习(共7页).doc
精选优质文档-倾情为你奉上各种性能指标及如何到达各种性能指标的方法反应对正常和极端用法的脚本的反应是否足够快可伸缩性系统的能力克根据需要增加或减少容量/产量处理大负荷仍有反应安全性系统不会社会产生危害常用的中间件有那几种类型CORBA,Message-oriented middleware,J2EE, Message brokers,Business process orchestrators有那些常见架构风格1.管道和过滤器架构风格适用于需要定义一系列的执行规则数据的独立运算。组件在输入时读数据流,在输出时产生数据流。组件:称为过滤器,应用于对局部的输入流的转换,经常增长的计算,因此,在输入结束前输出就开始了。. 连接器:称为管道,给流提供管道,把一个过滤器的输出传输到另一个输入。2.面向对象风格适用于主要问题是识别和保护信息的相关主体。数据代理和它们相关的操作封装在一个抽象数据类型里面。组件:对象连接器:功能和过程调用(方法3.隐式调用风格应用于涉及到组件的松耦合集,其中的每一个都执行一些操作,还可能允许其他的操作。尤其对必须很快重新配置的应用很有用改变服务的供应商可能的或是不可能的能力不是直接的引用过程一个组件能发表一个或多个事件在系统中的其他组件能够在事件中注册一个兴趣通过与事件和过程结合当一个事件被声明后,广播系统(连接器自己引用已经注册的事件的所有过程所有声明的事件“隐式”造成了过程在其他模块的调用4. 客户-服务器风格适用于涉及到分布式的数据和跨越一系列的组件的处理组件:服务器:标准独立的组件提供特别的服务,如打印,数据管理等。客户端:组件调用服务器提供的服务。连接器:网络,允许客户端访问远程服务器。5.分层风格适用于涉及到分布式的能够分层的组织的类的服务每层给它的上一层提供服务,同时作为下一层的客户端只有仔细地从内层选择选择过程,才能用于他们临近的外层。组件:典型的过程的集合。连接器:典型的在有限的可见性下的过程调用6. 仓库风格适用于主要问题是建立、增加和维护复杂信息的主体部分信息一定要能够用很多种方式操作。经常需要长期的存在。组件:主要的数据结构能够表示出系统的正确状态操作主要数据结构的独立组件的集合连接器:典型地过程调用或是直接内存访问7. 解释程序风格适用于执行解决方案的最合适的语言或是机器不是直接可用的。组件:包括一个状态机,有一个执行引擎和三个记忆状态:当前的执行引擎的状态程序被翻译当前的被翻译的程序的状态连接器:过程调用直接内存访问8. 过程控制风格适用于目的是维护特殊过程的输出属性在给定参考值的情形下组件:过程定义包括操作一些过程变量的机制控制算法决定如何去操作过程变量连接器:数据流关系过程变量:被控制的变量的值是系统能控制的输入变量能够检测过程的输入操纵变量的值能够被控制器改变设置断点是一个控制变量所需要的值传感器获得过程变量与控制有关的值架构师需要的核心技能是什么涉众之间的交流,技术知识,软件工程学,风险管理什么是软件架构它是关于软件设计:所有的架构是软件设计,但不是所有的设计都是软件架构。架构关注“一旦系统建立后就很难或是不可能改变的问题”:质量属性,例如安全性,性能;非功能性需求,像开销,硬件配置;软件架构(software architecture是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计。软件架构是一个系统的草图。软件架构描述的对象是直接构成系统的抽象组件。各个组件之间的连接则明确和相对细致地描述组件之间的通讯。在实现阶段,这些抽象组件被细化为实际的组件,比如具体某个类或者对象。在面向对象领域中,组件之间的连接通常用接口_(计算机科学来实现。什么是架构风格也叫架构风格,描述软件的基本结构组织或纲要,提供事先定义好的子系统,制定好责任并将它们组织在一起的法则和指南。什么是架构视图一个架构视图是对于从某一视角或某一点上看到的系统所做的简化描述,描述中涵盖了系统的某一特定方面,而省略了此方面无关的实体。GRASP模式的具体内容创造者,专家,控制器,低耦合,高内聚,多态,纯虚构,间接,防止编译。对象职责分配的基本原则,主要应用于分析与建模上,关于职责的描述与职责的内聚OO设计的五个基本原则及课件中讲述的其它软件原理1.单一职责原则:这个原则和关注点分离紧密联系。它陈述了每个对象应该只有一个理由去改变,单一聚焦在职责上。通过依附这个原则,你避免了庞大的类的设计问题,那就像瑞士的军刀。有了精确的对象,你再次增加了系统的可读性和可维护性。2.开闭原则:这个原则陈述了类应该对扩展开放,对修改关闭,那样你就能够添加新的特征,扩展一个类而不用改变它内部的行为。这个原则旨在避免破坏存在的类及依赖它的其他类,这使得你的整个应用程序中产生故障和错误的涟漪。3.Liskov替换原则:Liskov替换原则要求你应该能够使用任何衍生出的类代替父类,不用修改就有同样的行为。这个原则与开闭原则一致,它保证了一个衍生出的类不影响父类的行为,或者说,衍生出的类必须能够被它们的基类替代。4.接口分离原则:这个原则是j将一个抽象方法分裂成几组职责,给这些组分配接口来防止客户端实现一个很大的接口,这个接口容纳了很多它们不使用的方法。目的是为了让类使用相同的接口只需要实现一些具体的方法,而不是有很多方法的庞大的接口。5.依赖反转原则:把你的类从具体的实现中隔离开,使它们依赖于抽象类或接口。它促进了对接口而不是实现的译码,这通过保证对实现的低耦合来增加系统的灵活性。企业应用架构在各层有那些主要的模式表现层:提供服务、显示信息(如在WINDOWS或HTML页面中,处理用户请求,HTTP 请求,命令行调用,批处理API;领域层:领域逻辑,系统中真正的核心。也称为业务逻辑,它就是应用程序必须做的所有领域相关工作:包括根据输入数据或者已有数据进行计算,对从表现层输入的数据进行验证,以及根据从表现层接收的命令来确定应该调试哪些数据源逻辑。;数据源层与数据库、系统消息系统、事务管理器及其他软件包通信。最主要的数据源逻辑就是数据库,主要责任是存储持久数据。Larman的敏捷UP设计方法的具体步骤初始:大体上的构想、业务案例、范围和模糊评估。细化:已精化的构想、核心架构的迭代实现、高风险的解决、确定大多数需求和范围以及进行更为实际的评估。构造:对遗留下来的风险较低和比较简单地元素进行迭代实现,准备部署。移交:进行beta测试和部署。4+1视图逻辑视图:描述架构的重要元素及它们之间的关系;过程视图:描述架构元素之间的并发和通信;物理视图:描绘主要的过程和组件是如何映像到硬件上的;开发视图:俘获软件组件内部的结构,如配置管理工具;架构用例:俘获架构的需求;和不止一种视图相关应用的集成策略专心-专注-专业