为什么要研究软件体系结构
- 格式:doc
- 大小:14.00 KB
- 文档页数:1
第三章系统概要设计中的架构设计系统分析的目的就是把需求转换为系统的设计,分析与设计是一个前后相互关联的过程。
通过对本章内容的学习,读者将被引入软件开发的设计阶段。
软件系统的设计一般分为概要设训和详细设计,概要设计中最重要的工作是系统的架构设计。
从软件系统的开发实现角度来看,系统的架构设计主要可以分为逻辑架构设计与物理架构设计两个紧密相关的设计内容。
系统的逻辑架构设计结果定义了应用系统中的基本逻辑组成元素,以及这些逻辑元素之间的关系,这在UML中主要通过架构包图来表示;系统的物理架构设计主要关注“目标程序及其依赖的运行库和系统软件”如何安装或部署到客户最终环境的物理主机中.以及如何部署主机(如各种形式的服务器主机)和网络配置来保证软件系统的可靠性、可伸缩性和稳定运行性等方面的要求.这主要通过UML中的部署图来表示。
在系统的架构设计中,应尽可能地分析清楚系统中哪些逻辑元素是稳定的需求,哪些是经常变化的需求。
以便在进行系统设计时,能够将软件系统的核心部分建立在稳定的需求上。
本章主要介绍系统概要设计中与“架构设计”有关的内容,并通过州上商城项目中系统架构设计的示例来阐述与架构设计有关的思想、原则和方法以及模式的具体应用。
3.1 概要设计3.1.1 软件系统设计概述1.软件系统设计概述(1)什么是系统设计?系统设计就是通过某种特定的平台,完成软件系统的整体功能(也就是把软件需求转变为软件的具体方案)的实现。
从工程管理的角度来看,软件设计分为如下两个阶段:概要设计和详细设计。
图3.1为概要设计和详细设计的具体工作内容。
图3. l概要设计和详细设计的具体工作内容概要设计的工作重点在于进行系统的静态结构或者高层架构设汁;详细设计的工作重点在于系统的用户界面、动态结构设计以及测试计划的制定等。
(2)系统的概要设计。
将软件系统的功能性需求和非功能性需求转化为数据结构和软件的系统结构,并合理地设计和规划出组成软件系统的物理元素:程序、数据库、过程、文件等内容。
高级系统架构师-系统架构设计论文1、论文:论软件三层结构的设计目前,三层结构或多层结构已经成为软件开发的主流,采用三层结构有很多好处,例如,能有效降低建设和维护成本,简化管理,适应大规模和复杂的应用需求,可适应不断的变化和新的业务需求等。
在三层结构的开发中,中间件的设计占重要地位。
请围绕“软件三层结构的设计”论题,依次对以下3个方面进行论述。
(1)概要叙述你参与分析和开发的软件项目以及你所担任的主要工作。
(2)具体讨论你是如何设计三层结构的,详细描述其设计过程,遇到过的问题以及解决的办法。
(3)分析你采用三层结构所带来的效果如何,以及有哪些还需要进一步改进的地方,如何改进?2、论文:论信息系统的安全性与保密性设计在企业信息化推进的过程中,需要建设许多的信息系统,这些系统能够实现高效率、低成本的运行,为企业提升竞争力。
但在设计和实现这些信息系统时,除了针对具体业务需求进行详细的分析,保证满足具体的业务需求之外,还要加强信息系统安全方面的考虑。
因为如果一个系统的安全措施没有做好,那么系统功能越强大,系统出安全事故时的危害与损失也就越大。
请围绕“信息系统的安全性与保密性”论题,依次从以下3个方面进行论述:(1)概要叙述你参与分析设计的信息系统及你所担任的主要工作。
(2)深入讨论作者参与建设的信息系统中,面临的安全及保密性问题,以及解决该问题采用的技术方案(3)经过系统运行实践,客观的评价你的技术方案,并指出不足,提出解决方案。
3、论文:论信息系统的架构设计架构是信息系统的基石,对于信息系统项目的开发来说,一个清晰的架构是首要的。
传统的开发过程可以划分为从概念直到实现的若干个阶段,包括问题定义、需求分析、软件设计、软件实现及软件测试等。
架构的建立应位于需求分析之后,软件设计之前。
请围绕“信息系统的架构设计”论题,分别从以下3个方面进行论述:(1)简要叙述你参与分析和设计的信息系统(项目的背景、发起单位、目的、项目周期、交付的产品等),以及你在该项目中的工作。
软件架构设计学习总结(17):架构和框架的区别7层是框架还是?框架:1、定义:框架(framework)是整个或部分系统的可重⽤设计,表现为⼀组抽象构件及构件实例间交互的⽅法,另⼀种定义为,框架是可被应⽤开发者定制的应⽤⾻架,前者是从应⽤⽅⾯⽽后者是从墓地的⽅⾯给出的定义。
框架是⼀个可服⽤的设计构件,通常以构件库的形式出现,但构架库只是框架的⼀个重要部分,框架的关键在于框架内对象间的的交互模式和控制流模式。
2、框架和构件框架⽐构件可定制性强。
在某种程序上,将构件和框架看成两个不同但⼜彼此协作的技术更好。
框架为构件提供重⽤的环境,为构件处理错误,交换数据及激活操作提供了标准的⽅法。
3、应⽤框架应⽤框架是实现了某应⽤领域通⽤完备功能(除去特殊应⽤的部分)的底层服务。
使⽤这种框架的编程⼈员可以在⼀个通⽤功能已经实现的基础上开始具体的系统开发,框架提供了所有应⽤期望的默认⾏为的类集合。
具体的应⽤通过重写⼦类或组装对象来⽀持应⽤专⽤的⾏为。
4、框架的特点①其实就是某种应⽤的半成品,就是⼀组组件,供你选⽤完成你⾃⼰的系统,⽽且框架⼀般是成熟的,不断升级的软件。
②框架是⼀个可复⽤设计,它是由⼀组抽象类及其实例间协作关系来表达的。
③⼀个框架是在⼀个给定的问题领域内,⼀个应⽤程序的⼀部分设计与实现,也就是说框架是对特定应⽤领域中的应⽤系统的部分设计和实现。
5、为什么要⽤框架因为软件系统发展到今天已经很复杂了,特别是服务器端软件,涉及到的知识,内容,问题太多。
在某些⽅⾯使⽤别⼈成熟的框架,就相当于让别⼈帮你完成⼀些基础⼯作,你只需要集中精⼒完成系统的业务逻辑设计。
⽽且框架⼀般是成熟,稳健的,他可以处理系统很多细节问题,⽐如,事物处理,安全性,数据流控制等问题。
还有框架⼀般都经过很多⼈使⽤,所以结构很好,所以扩展性也很好,⽽且它是不断升级的,你可以直接享受别⼈升级代码带来的好处。
架构1、定义软件架构(software architecture)是⼀系列相关的抽象模式,⽤于指导⼤型软件系统各个⽅⾯的设计,是⼀个系统的草图,描述的对象是直接构成系统的抽象组件。
《软件设计与体系结构》教学大纲一、课程基本信息二、课程目的和任务软件体系结构是根植于软件工程发展起来的一门新兴学科,目前已经成为软件工程研究和实践的主要领域。
专门和广泛地研究软件体系结构是从20世纪90年代才开始的,1993-1995年之间,卡耐基梅隆大学的Mary Shaw与David Garlan,贝尔实验室的Perry,南加州大学的Barry Boehm,斯坦福大学的David Luckham等人开始将注意力投向软件体系结构的研究和学科建设。
三、本课程与其它课程的关系。
体系结构在软件开发中为不同的人员提供了共同交流的语言,体现并尝试了系统早期的设计决策,并作为系统设计的抽象,为实现框架和构件的共享和重用、基于体系结构的软件开发提供了有力的支持。
鉴于体系结构的重要性,Dewayne Perry将软件体系结构视为软件开发中第一类重要的设计对象,Barry Boehm也明确指出:“在没有设计出体系结构及其规则时,整个项目不能继续下去,而且体系结构应该看做是软件开发中可交付的中间产品”。
四、教学内容、重点、教学进度、学时分配第一章软件体系结构概论1.1 从软件危机谈起1.1.1 软件危机的表现1.1.2 软件危机的原因1.1.3 如何克服软件危机1.2 构件与软件重用1.2.1 构件模型及实现1.2.2构件获取1.2.3 构件管理1.2.4构件重用1.2.5 软件重用实例1.3 软件体系结构的兴起和发展1.3.1 软件体系结构的定义1.3.2 软件体系结构的意义1.3.3 软件体系结构的发展史1.4 软件体系结构的应用现状第二章软件体系结构建模2.1 软件体系结构建模概述2.2 "4+1"视图模型2.2.1 逻辑视图2.2.2 开发视图2.2.3 进程视图2.2.4 物理视图2.2.5 场景2.3 软件体系结构的核心模型2.4 软件体系结构的生命周期模型2.5 软件体系结构抽象模型2.5.1 构件2.5.2 连接件2.5.3 软件体系结构2.5.4 软件体系结构关系2.5.5 软件体系结构范式第三章软件体系结构风格3.1 软件体系结构风格概述3.2 经典软件体系结构风格3.2.1 管道和过滤器3.2.2 数据抽象和面向对象组织3.2.3 基于事件的隐式调用3.2.4 分层系统3.2.5 仓库系统及知识库3.2.6 C2风格3.3 客户朋艮务器风格3.4 三层C/S结构风格3.4.1 三层C/S结构的概念3.4.2 三层C/S结构应用实例3.4.3 三层C/S结构的优点3.5 浏览器朋艮务器风格3.6 公共对象请求代理体系结构3.7 正交软件体系结构3.7.1 正交软件体系结构的概念3.7.2 正交软件体系结构的实例3.7.3 正交软件体系结构的优点3.8 基于层次消息总线的体系结构风格3.8.1 构件模型3.8.2 构件接口3.8.3 消息总线3.8.4 构件静态结构3.8.5 构件动态行为3.8.6 运行时刻的系统演化3.9 异构结构风格3.9.1 为什么要使用异构结构3.9.2 异构结构的实例3.9.3 异构组合匹配问题3.10 连系统构成的系统及其体系结构3.10.1 连系统构成的系统3.10.2 基于SASIS的软件过程3.10.3 应用范围3.11 特定领域软件体系结构。
C/S 优缺点C/S体系结构有三个主要组成部分:数据库服务器、客户应用程序和网络。
◎服务器(1)数据库安全性的要求;(2)数据库访问并发性的控制;(3)数据库前端的客户应用程序的全局数据完整性规则;(4)数据库的备份与恢复。
◎客户应用程序(1)提供用户与数据库交互的界面;(2)向数据库服务器提交用户请求并接收来自数据库服务器的信息;(3)利用客户应用程序对存在于客户端的数据执行应用逻辑要求。
c/s优点:简单灵活,各司其职◎思想简单,易于理解:C/S 体系结构具有强大的数据操作和事务处理能力,模型思想简单,易于人们理解和接受。
◎灵活,系统可扩充性强:系统的客户应用程序和服务器构件分别运行在不同的计算机上,系统中每台服务器都可以适合各构件的要求,这对于硬件和软件的变化显示出极大的适应性和灵活性,而且易于对系统进行扩充和缩小。
◎系统功能构建分离:在C/S体系结构中,系统中的功能构件充分隔离,客户应用程序的开发集中于数据的显示和分析,而数据库服务器的开发则集中于数据的管理,不必在每一个新的应用程序中都要对一个DBMS进行编码。
将大的应用处理任务分布到许多通过网络连接的低成本计算机上,以节约大量费用。
C/S 缺点:费钱费力不讨好,又繁又旧难维护。
◎开发成本较高◎客户端程序设计复杂◎信息内容和形式单一◎用户界面风格不一,使用繁杂,不利于推广使用◎软件移植困难◎软件维护和升级困难◎新技术不能轻易应用两层C/S的局限服务器自我中心,难交朋友;客户机压力山大,没有安全感1、单一服务器且以局域网为中心,难以拓展到大型企业广域网或者Internet2、软硬件的组合和集成能力有限3、客户机负荷太重,难以管理大量的客户机,系统的性能容易变坏4、数据安全性不好。
三层C/S 的优势交个朋友,分担任务,增加应用服务器,客户机上是表示层,应用逻辑层留在应用服务器上,瘦客户机。
应用层分为表示层,功能层和数据层,数据层仍然放在数据库服务器上。
软件体系结构建模的种类: 结构模型, 框架模型, 动态模型, 过程模型,功能模型"4+1"视图模型:1.逻辑视图:逻辑视图主要支持系统的功能需求,即系统提供给最终用户的服务。
2.开发视图:开发视图也称模块视图,主要侧重于软件模块的组织和管理。
3.进程视图:进程视图侧重于系统的运行特性,主要关注一些非功能性的需求。
强调并发性、分布性、系统集成性和容错能力,以及从逻辑视图中的主要抽象如何适合进程结构。
4.物理视图:物理视图主要考虑如何把软件映射到硬件上,它通常要考虑到系统性能、规模、可靠性等。
5.场景:场景可以看作是那些重要系统活动的抽象,它使四个视图有机联系起来,从某种意义上说场景是最重要的需求抽象。
体系结构核心模型由5中元素组成:构件、连接件、配置、端口和角色。
经典的体系结构风格数据流风格:批处理序列;管道/过滤器。
◎调用/返回风格:主程序/子程序;面向对象风格;层次结构。
◎独立构件风格:进程通讯;事件系统。
◎虚拟机风格:解释器;基于规则的系统。
◎仓库风格:数据库系统;超文本系统;黑板系统。
◎其他(如适应性软件系统的体系结构风格、面向Agent的研究、网格计算、Web服务等)过滤器的活动可通过以下三种方式激活:后续构件从过滤器中取出数据;前序构件向过滤器推入数据;过滤器处于活跃状态,不断从前序构件取出、并向后续部件推入数据。
软件体系结构描述方法:图形表达工具、模块内连接语言、基于软构件的系统描述语言、软件体系结构描述语言软件体系结构描述语言ADL是在底层语义模型的支持下,为软件系统的概念体系结构建模提供了具体语法和概念框架。
基于底层语义的工具为体系结构的表示、分析、演化、细化、设计过程等提供支持。
其三个基本元素是:构件、连接件、体系结构配置。
主要的体系结构描述语言有Aesop、MetaH、C2、Rapide、SADL、Unicon和Wright等,尽管它们都描述软件体系结构,却有不同的特点。
1、为什么要研究软件体系结构
1.软件体系结构是系统开发中不同参与者进行交流和信息传播的媒介。
2.软件体系结构代表了早期的设计决策成果。
早期的决策最难处理、最难于改变、影响范围也最大。
3.软件体系结构可以作为一种可变换的模型。
4.系统体系结构的发展是与计算机抽象技术的发展同步的;
5.大规模复杂软件系统的性能与质量对软件工程技术提出了新的要求。
2、软件体系结构的模型
构件(component)可以是一组代码,如程序的模块;也可以是一个独立的程序(如数据库的SQL服务器);连接件(connector)是关系的抽象,用以表示构件之间的相互作用。
如过程调用、管道、远程过程调用等;限制(constrain):用于对构件和连接件的语义说明。
3、引入了软件体系结构以后,传统软件过程发生了哪些变化?这种变化有什么好处?
答:软件体系结构的引入使软件设计开发更加具体和形象,它的模型更使得软件过程更加方便和多样化。
其好处在于:包括程序员在内的绝大多数系统的利益相关人员都借助软件体系结构来进行彼此理解、协商、达成共识或者相互沟通的基础,软件体系机构的模型可以应用到具有相似质量属性和功能需求的系统中,并能够促进大规模软件的系统级复用,在很多方面使得软件开发更加人性化。
4、区别
体系结构语言更多的描述各构件之间的关系
程序设计语言更注重功能描述。
5、核心模型
软件结构的核心模型由5种元素组成:构件、连接件、配置、端口和角色。
其中,构件、连接件和配置是最基本的元素。
6、试分析和比较B/S,二层C/S和三层C/S,指出各自的优点和缺点。
答:二层C/S体系结构将应用一分为二,服务器负责数据管理,客户机完成与用户的交互任务。
优点(1)C/S体系结构具有强大的数据操作的
事务处理能力,模型思想简单,易于人们理解和接受。
(2)对软硬件的变化有极大的适应性和灵活性,易于对系统进行扩充和缩小。
(3)系统中的功能构建充分隔离,节约大量费用。
缺点:(1)开发成本较高。
(2)客户端程序设计复杂(3)信息内容和形式单一(4)用户界面风格不一,使用繁杂不易推广。
(5)软件移植困难(6)软件维护和升级困难(7)新技术不能轻易应用。
三层CS在上面的基础上进行了改造,并增加了一个服务器,其优点:(1)允许合理的划分三层结构的功能,能提高系统和软件的可维护性和可扩展性。
(2)具有良好的可升级性和开放性。
(3)应用的各层可以并行开发,可以选择各自最适合的开发语言。
(4)为严格的安全管理奠定了坚实的基础。
B/S风格就是上述三层应用结构的一种实现方式,其具体结构为:浏览器/Web服务器/数据库服务器。
优点(1)基于B/S体系结构的软件,
系统安装,修改和维护全在服务器端解决。
(2)提供了异种机,异种网,异种应用服务的联机,联网,同意服务的最现实的开放性基础。
缺点(1)缺乏对动态页面的支持能力,没有集成有效的数据库处理能力。
(2)在数据查询等响应速度上,要远远低于C/S体系结构。
(3)数据提交一般以页面为单位,数据的动态交互性不强,不利于在线事务处理应用。