zoukankan      html  css  js  c++  java
  • UML-架构分析-基础

    1、何时开始架构分析?

    最好在第一次迭代前开始。因为,架构分析的失败会导致高风险。如:必须支持英语、在一秒响应时间内支持500个并发事务。
    UP是迭代和进化的(不是瀑布式的),所以架构分析和开发工作齐头并进,一旦高风险问题没提前提出,优先级不高,会导致高风险。

    2、变化点&进化点

    变化点:原来没想到,新加或修改或删除的。如:必须支持多个税金计算接口
    进化点:原来想到了,今后可能会发生。

    这2点会导致架构设计中,事先决定好采用何种设计模式。例如:对于变化点,采用Decorator等适合的模式;对于进化点,事先设计设计模式,如多个税金接口可采用Facade、Strategy等模式。

    总体原则就是,面向接口编程,做到未雨绸缪。对于变化点,不知道以后会发生什么变化,因此更要面向接口编程,利于以后的扩展实现。我认为:

    只针对核心业务或复杂业务设计接口即可

    3、什么是架构分析?

    是在功能性需求(例如处理销售等)的语境中,识别解决系统非功能性需求(如安全需求)的活动。包括识别变化点和最具可能性的进化点。

    常见问题:

    1)、可靠性容错需求如何影响设计?如:那个一个远程服务(如:税金计算器)需要容错到本地?为什么?本地与远程的差异在哪儿?

    2)、技术选型,采用开源构件还是收费的?

    3)、可适应性和可配置性需求如何影响设计?如:客户可能经常改什么参数值?业务规则是否经常变化?从而决定配置参数是否写入配置文件中,是否采用规则引擎实现动态业务。

    4、架构分析的步骤是什么?

    第一步:识别和分析对架构有影响的非功能性需求(架构因素)。架构因素,参见《FURPS+与补充性规格说明

    初始阶段:在补充性规格说明或用例中粗略的记录部分此类需求。
    细化阶段早期:更仔细的对这些需求做调查

    第二步:解决以上非功能性需求。(架构决策)

    A、删除需求
    B、定制解决方案
    C、终止该项目
    D、雇佣一个专家
  • 相关阅读:
    P7003 [NEERC2013]Hack Protection
    P6753 [BalticOI 2013 Day1] Ball Machine
    笛卡尔树-P2659 美丽的序列
    [省选联考 2020 A/B 卷] 冰火战士
    CF1166E The LCMs Must be Large
    线段树标记永久化模板
    zoj 2112 单点修改的主席树(树状数组套主席树)
    poj 2104 无修改主席树
    python中map的排序以及取出map中取最大最小值
    python之禅
  • 原文地址:https://www.cnblogs.com/yaoyuan2/p/11490493.html
Copyright © 2011-2022 走看看