zoukankan      html  css  js  c++  java
  • 架构漫谈之预架构内容

    与构架有关的几个基本概念:  

    1、模块(module):一组完成指定功能的语句,包括:输入、输出、逻辑处理功能、内部信息、运行环境(与功能对应但不是一对一关系)。  

    2、组件(component):系统中相当重要的、几乎是独立的可替换部分,它在明确定义的构架环境中实现确切的功能。  

    3、模式(pattern):指经过验证,至少适用于一种实用环境(更多时候是好几种环境)的解决方案模板(用于结构和行为。在 UML中:模式由参数化的协作来表示,但 UML 不直接对模式的其他方面(如使用结果列表、使用示例等,它们可由文本来表示)进行建模。存在各种范围和抽象程度的模式,例如,构架模式、分析模式、设计模式和代码模式或实施模式。模式将可以帮助我们抓住重点。构架也是存在模式的。比如,对于系统结构设计,我们使用层模式;对于分布式系统,我们使用代理模式(通过使用代理来替代实际的对象,使程序能够控制对该对象的访问);对于交互系统,我们使用MVC(M模型(对象)/V视图(输出管理)/C控制器(输入处理))模式。模式是针对特定问题的解,因此,我们也可以针对需求的特点采用相应的模式来设计构架。  

    4、构架模式(architectural pattern):表示软件系统的基本结构组织方案。它提供了一组预定义的子系统、指定它们的职责,并且包括用于组织其间关系的规则和指导。  

    5、层(layer):对模型中同一抽象层次上的包进行分组的一种特定方式。通过分层,从逻辑上将子系统划分成许多集合,而层间关系的形成要遵循一定的规则。通过分层,可以限制子系统间的依赖关系,使系统以更松散的方式耦合,从而更易于维护。(层是对构架的横向划分,分区是对构架的纵向划分)。

     6、系统分层的几种常用方法:   1) 常用三层服务:用户层、业务逻辑层、数据层;   2) 多层结构的技术组成模型:表现层、中间层、数据层;   3) 网络系统常用三层结构:核心层、汇聚层和接入层;   4) RUP典型分层方法:应用层、专业业务层、中间件层、系统软件层;   5) 基于Java的B/S模式系统结构:浏览器端、服务器端、请求接收层、请求处理层;   6) 某六层结构:功能层(用户界面)、模块层、组装层(软件总线)、服务层(数据处理)、数据层、核心层;  

    7、构架(Architecture,愿意为建筑学设计和建筑物建造的艺术与科学): 在RUP中的定义:软件系统的构架(在某一给定点)是指系统重要构件的组织或结构,这些重要构件通过接口与不断减小的构件与接口所组成的构件进行交互;《软件构架实践》中的定义:某个软件或者计算系统的软件构架即组成该系统的一个或者多个结构,他们组成软件的各个部分,形成这些组件的外部可见属性及相互间的联系;IEEE 1471-2000中的定义:the fundamental organization of a system emboided in its components,their relationships to each other,and to the enviroment and the principles guiding its design and evolution,构架是系统在其所处环境中的最高层次的概念。软件系统的构架是通过接口交互的重要构件(在特定时间点)的组织或结构,这些构件又由一些更小的构件和接口组成。(“构架”可以作为名词,也可作为动词,作为动词的“构架”相当于“构架设计”)  

    8、构架的描述方式:“4+1”视图(用例视图、设计视图、实现视图、过程视图、配置视图)是一个被广为使用的构架描述的模型;RUP过程的构架描述模板在“4+1”视图的基础上增加了可选的数据视图(从永久性数据存储方面来对系统进行说明);HP公司的软件描述模板也是基于“4+1”视图。

    9、结构:软件构架是多种结构的体现,结构是系统构架从不同角度观察所产生的视图。就像建筑物的结构会随着观察动机和出发点的不同而有多种含义一样,软件构架也表现为多种结构。常见的软件结构有:模块结构、逻辑或概念结构、进程或协调结构、物理结构、使用结构、调用结构、数据流、控制流、类结构等等。

    架构 =“模块” +“接口”

    4个核心主张:

    方法体系是大趋势 质疑驱动的架构设计 多阶段与多视图 内置最佳实践

    架构设计的方法体系:

    3个阶段,1个贯穿环节: “Pre-architecture”阶段(简称PA阶段) “Conceptual Architecture”阶段(简称CA阶段) “Refined Architecture”阶段(简称RA阶段) 对非功能目标的考虑贯穿整个过程

    阶段一:把握需求特点,确定架构驱动力 阶段二:根据重大需求,确定概念架构 阶段三:细化架构设计,关注不同视图

    Pre-architecture阶段:架构实践中最常见的的最短板 Conceptual Arch阶段:大型系统成败关键 Refined Arch阶段:团队大规模并行开发基础

    分析约束影响架构的基本原理:直接制约、转化为功能或质量需求。

    倡导的需求过程: 第1步:需求结构化 第2步:分析约束影响 第3步:确定关键质量 第4步:确定关键功能

    需求结构化的必要性:理解需求过去零散,难以把握需求关系。

    第1步:需求结构化(大型B2C网站Amazon案例):

    确定关键质量与关键功能:

    确定关键质量5大原则 分类合适+必要扩充(ISO9126的可靠性需要进行扩充)

    确定关键质量5大原则 考虑多方涉众 用户不仅关注功能,同时也需要质量,用户关注的质量可能包括易用性、性能、持续可用性、鲁棒性等 客户不一定是最终用户,比如超市销售系统的客户是超市老板,但最终用户可能是收银员或上货员,他们所关注的质量属性可能不一致

    确定关键质量5大原则 检查性思维 随时检查各个质量属性,看看每一项是否确实算不上“关键质量”,从而防止遗漏关键需求。

    确定关键功能的4条规则 核心功能 必做功能 高风险功能 独特功能(覆盖上述未覆盖的职责)。

    参考资料

    1. 温昱. 一线架构师实践指南[M]. 北京:电子工业出版社, 2011.
  • 相关阅读:
    FZU 2098 刻苦的小芳(卡特兰数,动态规划)
    卡特兰数总结
    FZU 1064 教授的测试(卡特兰数,递归)
    HDU 4745 Two Rabbits(区间DP,最长非连续回文子串)
    Java 第十一届 蓝桥杯 省模拟赛 正整数的摆动序列
    Java 第十一届 蓝桥杯 省模拟赛 反倍数
    Java 第十一届 蓝桥杯 省模拟赛 反倍数
    Java 第十一届 蓝桥杯 省模拟赛 反倍数
    Java 第十一届 蓝桥杯 省模拟赛 凯撒密码加密
    Java 第十一届 蓝桥杯 省模拟赛 凯撒密码加密
  • 原文地址:https://www.cnblogs.com/maxin123/p/11021698.html
Copyright © 2011-2022 走看看