热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

架构分析

一、架构分析架构分析是在功能性需求过程中,有关识别非功能性需求的活动,事实上非功能需求就是质量需求,这些信息对于架构设计来说,

一、架构分析
架构分析是在功能性需求过程中,有关识别非功能性需求的活动,事实上非功能需求就是质
量需求,这些信息对于架构设计来说,是最值得关注的。
1,架构分析需要解决的问题
下面说明在架构级别上,需要解决的诸多问题的一些示例:
可靠性和容错性需求是如何影响设计的?
购买的子组件的许可成本将如何影响收益?
分布式服务如何影响有关软件质量需求和功能需求的?
适应性和可配置性是如何影响设计的?
2.架构分析的一般步骤
架构分析有多种方法,大多数方法都是以下步骤的变体。
辨识和分析影响架构的非功能性需求。
对于那些具有重要影响的需求而言,分析可选方案,并做出处理这些影响的决定,这就是架
构决策
二、识别和分析架构因素
1,架构因素
2,质量场景
3,架构因素的描述
架构分析的一个重要目标,是了解架构因素的影响、优先级和可变性(灵活性以及未来
演变的直接需要)。因此,大多数架构方法,都提倡对以下信息建立一个架构因素表。
因素 测量和质量场景 可变性(当前灵活性和未来演化) 因素(和其变化)对
客户的影响,架构和
其它因素



困难
或风

可靠性 --- 可恢复性

远 程
服 务
失 败
中 恢
复。
当远程服务失败
的时候,侦听到远程
服务重新在线的一
分钟内,重新与之建
立联系,在产品环境
下实现正常的存储
装载。
当前灵活性—我们的 SME 认为
直到重新建立连接前,本地客户简
化的服务是可以接受的(也是可取
的)。
演化—在 2 年之内,一些零售商
可能选择支付本地完全复制远程服
务的功能(如税金计算器)。可能
性?高。
对大规模设计影
响大。
零售商确实不愿
意远程服务失败,因
为这将限制或阻止
它们使用 POS 进行
销售。
高 低
…… …… …… ……
注:SME 表示主题专家。
4,从需求文档中获取架构因素
在架构设计中,中心功能需求库就是用例,它的构想和补充规范,都是创建因素表的重
要源泉。在用例中,特殊需求、技术变化、未决问题应该被反复审核。其隐含或者清晰的架
构因素要被统一整理到补充规范里面去。
三、架构因素的解析
架构设计的技巧就是根据权衡、相互依赖关系和优先级对架构因素的解决做出合适的选
择。但这还不全面,老练的架构师具有多种领域的知识(例如:架构样式和模式、技术、产
品、缺陷和趋势),并且能把这些知识应用在它们的决定中。
1,记录架构的可选方案、决定和动机
技术备忘录的格式并不重要,关键是简单、清楚、表达信息完整。
技术备忘录
问题:可靠性---从远程服务故障中恢复
解决方案概要:通过使用查询服务实现位置透明,实现从远程到本地的故障恢复和本地服务的部分复制
架构因素
从远程服务中可靠恢复
从远程产品数据库的故障中可靠恢复
解决方案
在服务工厂创建一个适配器……
动机
零售商不想停止零售活动……
遗留问题

考虑过的备选方案
与远程服务厂商签订“黄金级”服务协议……
2,优先级
下面是指导做出架构决定目标:
不可改变的约束,包括安全和法律方面的事务
业务目标
其它全部目标
四、模块化设计策略
1,模块化设计的概念
也就是说,模块并不是越多越好,只有模块数量适当的时候,总体成本才可能下降。
2.实现模块化的手段
抽象:抽出事物的本质特性而暂时不考虑它们的细节。
信息隐蔽:应该这样设计和确定模块,使得一个模块内包含的信息(过程和数据)
对于不需要这些信息的模块来说,是不可访问的。
模块独立性问题:
模块独立是指开发具有独立功能而且和其它模块之间没有过多的相互作用的模块。
模块独立的意义:
1)功能分割,简化接口,易于多人合作开发同一软件;
2)独立的模块易于测试和维护。
模块独立程度的衡量标准:
1)耦合性:对一个软件结构内不同模块间互连程度的度量。
2)内聚性:标志一个模块内各个处理元素彼此结合的紧密程度,理想的内聚模块只
做一件事情。
3,模块化设计的一般准则
1)改进软件结构,提高模块独立性。
2)模块规模应该适中(最好能写在一页纸上)。
大模块分解不充分;小模块使用开销大,接口复杂。
3)尽量减少高扇出结构的数目,随着深度的增加争取更多的扇入。
扇出过大意味着模块过分复杂,需要控制和协调过多的下级模块。一般来说,顶层扇出
高,中间扇出少,低层高扇入。
4)模块的作用范围保持在该模块的控制范围内。
模块的作用范围是指该模块中一个判断所影响的所有其它模块;模块的控制范围指该模
块本身以及所有直接或间接从属于它的模块。
5)力争降低模块接口的复杂程度
模块接口的复杂性是引起软件错误的一个主要原因。接口设计应该使得信息传递简单并
且与模块的功能一致。
6)设计单入口单出口的模块
避免内容耦合,易于理解和维护。
7)模块的功能应该可以预测
相同的输入应该有相同的输出,否则难以理解、测试和维护。


推荐阅读
  • Java工程师书单(初级,中级,高级)
    简介怎样学习才能从一名Java初级程序员成长为一名合格的架构师,或者说一名合格的架构师应该有怎样的技术知识体系,这是不仅一个刚刚踏入职场的初级程序员也是工作一两年之后开始迷茫的程序 ... [详细]
  • 从高级程序员到CTO的4次能力跃迁!如何选择适合的技术负责人?
    本文讲解了从高级程序员到CTO的4次能力跃迁,以及如何选择适合的技术负责人。在初创期、发展期、成熟期的每个阶段,创业公司需要不同级别的技术负责人来实现复杂功能、解决技术难题、提高交付效率和质量。高级程序员的职责是实现复杂功能、编写核心代码、处理线上bug、解决技术难题。而技术经理则需要提高交付效率和质量。 ... [详细]
  • 本文介绍了互联网思维中的三个段子,涵盖了餐饮行业、淘品牌和创业企业的案例。通过这些案例,探讨了互联网思维的九大分类和十九条法则。其中包括雕爷牛腩餐厅的成功经验,三只松鼠淘品牌的包装策略以及一家创业企业的销售额增长情况。这些案例展示了互联网思维在不同领域的应用和成功之道。 ... [详细]
  • {moduleinfo:{card_count:[{count_phone:1,count:1}],search_count:[{count_phone:4 ... [详细]
  • 【回顾】聚焦DTCC | 巨杉数据库与您相约DTCC 数据库技术大会
    2018年5月10-12日,第九届中国数据库技术大会(DTCC2018)将以“数领先机•智赢未来”为主题,设定2大主会场及20个技术专场,邀请来自国内外互联网、金融、教育等行业百余 ... [详细]
  • 朱晔的互联网架构实践心得S1E7:三十种架构设计模式(上)【下载本文PDF进行阅读】设计模式是前人通过大量的实践总结出来的一些经验总结和最佳实践。在经过多年的软件开发实践之后,回过头 ... [详细]
  • Unit4博客&课程总结Unit4作业的架构设计本单元作业的设计我分为了三个模块处理:模型构建+预处理+任务函数,前两部分即为整个图的完整构建,第三部分即为实现题目要求的查询方法。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • Unity3D引擎的体系结构和功能详解
    本文详细介绍了Unity3D引擎的体系结构和功能。Unity3D是一个屡获殊荣的工具,用于创建交互式3D应用程序。它由游戏引擎和编辑器组成,支持C#、Boo和JavaScript脚本编程。该引擎涵盖了声音、图形、物理和网络功能等主题。Unity编辑器具有多语言脚本编辑器和预制装配系统等特点。本文还介绍了Unity的许可证情况。Unity基本功能有限的免费,适用于PC、MAC和Web开发。其他平台或完整的功能集需要购买许可证。 ... [详细]
  • ElasticSerach初探第一篇认识ES+环境搭建+简单MySQL数据同步+SpringBoot整合ES
    一、认识ElasticSearch是一个基于Lucene的开源搜索引擎,通过简单的RESTfulAPI来隐藏Lucene的复杂性。全文搜索,分析系统&# ... [详细]
  • 软件测试工程师,需要达到什么水平才能顺利拿到 20k+ 无压力?
    前言最近看到很多应届生晒offer,稍有名气点的公司给出的价格都是一年30多W或者月薪20几k,相比之下工作几年的自己薪资确实很寒酸.根据我自己找工作经历,二线城市一般小公司招聘 ... [详细]
  • 博客_2018年博客总结
    本文由编程笔记#小编为大家整理,主要介绍了2018年博客总结相关的知识,希望对你有一定的参考价值。前言     ... [详细]
  • Spring MVC 浅谈
    大学时写的的文章,当时文章水平略差,大家见谅。MVC这个词儿,最早的定义应该是作为一种软件架构设计模式出现在软工里面的,即使用model、view、controller来设计及定 ... [详细]
  • 技术研发团队管理计划方案书
    目录第一部分序目标第二部分团队建议一小组划分第三部分小组计划一小组任务管理二小组工作氛围1组员能力成长3组员幸福感提升三小组工作协同四小组建设规划第四部分20 ... [详细]
  • 物联网应用介绍
    •物联网的研究背景(概念|本质|特征|发展现状)       物联网是新一代信息技术的高度集成和综合运用,已成为全球新一轮科技革命与产业变革的核心驱动和经济社会绿色、智能、可持续发 ... [详细]
author-avatar
龙love猫
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有