结构分析:
架构分析工作主要从宏观上考虑一个软件系统应该怎样组织。通常,在架构分析工作中,我们须要确定一些策略性的设计方针,原则和基本模式。
在它们的指导下,我们能够高屋建瓴地分析软件系统的宏观结构。认识软件系统由哪些组件构成,了解组件之间的接口和协作关系。架构分析的结果对于兴许的面向对象设计工作也是一种约束,有助于消除设计和实现过程中的任意性。因此。架构分析有时也被称为策略设计
组件指的是一组对象构成的,有固定接口的有机体,当设计者的观察视角不同。组件的规模不同或者组件内部的封装度程度不同一时候,这些有机体可能表现为不同的形式,如软件架构中的层。包或者子系统,架构分析的目的是通过科学的解析,将整个软件系统划分为不同的组件,而且准确定义出组件和组件之间的接口
在软件的实现层面,不同类型的组件,如层,包或者子系统等,也可能有不同的表现形式。
比如,它们能够表现为java程序中的一个包。也能够是c++项目中的一个源码文件夹。在软件公布和配置时。一个或者对个组件能够连接成一个可运行程序。能够表现为一个动态链接库,也能够表现为ActiveX空间或EJB组件
架构分析的作用:
架构分析工作预先为软件定义了科学的结构和规则,通过这些结构和规则,人们能有效地控制软件的复杂性,是软件易于理解实现和管理
好的的软件架构既能够分析软件中的不同组件。又能够精确定义组件之间的接口,这能够是软件系统中大部分组件具备较好的可复用性,同一时候通过架构分析工作,也能够实现更大范围的软件复用,即直接服用那些有代表性的软件架构
架构分析的结果也是多个项目组进行协作的基础。在软件架构有效分离的组件能够被分配给不同的项目组开发,仅仅要保证组件的接口定义不变,组件内部的变化不会对整个系统的继承产生影响
避免走入功能分解的误区:
功能分解和面向对象是格格不入的两种思维方式,功能呢个分解会严重妨害对系统组件及组件关系的理解。
面向对象分析和设计的基本原则强调对数据和相关操作的封装,依据这一要求,耦合度强,在逻辑上关系密切的数据以及操作这些数据的方法应该被封装在同一个类中。假设在面向对象分析之前,就採用功能分解的方法将软件系统肢解为多个功能模块。那么操作同一个数据的方法可能被分拆到不同的模块中,不同模块里的对象也会产生非常强的耦合性
子系统设计应该属于面向对象设计工作的一部分,应该在面向对象分析之后进行。在子系统设计过程中,设计者应该基于面向对象分析的结果来划分子系统。尽可能避免按功能划分的做法
架构分析的准备工作
在架构之前应该明确软件的类型是交互类型的软件还是系统类型的软件。架构分析在软件的整个生命周期里是一个迭代的过程,在面向对象分析和面向对象设计等不同的阶段中,软件系统的架构被一步步细化和完好
架构模式:
架构模式就是那些在开发过程中通过积累获得的。经实践检验行之有效.可复用的软件架构
版权声明:本文博主原创文章,博客,未经同意不得转载。
本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/4777624.html,如需转载请自行联系原作者