走在架构师的大道上 Jack.Wang's home

Java, C++, linux c, C#.net 技术,软件架构,领域建模,IT 项目管理 Dict.CN 在线词典, 英语学习, 在线翻译

BlogJava 首页 新随笔 联系 聚合 管理
  195 Posts :: 3 Stories :: 728 Comments :: 0 Trackbacks
    架构,从字面上很容易联想到建筑学中的构建蓝图,不过他是相对稳定的,而软件中的架构是需要不断演进的动态过程。软件架构是对系统构件及其交互关系的高层抽象描述,是软件系统的蓝图和整体结构,用于指导后续的设计与开发,以使抽象具体化。软件架构一直没有一个确切的定义,但是,普遍认为软件架构是一种关注和描述软件系统整体组织结构和性能的抽象系统机制,为软件系统提供了一个结构、行为和属性的高级抽象,由构成系统的元素描述、这些元素的相互作用、指导元素集成的模式以及这些模式的约束组成   

    虽然软件系结构的概念早在20世纪80年代就已经提出,但真正引起关注和重视是在90年代。
    1992年,Ikwayne Perry和Ales Wolf定义:软件体系结构={元素,形式,准则}。软件体系结构是
由具有特定形式的体系结构元素或设计元素构成,包括处理元素、数据元素和连接元素。处理元素负责对数据进行加工,数据元素是被加工的信息连接元素把体系结构的不同部分组合连接起来。软件体系结构形式由专有特性和关系组成。而在多个体系结构方案中选择合适的体系结构方案往往基于一组

准则。这一定义注重区分处理元素、数据元素和连接元素,这一方法在其它的定义和方法中基本上得到保持。
    1993年 DavidW an和MaryS haw提出:软件体系结构=}组件,连接件,约束}。组件可以是一组代
码,如程序的模块;也可以是一个独立的程序,如数据库服务器。连接件可以是过程调用、管道、远程调用等,用于表示组件之间的相互作用。一个软件体系结构还包括某些约束,约束一般为对象连接时的规则或指明连接的势态和条件。软件体系结构是设计过程的一个层次,它处理那些超越算法和数据结构的设计,研究整体结构设计和描述方法。
    1994年 , Bass等人提出:体系结构设计至少应包括应用领域的功能分割、系统结构、结构的领域功能分配三个方面。
    1995年 , DavidG arlan和MaryS haw修正定义:软件体系结构包括系统组件的结构、组件的相互关系以及控制组件设计演化的原则和指导三个方面。
    1996 年 ,Kmchten指出,软件体系结构有四个角度:概念角度、模块角度、运行角度和代码角度。概念角度描述系统的主要组件及它们之间的关系;模块角度包含功能分解与层次结构;运行角度描述一个系统的动态结构;代码角度描述各种代码和库函数在开发环境中的组织。
    1997年 , Bass,Cl ements和KazTnan提出:软件体系结构包括组件、组件的外部可见性以及相互的关系。其中软件组件的外部可见性是指软件组件提供的服务、性能、特性、共享资源使用等。该定义强调体系结构分析需要从系统中抽象出用于分析、决策的信息。概括各种不同观点,可发现它们都支持这样的观点,即:软件体系结构包括系统总体组织、全局控制、通信技术、同步、数据存取、设计元素的功能、组织、规模、性能、设计方案的选择。





本博客为学习交流用,凡未注明引用的均为本人作品,转载请注明出处,如有版权问题请及时通知。由于博客时间仓促,错误之处敬请谅解,有任何意见可给我留言,愿共同学习进步。
posted on 2008-08-14 16:37 Jack.Wang 阅读(3148) 评论(7)  编辑  收藏

Feedback

# re: 软件架构的六个定义 2008-08-15 22:09 长江三峡
kuikui  回复  更多评论
  

# re: 软件架构的六个定义 2008-08-17 18:09 dell电脑
架构这个词我一直觉得是从港台移植过来的。  回复  更多评论
  

# re: 软件架构的六个定义 2008-08-18 09:02 Jack.Wang
一般学院派都叫体系结构,实用派都叫架构。有人考究过这两个用词有啥不同,其实是一个意思!英文都叫 software architecture  回复  更多评论
  

# re: 软件架构的六个定义 2008-08-19 13:10 rocket
鄙视这种文章,泛泛而谈,没有一点实际意义。
对于不同需求的系统资源会有不同的构架体系。
学校里就是喜欢搞这些浪费时间浪费精力浪费资源的东西!!  回复  更多评论
  

# re: 软件架构的六个定义 2008-08-19 13:26 ldd600
一个名词的概念,一个规范的定义都是很有意义的。  回复  更多评论
  

# re: 软件架构的六个定义 2008-09-12 21:39 Jack.Wang
所有软件开发方法都要解决从需求到实现之间的转换问题。基于体系结构的软件开发包含以下几个主要阶段:
1)通过对特定领域应用软件进行分析,提炼出其中的稳定需求和易变需求,建立可重用的领域模型。依据领域模型和用户需求,产生应用系统的需求规格说明。
2)在领域模型的基础上,根据需求规格说明提炼出特定领域的软件体系结构。这是系统的高层设计,其目标是通过重用领域体系结构库中已有的高质量的体系结构,或生成最适合该用户需求的体系结构,并加以提炼入库,以备将来的重用,并在此体系结构的指导下,把系统逐步分解成相应的组件和连接件,直至组件
和连接件可以被设计模式和面向对象方法处理为止。
3)这个阶段主要解决具体组件和连接件的设计问题。通过重用可重用组件库中模式、对象和其它可重用的设计件,或重新设计的组件,并提炼入库;然后通过具体的编程实现,就可得到可运行的程序  回复  更多评论
  

# re: 软件架构的六个定义 2008-09-13 10:38 Maggie
层级理论是构建复杂软件体系的基本原则
诺贝尔奖获得者赫伯特A.西蒙曾论述到:“要构造一门关于复杂系统的比较正规的理论,有一条路就是求助于层级理论⋯⋯我们可以期望,在一个复杂性必然是从简单性进化而来的世界中,复杂系统是层级结构的”。对于软件这样复杂的人造事务,发现层级和运用层级,是分析和构建的基本原则。粗略地观察一下软件表述方式(语言)的发展:从穿孔纸带(机器的语言)开始,首先是汇编语言,然后是高级语言,再往后有面向对象语言和所谓第四代语言(FGL)出现⋯⋯但每一代的语言并不是在“取代”前一代语言,而是用上一代语言来“写”下一代语言。在这个自然的进化过程中,西蒙所论述的复杂体系的层级特征清晰地出现了。进一步看,在由简单到复杂的进化道路上,软件的体系结构、软件开发的体系结构、软件开发工具的体系结构等等,都呈现出层级的特征。“好”的软件体系具有更加清晰的层级  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航: