一、 简述软件体系结构的性质、研究意义和目标是什么? (不少于300字,10分)
二、 简述软件设计风格、软件应用框架和软件设计模式的特征和区别?(不少于300字,10分)
三、 简述中间件的作用和目标,并列举任意一种中间件。(不少于300,10分)
四、 简述SOA软件体系结构的基本概念,简述Web Service的主要协议。(不少于300字,10分)
五、 结合参与开发的软件工程项目,①论述采用的软件体系结构风格或应用框架,②论述采用的软件设计基本原则和策略。(字数不限,两部分内容各占30分,共60分)
作业格式要求:
上面给出的标题和作业题,请原样复制到自己所完成的作业上部。
A4纸,宋体小4号字,标准页边距,行间距固定值26磅,页码右下。交打印稿。
11月底交作业。
一、 简述软件体系结构的性质、研究意义和目标是什么? (不少于300字,10分)
答:1、软件体系结构的性质:
(1)软件体系结构是软件设计过程的一个层面,是相对独立的、有价值的软件设计方法的总结,可作为软件开发指导性的策略和途径。
(2)强调设计过程,而非分析的过程。分析的目标是理解和表示,设计的目标是实现。
1
(3)非用户的观点及非功能的观点。对于用户,结构是软件系统功能的组合。对于设计者,结构是为特定目标而设立的软件成分以及成分之间的关系。
2、研究意义
答:软件体系结构是软件工程的重要研究领域,通过对基本软件结构和经典设计风格的学习和研究,掌握软件体系结构设计的基本原则和技术途径;能够拓宽软件方法和技术的知识面,提高软件的设计能力;软件体系结构的重要作用体现在以下三个方面:
(1)、体系结构的表示有助于风险承担者(项目干系人)进行交流。
(2)、体系结构突出了早期涉及决策。
(3)、软件体系结构是可传递可复用的模型。
3、目标:
软件体系结构是一系列决策和基本原理的集合,这些决策的目标在于开发高效的软件体系结构。在体系结构设计中所强调的基本原理是系统的可理解性、可维护性和可扩展性。
二、 简述软件设计风格、软件应用框架和软件设计模式的特征和区别?(不少于300字,10分)
答:(1)软件体系结构风格(Architecture Styles)
风格是表达特定系统元素和组织方式的通用范例(idiomatic paradigm)。软件体系结构风格,反映众多系统共有结构的习惯用法和语义,表述系统的静态结构方式,强调软件元素的组织形式和通
2
常用法。
(2)软件设计模式(Design Pattern)
设计模式是软件问题高效和成熟的设计模板(pattern),模板包含了固有的问题的处理逻辑,强调处理逻辑采用方式的直接复用。
(3)软件应用框架(Application Framework)
框架是待实例化的、可复用的大粒度部件结构。框架面向不同规模的应用问题,是通用的结构。强调针对实际问题和通用结构。
三、 简述中间件的作用和目标,并列举任意一种中间件。(不少于300,10分)
答:中间件泛指能够屏蔽操作系统和网络差异,为异构环境之间提供通信服务的软件,是具有通信和可扩展能力的分布式软件管理框架。无论数据服务在什么地方、处在什么操作系统、什么数据库环境下,应用服务只需访问中间件,由中间件通过网络协议获得必要的数据服务。
1、中间件主要作用:(1)通过网络协议查找数据服务;
(2)传送应用服务请求;
(3)服务结果回送到应用服务请求。
2、中间件的目标
3
在中间件环境下开发的程序,具有在相对稳定的高层应用框架下接口,在未来的计算机和系统软件升级换代,或者希望与其它符合中间件标准的系统连接时,都不需要改动,改变的可能只是中间件的替换或转接。
3、举例:
例如数据库中间件,负责完成对数据库访问的操作优化、用户连接、安全保障,以及实现对不同厂商数据库的访问等。实现透明访问和操纵局域网、Internet环境中各种分布、异构的数据资源的中间系统,达到提高数据库整体运行效率的目的。简而言之,数据库中间件是指一切连接应用程序和数据库的软件。不仅限于对不同厂商的数据库,实现透明访问和操纵分布、异构的数据资源,而且包括完成对数据库访问的操作优化、多用户连接、安全保障,强调提高数据库整体运行效率的目标。
四、 简述SOA软件体系结构的基本概念,简述Web Service的主要协议。(不少于300字,10分)
答:1、基本概念:面向服务的体系结构(Service Oriented Architecture,SOA),是另一种形式的分布式系统构造模型。它将分布在网络中被称为服务的应用程序或功能单元,通过协议方式的连接机制联系起来。而这个服务的连接机制是独立于服务运行环境的硬件平台、操作系统和编程语言的执行机构。
2、Web Service的标准协议
SOAP(simple object access protocol)简单对象访问协议,是基于XML扩展标记语言
信息格式描述Web服务,并通过RPC远端过程调用和响应限定及约束的通用传输协议,支持分布式环境信息交换
4
WSDL(Web service description language)描述Web服务访问接口的协议。利用抽
象规范与具体实现的分离的原理,规定了描述服务做什么,如何访问,以及位于何处的限定方式。
UDDI(universal description discovery and integration)统一描述、发现和集成协议。
为了对网络上分布的注册中心统一管理,针对Web服务的目录结构,提供向注册中心注册的约定和限制。
BPEL(Business Process Execution Language For Web Services)Web服务的业务流
程执行语言。是服务整合及流程步骤定义语言,定义整合的服务接口,以及这些接口与总体执行的配合情况。
五、 结合参与开发的软件工程项目,①论述采用的软件体系结构风格或应用框架,②论述采用的软件设计基本原则和策略。(字数不限,两部分内容各占30分,共60分)
①答:在2010年本人参与开发了《XXXXX生产调度指挥系统》,下面以软件体系结构应用框架理论为基础,结合该软件工程项目,对软件所采用的框架结构做一简要论述,重点论述服务层SOA架构。
《XXXXX生产调度指挥系统》总体架构系统采用先进的模型驱动架构(MDA)技术构建,是典型的三层分布式体系结构,桌面应用环境作为客户层,采用插件技术和可复用框架提供和支持用户友好的界面要求和操作需要; 服务层构建遵循SOA体系规范,根据集成对服务的实现要求,模型服务的具体实现采用J2EE技术。模型服务框架基于Spring框架构建,实现服务的解耦和灵活装配。数据层借鉴POSC的数据对象思想,为平台提供模型和数据访问,在应用中用户可根据各自需要进行系统功能的定义和扩充系统,适应勘探与生产调度指挥管理涉及业务覆盖面广而多变的要求。
SOA(Service-Oriented Architecture) 是一种面向企业级服务的系统架构,具体应用程序的功能
5
是由一些松耦合并且具有统一接口定义方式的组件(也就是service)组合构建起来的。SOA架构是一套完整的理论体系,是目前企业信息系统集成的方向和趋势。
SOA最大的价值在于业务灵活重构和软件组件可重用,其核心思想为:
(1)通过EAI/ESB实现企业内各类信息使用的标准化(包括数据表示和数据交换),如建立统一的数据/信息分类、建立统一的数据交换标准、建立统一的信息管理规则;
(2)通过业务流程支持平台,支持灵活的业务流程建设、变更等需求;
(3)通过门户为各类用户订制具备高度个性化的工作平台,如总经理办公平台、客户服务(岗位)平台。
SOA将信息展示、业务实现、信息服务组件三者分离,使用不同的技术进行支撑,彼此之间通过标准的协议实现弱耦合的系统协作是当前企业级应用系统平台建设的最佳方式。当今基于SOA的软件平台已成为支持这一方式的最优选择。
勘探与生产调度指挥几乎涉及油田生产的所有业务领域,随着勘探开发业务的不断深化、拓展以及各种各类因素的变化,调度指挥的业务范畴也会相应地随之变化和调整,SOA结构正好适应这种需求,采用SOA结构保证了该系统的集成性和可扩展性。
②答:在大量的软件开发实践中,对于软件结构的设计有被普遍性采用的原则,这些原则和策略多年来一直被广泛地运用着。它们独立于具体的软件开发方法。基本原则包括:抽象、分而治之、封装和信息隐蔽、模块化、高内聚和低耦合、关注点分离、策略和实现分离、接口和实现分离。
在《XXXXX生产调度指挥系统》开发过程中主要遵循的原则有:
6
(1)抽象的原则:
抽象,是人们认识复杂事物的基本方法。它的实质是集中表现事物的主要特征和属性,隐蔽和忽略细节部分,并能用于概括普遍的、具有相同特征和属性的事物。
软件设计中运用的抽象包括:
数据抽象:描述特定数据对象的属性集合
过程抽象:特定操作过程命名的操作序列
控制抽象:隐含内部细节的控制逻辑
(2)分而治之原则:
将大的问题分解,分别处理分解的局部问题,会降低问题的复杂性和难度,这是人们处理问题的通常的方式。软件设计中运用的分解包括:
纵向分解:
按照同类型事务的分解方式,将整体问题分解成为多层,每层完成同类型的处理,这样,可方便提取统一形式的接口,以提供对其他层的支持。
横向分解:
将问题分成多项独立的处理成份,它们原则上没有直接的联系。通常,层次结构中的各层成份采
7
用此种方式。
(3)信息隐蔽的封装原则:
设计中运用的信息隐蔽的技术包括:封装设计、局部化设计
封装设计:
将处理过程尽量隐蔽,使外界只了解其简单、统一形式的访问方式。以减少各部分的依赖程度,增强构造灵活性。
局部化设计:
被处理的信息限制在局部处理过程中,尽量减少外部的直接访问与共享,以减小相互的耦合性。软件成分之间的松散耦合,不会带来修改、复用时的麻烦,以及出错的影响面小
(4)模块化的原则:
模块:可被独立命名、具有独立作用的软件成分
软件的模块设计:
模块可分解性:整体问题可被分解成多个模块来解决
模块可组装性:现有的模块可被组装用以解决问题
模块可理解性:模块可作为独立作用的成分被理解
8
模块连续性: 对系统的修改只作用于单个的模块
模块保护性: 模块出现异常的影响,仅在模块内部
(5)保持高内聚和低耦合
内聚性:
指软件成份内部各处理单元的关系程度。能做到每个成分都有必然关系,缺一不可的紧密程度,是最好的内聚形式。
耦合性:
指软件成份之间的关系特性。软件成份之间应尽量做到没有直接关系,是其保持相对独立,松散的耦合关系会使未来的修改、复用简单,出错带来的影响小。
(6)关注点分离原则:
关注点:软件成份被用于不同的环境时,会有对于不同环境的适应性问题。但是,所必须适应的内容并非全部,只是一部分,即是所谓的关注点。
分离:
软件体系结构设计的关注点分离原则,是将与环境相关的软件成分与其它成分分开设计,以实现环境无关性,提高软件成分(非关注点成分)的可复用性。
9
(7)策略和实现分离原则:
策略:软件中用于处理上下文相关的决策、信息语义和解释转换、参数选择等的成分。
实现:软件中规范且完整的执行算法。
分离:软件设计要将策略成分和实现成分分离,至少在一个软件成份中明显分开。这样可提高维护性。因为实现的变动远比策略要少得多。
(8)接口和实现分离原则:
接口:软件成份外部可直接访问的操作功能集合。
实现:外部是不可访问的操作执行部分。
分离:将软件成份对外可直接访问的操作集合,采用统一的方式定义,构成独立的接口,与操作的执行部分分开设计,这样,可以提高结构的灵活性,可适应多种不同的接口需求,或者适应同样接口的不同操作。
10
因篇幅问题不能全部显示,请点此查看更多更全内容