软件体系结构整理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1-软件危机的表现:
◎软件成本日益增长
◎开发进度难以控制
◎软件质量差
◎软件维护困难
2-软件危机的原因
◎用户需求不明确
◎缺乏正确的理论指导
◎软件规模越来越大
◎软件复杂度越来越高
3-如何克服软件危机
人们面临的不光是技术问题,更重要的是管理问题。
管理不善必然导致失败。
要提高软件开发效率,提高软件产品质量,必须采用工程化的开发方法与工业化的生产技术。
在技术上,应该采用基于重用的软件生产技术;在管理上,应该采用多维的工程管理模式。
4.软件重用技术及思想:
软件重用的目的是使非结构化、非标准化程序变为结构化、标准化,并形成大量能重用的计算机构件和模块。
软件重用技术使软件的开发基本上变成了搭积木,把需要的对象和功能模块拼起来即可。
它节省了大量的人力与物力,减少了重复开发。
最大限度地重用现存软件是软件维护方法学的重要思想原则。
4.1四个层次的重用:
(1)开发过程重用:软件标准等的重用,也称为开发支持环境重用。
(2)软件构件重用:这里软件构件指文档、程序及数据。
应该将软件构件可重用性作为主要设计指导思想。
(3)用户业务知识重用:用户现存系统的业务处理过程、特定专业领域的需求特征等知识的重用。
(4)市场知识重用:应用领域标准、行业标准、市场规律知识的重用。
4.2软件重用的定义
软件重用是指在两次或多次不同的软件开发过程中重复使用相同或相近软件元素的过程。
软件元素包括程序代码、测试用例、设计文档、设计过程、需求分析文档甚至领域知识。
通常,把这种可重用的元素称作软构件(software component,通常简称为构件),可重用的软件元素越大,我们就说重用的粒度(granularity)越大。
使用软件重用技术可减少重复工作,提高软件生产率、缩短开发周期。
同时,由于软构件大都经过严格的质量认证,因此有助于改善软件质量,大量使用构件,软件的灵活性和标准化程度也可得到提高。
的重用。
5.构件与类
构件是定义了良好接口的物理实现单元,它是系统中可替换的部分。
每个构件体现了系统设计中特定类的实现。
构件与对象在概念上有重叠,对象是类的实例,可以将面向对象设计称为面向类的设计。
一个构件可以是一个编译的类,可以是一组编译的类,也可以是其他独立的部署单元,如一个文本文件、一个图片、一个数据文件、一个脚本等;
5.1对象方法与构件方法
对象方法重视设计和开发,构件方法重视部署;
面向对象设计关注设计时系统中实体之间的关系;
面向构件的设计将这种关系扩展到系统生命周期的其他阶段,特别是产品阶段和部署阶段;◎对象方法关注的问题
设计是否抓住了问题域的有关部分?
接口和类是否易于扩展和修改?
◎构件方法关注的问题
在运行时,客户如何发现实现类?
如果在运行时有多个版本的实现类,会发生什么情况?
构件如何定位和装载必要的配置信息?
如果过程或容器需要临时停止运行,进行的工作是否能保存和恢复?构件实例是否能从一个容器迁移到另一个容器?
产品家族中一个成员的开发和维护如何影响其他成员?
5.2构件的定义
构件是指语义完整、语法正确和有可重用价值的单位软件,是软件重用过程中可以明确辨识的系统;结构上,它是语义描述、通讯接口和实现代码的复合体。
简单说,构件是具有一定的功能,能够独立工作或能同其他构件装配起来协调工作的程序体。
面向对象技术达到了类级重用(代码重用)。
构件对一组类的组合进行封装。
5.3 构件重用
◎检索与提取构件
◎理解与评价构件
◎修改构件
◎构件组装
6.软件体系结构的定义
◎Dewayne Perry和A1exander Wo1f //:(第一个)
软件体系结构是具有一定形式的结构化元素,即构件的集合,包括处理构件、数据构件和连接构件。
处理构件负责对数据进行加工,数据构件是被加工的信息,连接构件把体系结构的不同部分组合连接起来。
这一定义注重区分处理构件、数据构件和连接构件,这一方法在其他的定义和方法中基本上得到保持。
◎我们的定义
软件体系结构为软件系统提供了一个结构、行为和属性的高级抽象,由构成系统的元素的描述、这些元素的相互作用、指导元素集成的模式以及这些模式的约束组成。
软件体系结构不仅指定了系统的组织结构和拓扑结构,并且显示了系统需求和构成系统的元素之间的对应关系,提供了一些设计决策的基本原理。
从软件工程的角度,一般将软件的发展划分为哪三个时期,各有什么特点?
作业:
1.2略
3.软件重用项目与非重用项目有哪些不同之处? 答:使用软件重用技术可减少重复工作,提高软件生产率, 缩短开发周期。
同时,由于软构建大多经过严格的质量认证,因此有助于改善软件质量, 大量使用构建, 软件的灵活性和标准化程度可得到提高。
4.根据软件体系结构的定义,你认为软件体系结构的模型应该由哪些部分组成?
定义:略。
组成:构件(component)可以是一组代码,如程序的模块;也可以是一个独立的程序. 连接件(connector)是关系的抽象,用以表示构件之间的相互作用。
如过程调用、管道、 远程过程调用等;
限制(constrain):用于对构件和连接件的语义说明。
5.研究软件体系结构的意义是什么?
答:◎ 体系结构是风险承担者进行交流的手段
◎ 体系结构是早期设计决策的体现 ◎ 软件体系结构是可传递和可重用的模型
补充:
1.什么是可重用构件?相对于普通的软件产品,对可重用构件有何特殊要求?
答:可重用构件是指可以在多个软件系统的开发过程中被重复使用的软件产品。
可重用构件的特殊要求:
(1)可重用构件应该具有功能上的独立性与完整性;
(2)可重用构件应该具有较高的通用性;
(3)可重用构件应该具有较高的灵活;
(4)可重用构件应该具有严格的质量保证;
(5)可重用构件应该具有较高的标准化程。
第二章
1.“4+1”模型概述
“4+1”视图模型从5个不同的视角来描述软件体系结构,包括逻辑视图、进程视图、物理视图、开发视图和场景视图。
每个视图只关心系统的一个侧面,5个视图结合在一起才能反映系统软件体系结构的全部内容。
◇ 构件
构件是具有某种功能的可重用的软件模板单元,表示系统中主要的计算元素和数据存储。
构件的种类:复合构件,原子构件。
逻辑视图 进程视图 开发视图
物理视图 最终用户:功能需求 场景 编程人员:软件管理 系统集成人员:性能 可扩充性、吞吐量等 系统工程人员:系统
拓扑、安装、通信等。