初识软件体系结构(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. 软件体系结构的优势
    容易理解
    重用
    控制成本
    可分析性

猜你喜欢

转载自blog.csdn.net/weixin_44997802/article/details/108859997