【系统架构设计师】第1章 绪论(学习笔记)

【系统架构设计师】第1章 绪论(学习笔记)

1.前言:

系统架构设计师:是项目开发活动中的关键角色之一。
系统架构:它是系统一种整体的高层次结构表示,是系统的骨架1和根基,其决定了系统的健壮性2生命周期3的长短。
本章主要内容:首先从架构定义、发展历程、典型架构和未来发展的方面概要说明,先建立一个架构的整体概念;然后对系统架构设计师的定义、职责、范围和工作内容等进行说明。

2.系统架构概述:

第一台计算机的诞生:1946年世界上第一台计算机,正式名称为:电子数字积分器和计算机
冯·诺依曼4结构计算机:提出”离散变量自动电子计算机“它是由运算器控制器存储器输入和输出设备五部分组成。
系统架构概述5:随着各种技术的不断发展,信息系统的规模越来越大、复杂度越来越高、系统的结构显得越来越重要;如果在搭建系统时未能设计出优良的结构,势必会导致系统的可靠性、安全性、可移植性、可扩展性、可用性和可维护性等方面产生重大影响;因此系统架构(System Architecture)是系统一种整体的高层次结构表示,是系统的骨架和根基,也决定了系统健壮性和生命周期的长短。系统架构设计师是承担系统架构设计的核心角色,他不仅是连接用户需求和系统进一步设计与实现的桥梁,也是系统开发早期阶段质量保证的关键角色。

3.系统架构的发展历程:

系统架构的定义:源于IEEE 1471-2000:“IEEE’s Recommand Practice for Architectural Description of Software-Intensive System.”标准,本标准主要针对软件密集系统进行了架构描述,其对架构的定义如下:

1.架构是体现在组件中的一个系统的基本组织、它们彼此的关系与环境的关系及指导它的设计和发展的原则。
2.系统6是组织起来完成某一特定功能或一组功能的组件集。
3.环境是决定了对这个系统的开发、运作、政策以及会对系统造成其他影响环境和设置。
4.任务是由一个或多个利益相关者通过系统达到一些目标的系统的一个用途或操作。

系统架构(System Architecture)是系统一种整体的高层次结构表示,是系统的骨架和根基,支撑和链接各个部分,包括组件、连接件、约束规范以及指导这些内容设计与演化的原理,它是刻画系统整体抽象结构的一种手段。我们通常把架构设计作为系统开发过程中需求分析阶段的最后一个关键步骤,也是系统设计前的不可或缺工作要点之一,架构设计的作用主要包括以下几点:

1.解决相对复杂的需求分析问题;
2.解决非功能属性在系统占据重要位置的设计问题;
3.解决生命周期长、扩展性需求高的系统整体结构问题;
4.解决系统基于组件需要的集成问题;
5.解决业务流程再造难的问题。

发展历程可追朔到20世纪60年代中期爆发的一场大规模软件危机,其突出表现是软件生产不仅效率低,而且质量差。为了解决软件危机,北大洋公约组织(NATO)分别于1968年和1969年连续召开两次著名的软件会议(即NATO会议),提出了软件工程的概念,发展了软件工程的理论和方法,为今后软件产业的发展指明了方向。

但随着软件规模的进一步扩大和软件复杂性的不断提高,新的危机再次出现。1995年Standish Group研究机构以美国境内8000个软件工程项目为调查样品,发现有84%项目无法按需完成,超过30%项目夭折,预算超支189%,软件工程遭遇了前所未有的困难。

通过避免软件开发中重复劳动的方式提升软件开发效率并保障软件质量,软件重用与组件化成解决此次危机的有效方案。随着软件组件化开发方式的发展,如何在设计阶段对软件系统进行抽象,获取蓝图以支持系统开发中决策成为迫切而实现的问题,分析问题的根源和产生的原因,以下现象应该获得关注:

1.软件复杂、易变,其行为特征难以预见,软件开发过程中需求和设计之间缺乏有效的转换,导致软件开发过程困难和不可控。
2.随着软件系统的规模越来越大、越来越复杂,整个系统的结构和规格说明就显得越来越重要。
3.对于大规模的复杂软件系统,相较于对计算机算法和数据结构的选择,系统的整体结构设计和规格说明已经变得明显重要许多。
4.对软件系统结构的深入研究将会成为提高软件生产率和解决软件维护问题的最有希望的新途径。

20世纪90年代,研究人员展开了对软件架构的基本研究,只要集中于架构风格(模式)、架构描述语言、架构文档和形式化方法。

软件架构的四个发展阶段

1.基础研究阶段(1968–1994年)
2.概念体系和核心技术形成阶段(1999–2000年)
3.理论体系完善与发展阶段(1996–至今)
4.普及应用阶段(2000–至今)

模块化开发方法这种开发方法是处于第一发展阶段,是指把一个待开发的软件分解成若干个小的而且简单的部分,采用复杂事物分而治之的经典原则。模块化开发方法涉及的主要问题是模块化设计的规则,即系统如何分解成模块。将系统分解成模块时,应遵循6项规则,如下:

1.最高模块内聚7
2.最低耦合8
3.模块大小适度9
4.模块调用链深度(嵌套层次)不可过多。
5.接口简单、精炼(扇入扇出数不宜太大),具有信息隐蔽能力。
6.尽可能地复用已有模块。


  1. 骨架是指一个应用程序或软件系统的基本结构、框架或架构,它定义了应用程序的核心组件和模块之间的关系。骨架通常是应用程序的静态部分,在应用程序的开发过程中一般会被设计和实现。 ↩︎

  2. 系统的健壮性是指系统在面对各种异常情况时,仍然能够保持稳定、正确地运行的能力。一个健壮的系统能够处理各种错误输入、数据损坏、硬件故障等问题,不会崩溃或奔溃,并能够正确地给出反馈 ↩︎

  3. 生命周期是指一个应用程序或软件系统的整个生存期,从规划、设计、开发、测试到发布、运营、维护和淘汰等各个阶段。生命周期包括了应用程序的所有动态部分,从开发者和用户的角度来描述和管理应用程序。 ↩︎

  4. 冯诺依曼体系结构,也称为普通式结构,这是一种广泛使用的计算机硬件架构,被应用于现代计算机的设计和实现。 ↩︎

  5. 系统架构是指构成系统的要素之间相互联系、相互作用的方式和秩序。它是系统联系的全体集合,层次要比系统要素和联系更高,系统内每一要素与联系的变化都会引起系统结构的变化。系统架构的形式是多种多样的,具有多维性。通常有时间结构、空间结构和时空结构等。在计算机科学中,计算系统架构是指计算机硬件系统的结构,包括存储器、算数逻辑单元、控制单元和输入输出单元等组成部分。其中,存储器用来存储数据和程序,算数逻辑单元用来进行计算和逻辑操作,控制单元用来对存储器、算数逻辑单元、输入输出等子系统的操作进行控制,输入输出单元用来与外部设备进行数据交换。 ↩︎

  6. 系统这个术语包括了单独的应用程序、传统意义上的系统、子系统、系统之系统、产品线、整个企业及感兴趣的其他集合。系统用于完成其环境中的一个或多个任务。 ↩︎

  7. 也就是在一个模块内部的元素最大限度地关联,只实现一种功能的模块是高内聚,具有三种以上功能的模块则是低内聚的。 ↩︎

  8. 也就是不同模块之间的关系尽可能弱,以利于软件的升级和扩展。 ↩︎

  9. 颗粒过大会造成模块内部维护困难,而颗粒过小又会导致模块间的耦合度增加。 ↩︎

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值