信息系统项目管理师_2024年软考学习应考交流_信息系统项目管理师考试

 找回密码
 马上注册

QQ登录

只需一步,快速开始

查看: 1330|回复: 6
打印 上一主题 下一主题

[转帖]软件架构

[复制链接]

该用户从未签到

升级  0%

跳转到指定楼层
楼主
发表于 2006-4-5 16:43:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
<p>软件架构</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 软件架构是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计。</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 软件体系结构是构建计算机软件实践的基础。与建筑师设定建筑项目的设计原则和目标,作为绘图员画图的基础一样,一个软件架构师或者系统架构师陈述软件构架以作为满足不同客户需求的实际系统设计方案的基础。</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 从和目的、主题、材料和结构的联系上来说,软件架构可以和建筑物的架构相比拟。一个软件架构师需要有广泛的软件理论知识和相应的经验来事实和管理软件产品的高级设计。软件架构师定义和设计软件的模块化,模块之间的交互,用户界面风格,对外接口方法,创新的设计特性,以及高层事物的对象操作、逻辑和流程。</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 软件架构师与客户商谈概念上的事情,与经理商谈广泛的设计问题,与软件工程师商谈创新的结构特性,与程序员商谈实现技巧,外观和风格。</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 软件架构是一个系统的草图。软件架构描述的对象是直接构成系统的抽象组件。各个组件之间的连接则明确和相对细致地描述组件之间的通讯。在实现阶段,这些抽象组件被细化为实际的组件,比如具体某个类或者对象。在面向对象领域中,组件之间的连接通常用接口_(计算机科学)来实现。</p><p>是一般而言,软件系统的架构(Architecture)有两个要素:</p><p>·它是一个软件系统从整体到部分的最高层次的划分。</p><p>一个系统通常是由元件组成的,而这些元件如何形成、相互之间如何发生作用,则是关于这个系统本身结构的重要信息。</p><p>详细地说,就是要包括架构元件(ArchitECture Component)、联结器(Connector)、任务流(TASk-flow)。所谓架构元素,也就是组成系统的核心"砖瓦",而联结器则描述这些元件之间通讯的路径、通讯的机制、通讯的预期结果,任务流则描述系统如何使用这些元件和联结器完成某一项需求。</p><p>·建造一个系统所作出的最高层次的、以后难以更改的,商业的和技术的决定。</p><p>在建造一个系统之前会有很多的重要决定需要事先作出,而一旦系统开始进行详细设计甚至建造,这些决定就很难更改甚至无法更改。显然,这样的决定必定是有关系统设计成败的最重要决定,必须经过非常慎重的研究和考察。</p><p>&nbsp;</p>
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 顶 踩

该用户从未签到

升级  0%

沙发
 楼主| 发表于 2006-4-5 16:43:47 | 只看该作者
<strong>历史<br/></strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 早在1960年代,诸如E·W·戴克斯特拉就已经涉及软件架构这个概念了。自1990年代以来,部分由于在 Rational Software Corporation 和Micr<a href="http://www.itisedu.com/phrase/200602281634075.html" target="_new">OS</a>oft内部的相关活动,软件架构这个概念开始越来越流行起来。<p><font face="宋体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 卡内基梅隆大学和加州大学埃尔文分校在这个领域作了很多研究。卡内基·梅隆大学的Mary Shaw和David <a href="http://www.itisedu.com/phrase/200603021230015.html" target="_new">GA</a>rlan于1996年写了一本叫做 Software Architecture perspective on an emerging <a href="http://www.itisedu.com/phrase/200603091205485.html" target="_new">DI</a>scipline的书,提出了软件架构中的很多概念,例如软件组件、连接器、风格等等。 加州大学埃尔文分校的软件研究院所做的工作则主要集中于架构风格、架构描述语言以及动态架构。<br/><br/>计算机软件的历史开始于五十年代,历史非常短暂,而相比之下建筑工程则从石器时代就开始了,人类在几千年的建筑设计实践中积累了大量的经验和教训。建筑设计基本上包含两点,一是建筑风格,二是建筑模式。独特的建筑风格和恰当选择的建筑模式,可以使一个独一无二。<br/><br/>下面的照片显示了中美洲古代玛雅建筑,Chichen-Itza大金字塔,九个巨大的石级堆垒而上,九十一级台阶(象征着四季的天数)夺路而出,塔顶的神殿耸入云天。所有的数字都如日历般严谨,风格雄浑。难以想象这是石器时代的建筑物。<br/></font></p><p align="center"><font face="宋体"></font></p><p align="center"><img src="http://www.itisedu.com/manage/Upload/image/2006327212246527.jpg" border="0" alt=""/><br/><font face="宋体">图1、位于墨西哥Chichen-Itza(在玛雅语中chi意为嘴chen意为井)的古玛雅建筑。(摄影:作者)</font></p><p align="left"><font face="宋体">软件与人类的关系是架构师必须面对的核心问题,也是自从软件进入历史舞台之后就出现的问题。与此类似地,自从有了建筑以来,建筑与人类的关系就一直是建筑设计师必须面对的核心问题。英国首相丘吉尔说,我们构造建筑物,然后建筑物构造我们(We shape our buildings, and afterwards our buildings shape us)。英国下议院的会议厅较狭窄,无法使所有的下议院议员面向同一个方向入座,而必须分成两侧入座。丘吉尔认为,议员们入座的时候自然会选择与自己政见相同的人同时入座,而这就是英国政党制的起源。Party这个词的原意就是"方"、"面"。政党起源的关键就是建筑物对人的影响。<br/><br/>在软件设计界曾经有很多人认为功能是最为重要的,形式必须服从功能。与此类似地,在建筑学界,现代主义建筑流派的开创人之一Louis Sullivan也认为形式应当服从于功能(F<a href="http://www.itisedu.com/phrase/200603051342455.html" target="_new">ORM</a>s follows function)。<br/><br/>几乎所有的软件设计理念都可以在浩如烟海的建筑学历史中找到更为遥远的历史回响。最为著名的,当然就是模式理论和<a href="http://www.itisedu.com/phrase/200603071747045.html" target="_new">XP</a>理论。<br/><br/></font></p>

该用户从未签到

升级  0%

藤椅
 楼主| 发表于 2006-4-5 16:44:02 | 只看该作者
<strong>架构的目标是什么<br/><br/></strong>正如同软件本身有其要达到的目标一样,架构设计要达到的目标是什么呢?一般而言,软件架构设计要达到如下的目标:<br/><br/>·可靠性(Reliable)。软件系统对于用户的商业经营和管理来说极为重要,因此软件系统必须非常可靠。<br/><br/>·安全行(Secure)。软件系统所承担的交易的商业价值极高,系统的安全性非常重要。<br/><br/>·可扩展性(Scalable)。软件必须能够在用户的使用率、用户的数目增加很快的情况下,保持合理的性能。只有这样,才能适应用户的市场扩展得可能性。<br/><br/>·可定制化(Cu<a href="http://www.itisedu.com/phrase/200603111950135.html" target="_new">ST</a>omizable)。同样的一套软件,可以根据客户群的不同和市场需求的变化进行调整。<br/><br/>·可扩展性(Extensible)。在新技术出现的时候,一个软件系统应当允许导入新技术,从而对现有系统进行功能和性能的扩展<br/><br/>·可维护性(M<a href="http://www.itisedu.com/phrase/200603011759495.html" target="_new">AI</a>ntainable)。软件系统的维护包括两方面,一是排除现有的错误,二是将新的<a href="http://www.itisedu.com/phrase/200603061756235.html" target="_new">软件需求</a>反映到现有系统中去。一个易于维护的系统可以有效地降低技术支持的花费<br/><br/>·客户体验(Customer Experience)。软件系统必须易于使用。<br/><br/>·市场时机(Time to Market)。软件用户要面临同业竞争,软件提供商也要面临同业竞争。以最快的速度争夺市场先机非常重要。

该用户从未签到

升级  0%

板凳
 楼主| 发表于 2006-4-5 16:44:14 | 只看该作者
<strong>架构的种类<br/><br/></strong>根据我们关注的角度不同,可以将架构分成三种:<br/><br/>·逻辑架构、软件系统中元件之间的关系,比如用户界面,<a href="http://www.itisedu.com/phrase/200602271218062.html" target="_new">数据库</a>,外部系统接口,商业逻辑元件,等等。<br/><br/>比如下面就是笔者亲身经历过的一个软件系统的逻辑架构图<br/><div align="left"><font face="宋体"></font></div><p>&nbsp;</p><p align="center"><img src="http://www.itisedu.com/manage/Upload/image/200632721237610.jpg" border="0" alt=""/><br/><font face="宋体">图2、一个逻辑架构的例子</font></p><p><font face="宋体">从上面这张图中可以看出,此系统被划分成三个<a href="http://www.itisedu.com/phrase/200603101713485.html" target="_new">逻辑层</a>次,即表象层次,商业层次和数据持久层次。每一个层次都含有多个逻辑元件。比如WEB服务器层次中有HTML服务元件、S<a href="http://www.itisedu.com/phrase/200603112246585.html" target="_new">ES</a>sion服务元件、安全服务元件、系统管理元件等。<br/><br/>·物理架构、软件元件是怎样放到硬件上的。<br/><br/>比如下面这张物理架构图描述了一个分布于北京和上海的分布式系统的物理架构,图中所有的元件都是物理设备,包括网络分流器、代理服务器、WEB服务器、应用服务器、报表服务器、整合服务器、存储服务器、主机等等。<br/></font></p><div align="left"><font face="宋体"></font></div><p align="center"><img src="http://www.itisedu.com/manage/Upload/image/2006327212328186.jpg" border="0" alt=""/><br/><font face="宋体">图3、一个物理架构的例子</font></p><p align="left"><font face="宋体">·系统架构、系统的非功能性特征,如可扩展性、可靠性、强壮性、灵活性、性能等。<br/><br/>系统架构的设计要求架构师具备软件和硬件的功能和性能的过硬知识,这一工作无疑是架构设计工作中最为困难的工作。<br/><br/>此外,从每一个角度上看,都可以看到架构的两要素:元件划分和设计决定。<br/><br/>首先,一个软件系统中的元件首先是逻辑元件。这些逻辑元件如何放到硬件上,以及这些元件如何为整个系统的可扩展性、可靠性、强壮性、灵活性、性能等做出贡献,是非常重要的信息。<br/><br/>其次,进行软件设计需要做出的决定中,必然会包括逻辑结构、物理结构,以及它们如何影响到系统的所有非功能性特征。这些决定中会有很多是一旦作出,就很难更改的。<br/><br/>根据作者的经验,一个基于数据库的系统架构,有多少个数据表,就会有多少页的架构设计文档。比如一个中等的数据库应用系统通常含有一百个左右的数据表,这样的一个系统设计通常需要有一百页左右的架构设计文档。<br/><br/></font></p>

该用户从未签到

升级  30.8%

报纸
发表于 2006-4-5 21:11:56 | 只看该作者
不错的文章。感谢支持!
  • TA的每日心情
    无聊
    2011-7-7 12:46
  • 签到天数: 2 天

    [LV.1]初来乍到

    升级  0.01%

    地板
    发表于 2011-7-4 14:30:39 | 只看该作者
    不错,感谢楼主
  • TA的每日心情
    开心
    2012-8-10 12:57
  • 签到天数: 42 天

    [LV.5]常住居民I

    7
    发表于 2011-7-4 14:30:39 | 只看该作者
    晕死也不加点分  
    您需要登录后才可以回帖 登录 | 马上注册

    本版积分规则

    小黑屋|手机版|Archiver|信息系统项目管理师_软考交流平台. ( 鄂ICP备11002878号-1  公安备案号:42011102001150

    GMT+8, 2025-7-8 01:10

    Software by Discuz! X3.2

    © 2001-2013 SKIN BY DSVUE

    快速回复 返回顶部 返回列表