初识软件体系结构(1-4课时)

前四个课时的内容是“软件体系结构概述”。
LW老师的讲课带劲,逻辑性强,也接地气,节奏不快不慢,很nice~

  1. 软件架构师
    这门课最对口的职业是软件架构师,软件架构师是工作在项目经理和程序员之间,既要懂需求,又要懂技术。一边领着高收入,一边也要承担高风险。一个建筑工程失败,首先被问责的一定是包工头和建筑设计师,不会是某个建筑工人。同样,一个软件项目失败,最先被找的一定是项目经理和架构师。与建筑领域不同的是,一个建筑工人不会因为搬砖又快又好就成为建筑设计师,而一个软件架构师必须成长于一线程序员,起码有几年的项目经验。
    有句话说,架构师要做的就是让编程从问答题变成选择题。

  2. 软件体系结构的意义
    要想真正明白一个东西的好,得失去了才行。如果没有体系结构,软件工程会是什么样子句话说,软件项目越大,编程开始得越早,死得越快。可想而知,当一件事已经大到称为工程,不做设计就开始施工,必然是一种冒险。体系结构真是为填补从需求到实现之间的鸿沟应运而生。

  3. 本门课程涉及的内容
    软件体系结构+UML统一建模语言+软件设计模式
    其中软体对应SDLC中的概要设计和部分详细设计(例如算法就不包括在其中)
    UML是手段,软件架构师需要以一种规范的方式将架构传达给别人。
    设计模式是经过前人总结的精华,但是滥用还不如不用,真正实用设计模式的高手可以达到这样的境界:也不知道用了什么设计模式,只知道现在方案是最好的。一翻书发现用了很多设计模式。

  4. 软件体系结构的定义
    其实业界还没有统一的定义,下面提一些认可度高的。
    软体的创始人给出的定义:
    Mary Shaw和David Garlan认为软件体系结构包括构成系统的设计元素的描述,设计元素的交互,设计元素组合的模式,以及在这些模式中的约束。

  5. 软件体系结构三要素
    三要素:构件,连接件,约束。
    即3C:component,connector,constraint。
    5.1 构件
    可预制(提前设计好)和可重用(重要目的)的软件部件,指计算单元和数据存储单元,可以是一个处理过程或数据元素。
    计算单元可以是数据库里的一张表,也可以是整个数据库。
    构建可以小到一个类,大到一个子系统。
    特点:可大可小可复用。
    5.2 连接件
    用来建模:构件与构件之间的相互作用,控制这些相互作用的规则。
    最简单的连接件是类与类之间的互相调用。
    简单相互作用:
    过程的调用
    访问共享变量
    复杂和语义相关的相互作用:
    客户端-服务器协议
    数据库访问协议
    异步事件的多点传送
    管道数据流
    5.3 约束
    描述了体系结构的配置和拓扑要求,配置或拓扑是指构件和连接件组成的一个连接图。该连接图用于描述软件体系结构的构成,确定构件和连接件之间的连接关系:
    正确的连接性
    并发和分布性
    符合设计的启发式和风格规则

  6. 软件体系结构的优势
    6.1. 容易理解
    所谓一图抵千言
    ①它从一个高层设计的抽象层次来表征一个系统
    简化了我们理解庞大系统的能力
    6.2.重用
    ①重用大的构件
    ②重用一些集成构件的框架
    ③特定领域的软件体系结构
    (像银行系统侧重安全性,医疗系统侧重可靠性和稳定性)
    ④设计模式(设计模式诞生之初就是为了重用)
    6.3.控制成本
    容易想到,理解越深入,控制越精准
    系统维护者可以更好的理解变更带来的影响,因而可以更加精确的估算变更所需的成本。
    6.4.可分析性
    ①对系统的一致性检查提供高层次的视图
    ②研究系统是否与某种体系结构风格相符合
    ③对符合特定风格的特定领域系统的体系结构分析
    ④分析依赖于其中的构件

来源:CSU迦叶

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年8月25日
下一篇 2020年8月25日

相关推荐