欢迎来到天天文库
浏览记录
ID:5872489
大小:2.22 MB
页数:10页
时间:2017-12-27
《重庆大学软件架构期末复习》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、软件架构软件体系结构定义和意义定义:软件体系结构为软件系统提供了一个结构、行为和属性的高级抽象,由构成系统的元素的描述、这些元素的相互作用、知道元素集成的模式以及这些模式的约束组成。软件体系结构不仅指定了系统的组织结构和拓扑结构,还显示了系统需求和构成系统的元素之间的对应关系,提供了一些设计决策的基本原理。意义:1体系结构是风险承担着进行交流的手段。2体系结构是早期设计决策的体现。(明确了约束、决定了结构、制约着质量属性、预测质量、使得控制更简单、有助于循序渐进的原型设计、可以作为培训的基础)3软件体系结构
2、是可传递和可重用的模型。软件体系结构的产生、发展、兴起的原因以及发展现状产生:20世纪60年代的软件危机(成本日益增长、进度难控制、质量差、维护困难)使得人们开始重视软件工程。起初重心都放在数据结构和算法上,但随着规模越来越大越复杂、系统结构设计已经比数据结构和算法重要。因此在此背景下,软件体系结构认识到重要所在。对软件体系结构的系统、深入的研究将会成为提高软件生产率和解决软件维护问题的新的有希望的途径。软件体系结构产生于软件工程,结合了计算机体系结构和网络体系结构的思想,成为一门新的研究方向和独立学科。发
3、展:从最初的“无结构”设计到现在的基于体系结构的软件开发,软件体系结构技术的发展经历了4个阶段。(1)“无体系结构”设计阶段。以汇编语言进行小规模应用程序开发为特征。(2)萌芽阶段。出现了程序结构设计主题,以控制流图和数据流图构成软件结构为特征。(3)初期阶段。出现了从不同侧面描述系统的结构模型,以UML为典型代表。(4)高级阶段。以描述系统的高层抽象结构为中心,不关心具体的建模细节,划分了体系结构模型与传统软件结构的界限,该阶段以4+1模型为标志。现阶段是20世纪90年代后的基于构件的软件的开发阶段,以过
4、程为中心,强调软件开发采用构建化技术和体系结构技术,要求开发出的软件具备很强大的自适应性、互操作性、可扩展性和可重用性。此阶段软件体系结构已经作为一个明确的文档和中间产品存在于软件开发过程中。目前体系结构的研究活动主要包括有:1软件体系结构描述语言2体系结构描述构造与表示3体系结构分析、设计与验证4体系结构发现、演化与重用5基于体系结构的软件开发方法6特定领域的体系结构框架7软件体系结构的支持工具8软件产品线体系结构9建立评价软件体系结构的方法典型的构建实现模型(软件重用是指在两次或者多次不同的软件开发过程
5、中重复使用相同或者相似软件元素的过程。)构件是指语义完整、语法正确和有可重用价值的单位软件,是软件重用过程中可以明确辨识的系统。构件模型是对构件本质特征的抽象描述。目前国际上的模型目标和作用不同,已经有3个流派,分别是:OMG的CORBA(CommonObjectRequestBrokerArchitecture);sun的EJB;Microsoft的DCOM(DistributedComponentObjectModel)。•构建获取方法1从现有构件中获得符合要求的构件,直接使用或做适应性的修改,得到可重
6、用的构件。2通过遗留工程,将具有潜在重用价值的构件提取出来,得到可重用的构件。3从市场上购买现成的商业构件,即COTS构件。4开发新的符合要求的构件。一个组织在进行以上决策的时候必须要考虑到不同方式获取构件的一次性成本和以后的维护成本,然后最优选择。4+1视图l逻辑视图(LogicalView)设计的对象模型(使用面向对象的设计方法时)l过程视图(ProcessView)捕捉设计的并发和同步特征l物理视图(PhysicalView)描述了软件到硬件的映射,反映了分布式特性l开发视图(DevelopmentV
7、iew)描述了在开发环境中软件的静态组织结构逻辑视图主要用来描述系统的功能需求.•在逻辑视图中,系统分解成一系列的功能抽象、功能分解与功能分析,主要来自问题领域(ProblemDefinition)。•在面向对象技术中,通过抽象、封装、继承,可以用对象模型代表逻辑视图,用类图(ClassDiagram)描述逻辑视图。l构件(Components):类、类服务、参数化类、类层次l连接件(Connectors):关联、包含聚集、使用、继承、实例化开发视图主要用来描述软件模块的组织与管理,服务于软件编程人员。•开
8、发视图的风格通常是层次结构,每个层为上一层提供良好定义的接口,层次越低,通用性越好。l构件:模块、子系统、层l连接件:参照相关性、模块/过程调用进程试图侧重系统的运行特性,关注非功能性的需求(性能,可用性)。服务于系统集成人员,方便后续性能测试。•强调并发性、分布性、集成性、鲁棒性(容错)、可扩充性、吞吐量等。定义逻辑视图中的各个类的具体操作是在哪一个线程(Thread)中被执行。l构件:进程、简化进程、循环进程
此文档下载收益归作者所有