火龙果软件-第一章_软件体系结构概论汇编



《火龙果软件-第一章_软件体系结构概论汇编》由会员分享,可在线阅读,更多相关《火龙果软件-第一章_软件体系结构概论汇编(57页珍藏版)》请在文档大全上搜索。
1、软件体系结构软件体系结构Software Architecture课程的内容软件体系结构概论软件体系结构建模软件体系结构风格特定领域的软件体系结构Web服务体系结构软件演化技术软件产品线软件体系结构评估云计算体系结构课程的安排理论:42学时实验:6学时学分:2.5学分与其他课程的关系前导课:软件工程过程、系统分析与设计 后续课:轻量级J2EE框架Spring、基于MVC的Web开发、.NET客户端框架技术 课程的目标通过本课程的学习,应达到知识和技能两方面的目标:知识方面:牢固掌握软件体系结构的基本概念、方法和原理,并能够灵活地运用这些基本知识解决软件设计问题,技能方面:在各种软件设计中应用多
2、种设计模式、框架和体系结构;使用不同的中间件技术设计并实现软件。 参考书张友生等,软件体系结构,清华大学出版社齐治昌等,软件设计与体系结构 ,高等教育出版社第一章 软件体系结构概论1.1 软件危机1.2 软件复用1.3 软件构件的组织与检索1.4 软件构件化1.5 软件体系结构1.1 软件危机计算机系统p适当地组织在一起的一系列系统元素的集合,这些系统元素互相配合、相互协作,通过对信息的处理而完成预先定义的目标。计算机系统元素计算机软件:程序+数据结构+文档计算机硬件:提供计算能力的设备+外设人 员:硬、软件的用户和操作者数 据 库:大型的有组织的数据集合文 档:系统的描述信息过 程:一系列的
3、步骤1.1 软件危机软件危机p软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。1.1 软件危机软件危机的具体表现p对开发成本和开发进度难以进行准确地估计p用户对软件产品不满意p软件产品的质量难以保证p软件产品维护非常困难p软件产品没有适当的文档资料p软件成本在计算机系统总成本中所占的比例逐年上升p软件开发效率的提高远远跟不上计算机应用快速普及的趋势1.1软件危机软件危机的成因p硬件生产效率的快速提高p软件产品生产效率较低p软件供需失衡p用户需求不明确p整个软件开发过程缺乏正确的理论指导p软件产品的规模越来越大p软件产品开发的复杂度越来越高1.1软件危机克服软件危机p人们面临的
4、不光是技术问题,更重要的是管理问题。管理不善必然导致失败 。p要提高软件开发效率,提高软件产品质量,必须采用工程化的开发方法与工业化的生产技术。p在技术上,应该采用基于重用的软件生产技术;在管理上,应该采用多维的工程管理模式。1.1软件危机软件工程p概括地说,软件工程是指导计算机软件开发和维护的工程学科。p采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来,以经济地开发出高质量的软件并有效地维护它,这就是软件工程。1.1软件危机软件工程三要素p方法:为软件开发提供了“如何做”的技术,是完成软件工程项目的技术手段p工具:人类
5、在开发软件的活动中智力和体力的扩展和延伸,为软件工程方法提供自动或半自动的软件支持环境p过程:将方法和工具综合起来以达到合理、及时地进行软件开发的目的1.2软件复用软件复用是指利用现有的软件资源来开发新应用系统的过程软件复用包括三个相关的基本过程: 软件对象的开发、软件对象的理解和软件对象的复用从已有的应用系统中抽取可复用软件成分的过程,经常被称为“重用再工程(Reuse Re-engineering)”过程1.2软件复用逆工程(Reverse-engineering)是在软件维护过程中,对当前的软件系统进行理解,识别部件和部件之间关系的过程再工程(Re-engineering)是在软件维护过
6、程中,为了改善系统的性能,使其适应硬件和应用环境不断变化的需求,对原有系统进行再加工的过程1.2软件复用软件重用再工程可以被划分为五个阶段:p在侯选阶段,对程序源代码进行分析,根据功能和代码的内聚性,生成若干软件部件集合p在选择阶段,将软件部件集合和收集活动组织在一起,通过适当的降耦合、再工程和一般化处理,产生一组可复用软件对象p在资格说明阶段,对每一个可复用软件对象进行详细地描述,给出模块功能和界面说明书1.2软件复用软件重用再工程可以被划分为五个阶段:p在分类和存储阶段,按照分类标准对复用软件对象及其相关说明书进行分类组织,目的是确定中心仓库(Repository),并将生成的可复用软件对
7、象及其说明书存入其中p在查找和检索阶段,建立用户界面使之与中心仓库进行交互,目的是使查找用户所需求的可复用软件对象的步骤尽可能简化1.2软件复用软件复用技术自诞生之日起,其发展经历了以下几个阶段:p1968-1978年,萌芽和潜伏期,1968年首次提出了软件复用的概念p1979-1983年,再发现期p1983-1994年,发展期p1994年至今,成熟期1.2软件复用软件复用的实现技术:p代码复用可分为目标代码复用和源代码复用p设计复用比源程序复用的级别更高p分析复用要比设计复用的级别更高p测试复用主要包括测试用例复用和测试过程复用1.2软件复用软件复用的实现技术包括组装和生成两种类型:p在组装
8、技术中,软件构件是复用的基石p在生成技术中,由程序生成器完成对软件结构模式的复用1.2软件复用影响软件复用的相关因素:p软件构件技术是软件复用的核心与基础,从集中式的小粒度组件向分布式的大粒度组件发展,从用于界面制作的窗口组件向完成逻辑功能的业务组件发展p领域工程是为一组相似或相近的应用工程建立基本能力和必备基础的过程,它覆盖了建立可复用软件构件的所有活动p软件再工程是一个过程,它将逆向工程、重用和正向工程组合起来,对现存的系统进行重新构造以获取新的应用系统1.2软件复用影响软件复用的相关因素:p开放系统技术是在系统的开发过程中使用接口的标准,同时使用了符合接口标准的相关实现技术pCASE技术
9、与软件复用密切相关,其主要研究内容包括:在面向复用的软件开发过程中,抽取、描述、分类和存储可复用的构件p非技术因素包括:机构组织、管理方法、开发人员的知识更新、知识产权等1.2软件复用软件复用的意义p增加软件系统的可靠性p降低了软件开发过程中的风险p加快项目开发的速度p软件复用促进了标准的推广p专家知识的有效利用1.3软件构件的组织与检索只有当构件要达到一定的规模时,才能有效地支持软件复用,然而获取大量的构件需要有较高的投入和长期的积累当构件达到较大的规模时,使用者要想从中找到一个自己需要的构件,并判断其是否与自己的需求相符,却不是一件轻而易举的事情合理的构件分类体系是构件库有效构造、存储、管
10、理及检索的基础,其最终目的对获取的信息进行正确地分类组织1.3软件构件的组织与检索构件的分类p枚举分类方法能够将某个领域划分为若干个不相交的子领域,并依次构成层次结构p层次分类方法的本质是构建类的层次关系,首先把所有的构件划分为一些大类,再对每一个大类进行细化形成层次较低的小类,不断地重复划分过程,直到层次关系的最低层是构件为止1.3软件构件的组织与检索构件的分类p在关键词分类方法中,每个构件以一组与之相关的关键词编目,使用主题来描述构件,主题词多为短语,每个主题下可有多个描述子,多为单词,查询者使用关键词来描述所需要的构件,通过关键词与主题词相匹配的手段来寻找目标构件p在属性/值分类方法中,
11、为所有构件定义了一组属性,每个构件都使用一组属性/值来进行描述1.3软件构件的组织与检索构件的分类p在刻面分类方法中,将术语置于一定的语境中,从反映本质特性的视角去精确描述构件,管理者使刻面与术语相互对应,在构件之间建立起一种复杂的关联关系p本体包含了语义信息,使用本体来描述构件,可以让计算机知道我们所描述的词汇的含义,在本体描述的基础上,可以对构件库进行语义检索,检索出含义上相匹配的构件1.3软件构件的组织与检索构件的分类p基于知识的构件检索技术,基本原理是:根据用户提出的要求,生成系统内部的提问形式,启动推理机获取用户所需要的构件,并以用户易读的形式来显示p基于神经网络的构件检索技术,以神