zoukankan      html  css  js  c++  java
  • software Architecture(1)

    一.软件体系结构概论。

    1.SA定义:Architecture=Components+Connectors+Topology+Constraints+Performance

     (软件体系结构=构建+连接件+拓扑结构+约束+质量)

    2.构件(component)

    广义上讲,构件时具有某种功能的可复用的软件结构单元,是为组装服务的,是组成软件系统的计算单元或数据存储单元;严格意义上讲,构件时一种可部署单元,它具有规范的接口规约和显式的语境依赖,而接口功能由构件内部封装的服务来实现。

    3.接口(interface)与服务(service)

    构件作为一个封装实体,只能通过其接口与外部环境交互,表示了构件与外部环境的交互点。内部结构则被隐藏起来(black-box),一个构件至少有一个接口,一个构件可以提供多重接口,构件接口与其内部实现应严格分开。构件内部所实现的功能以服务的形式体现出来,并通过接口向外发布,进而产生与其他构件之间的关联。

    4连接(connection)

    连接:构件间建立和维护行为关联与信息传递的途径;需要两方面的支持:连接发生和维持的机制,和连接能够准确、无二义、无冲突惊醒的保证——连接正确有效的进行信息交换的规则(连接的协议),即机制(mechanism)和协议(protocol).

    计算机硬件提供了一切连接的物理基础:
    –中断、存储、堆栈、串行I/O、并行I/O、网络等;
    连接实现机制:
    –过程调用、回调、进程通讯、内存共享、同步/异步、远程过程调用、管道、消息传递、反射、动态链接、动态绑定、文件等;
    协议(Protocol)是连接的规约(Specification);
    连接的规约是建立在物理层之上的有意义信息形式的表达规定
    –对过程调用来说:参数的个数和类型、参数排列次序;
    –对消息传送来说:消息的格式;
    –对ODBC数据库连接来说:SQL语言;
    –对Web Service连接而言:SOAP或REST协议;
    目的:使双方能够互相理解对方所发来的信息的语义。
     
    5.连接件(connector)
    表示构件之间的交互并实现构件之间的连接,亦可以看作一类特殊的构件,不过连接件是负责完成构件之间信息交换和行为联系的专用构件。
    连接件有:管道(pipe)、中间件(Middleware)(ODBC/JDBC、应用服务器、WEB服务器、消息中间件)
     
    二.软件体系结构建模需求
    1.SA建模三层次:——图形化模型:SA模型的多模图表示
                          ——形式化模型:SA描述模型
                          ——文档化模型:SA文档化.
    2.4+1视图模型:(逻辑视图、进程视图、物理视图、开发视图、用例视图)
     
     

    3.用例视图(Use Case View)

    用例视图用来捕获最终用户所需求的功能性,即“系统应该做什么”;The use case view includes use case diagrams and typically uses several interaction diagarams  to show use case details.

    4.开发视图(Development View)

    主要侧重于软件模块的组织和管理。系统-子系统-模块(构件、文件、资源等)并组成层次结构,另一个焦点是描述各模块之间的依存关系——What components depend on what,what source files implement what classes,etc.实现视图要考虑软件内部的实现需求,如软件开发的容易性、软件的复用和软件的通用性,要充分考虑由于具体开发工具的不同而带来的局限性。在UML中,开发视图通常使用以下的图形表达形式-component diagrams(构件图)-package diagrams(包图)

    5.进程视图(Process View)

    进程视图侧重于系统的动态运行特性,主要关注一些非功能的需求:

    ——并发性、分布性、系统集成性和容错能力

    ——逻辑视图中的各个抽象概念如何在进程中被执行

    ——逻辑视图中各个类操作具体在进程中那个线程被执行

    在UML中进程视图通常使用Activity diagrams(活动图)和Sequence diagrams(次序图)来描述一个系统的运行时行为

    6.物理视图(Physical View)

    物理视图主要考虑如何把软件部署到硬件上,它通常要考虑系统性能、规模、可靠性等,结局软件系统设置、安装、系统部署后的物理拓扑结构、系统执行过程中的通讯问题等。在UML只能怪通常为部署图(Deployment diagrams)

    三. 架构设计案例

    1.系统需求说明

    §功能需求
    –用户管理:用户注册、用户验证、删除用户、用户信息修改等
    –存货管理:订书、到货接收、入库、修改库存、查询等
    –购物管理:购物、查看购物车、支付等
    –订单实现:处理订单、打包管理、配送、查询等
    §非功能需求
    –可扩展
    –可靠性
    –安全性
    –安全与法规
     
    2.用例视图的UML表示
     
    3.逻辑视图的UML表示-次序图
     

    4.逻辑视图的UML表示-类图

    5.逻辑视图的UML表示-活动图

    6.逻辑视图的UML表示-状态图

    7.实现视图的UML表示-构件图

    8.实现视图的UML表示-包图

    9.进程视图的UML表示-顺序图

    10.物理视图的UML表示-部署图

    以上均摘自  刘旭东

    刘旭东 软件体系结构课件cameran@hit.edu.cn

  • 相关阅读:
    const void *a 与 void *const a 的差别
    unity中的MonoBehaviour.OnMouseDown()
    ZooKeeper场景实践:(2)集中式配置管理
    也谈測试核心竞争力
    关于静态与动态编译arm平台程序的比較
    使用Nexus搭建企业maven仓库(二)
    cocos2dx手写js绑定C++
    HDU2037 今年暑假不AC 【贪心】
    Android的NDK开发(2)————利用Android NDK编写一个简单的HelloWorld
    Android的NDK开发(1)————Android JNI简介与调用流程
  • 原文地址:https://www.cnblogs.com/huhaibo/p/3390443.html
Copyright © 2011-2022 走看看