美文网首页
设计软件

设计软件

作者: begonia_rich | 来源:发表于2018-04-28 17:09 被阅读8次

1架构驱动力
如何理解架构驱动力?架构是由什么东西驱动的,驱动架构的成型因素就是架构驱动力
功能需求,质量属性(非功能需求),约束(外界的限制,如:技术选型,部署平台),原则(为了将一致性和清晰度引入代码库而采用的原则或架构的原则),理解影响(根据特定的目标和语境,作出最优解)

软件架构谈论的是最重要的设计决策,其重要性以变动的成本来衡量。

2质量属性(非功能需求)
非功能需求一般被看作“能力”,主要跟服务质量有关
性能(快慢),可伸缩性(相同的时间内处理更多的请求),可用性(9的个数指正常运行时间的百分比),安全性,灾难恢复,可访问性(残疾人也能访问),检测(心跳/告警),管理,审计(系统数据的修改记录),灵活性,可拓展性,可维护性(很难量化,不如遵循架构开发原则靠谱),法律法规,国际化,本地化

网上找的可用性图

可用性和9的关系,5个9五分钟,6个9三十一秒,3个9八小时
计算公式:全年不可用时间=99.999几个看你的99% * 365 *时间单位

3处理非功能需求
捕获,提炼,量化非功能需求,给出书面的表示,这样就可以检验和测试。不能只是简单的口头描述

4约束
只要是现实世界都有约束。
时间和预算的约束,技术约束(可用的技术清单,现有系统的互操作性,目标部署平台等),人员约束,组织约束。
约束可以划分优先级,并且是可商量的。。
软件架构角色的一部分就是找出这些约束,搞清楚为什么会被强加进来,让它们帮助塑造你的软件架构。

5原则
约束是强加于你的,而原则是你为了将标准方法和一致性引入构建软件的方式而采用的。
开发原则(编码标准规范,自动化测试,静态分析工具等),架构原则(分层策略比如mvc,高内聚低耦合,无状态,充血与贫血)

谨防最佳实践,虽然最佳实践是行动的指导,但是也并不是最完美的,一定要是按照具体的语境处理问题

6技术不是实现细节
如果你不明白选择X技术而非Y的权衡,那就不应该做决策!技术不只是一个“实现细节”你做出的技术决策跟你分解,安排和设计软件系统的方式重要!

7更多分层等同于更高复杂度
分层越多,系统越松散,同时带来了复杂度的提升。需要根据实际的项目需要进行分层。

8协同设计是一把双刃剑
我们给出的策略都是基于自己已有知识,经验和喜好给出的。沟通然后达成共识,这才是最好的方式。

9软件架构是对话的平台
软件设计过程是一个交流的平台。

相关文章

  • P1设计模式简介

    软件设计的目标: 什么是好的软件设计?软件设计的金科玉律:复用! 常用的软件设计方法: 分解(分而治之) VS ...

  • Java面向对象设计模式总结之二设计原则

    一. 软件设计模式 1. 什么是软件设计模式? 软件设计模式(Software Design Pattern),又...

  • 设计模式(一)设计模式基本概念

    设计模式基础 软件设计模式的概念 软件设计模式( Software Design Pattern ),又称设计模式...

  • 设计模式概述

    一、设计模式简介 软件设计模式的概念:软件设计模式(Software Design Pattern),又称设计模式...

  • 原型工具

    - licecap(屏幕录制演示软件) - flinto(原型图设计软件) - 魔刀(原型图设计软件) -Sket...

  • 简说设计模式之设计模式概述

    一、软件设计模式的概念与意义 1. 软件设计模式的概念 软件设计模式(Software Design Patter...

  • EDA相关知识

    1、EDA工具软件分类 1)芯片设计辅助软件2)可编程芯片辅助设计软件3)系统设计辅助软件 2、国内现状 目前进入...

  • UI的分类有哪些

    Ui的分类有很多种,软件UI设计(界面设计包括硬件界面设计和软件界面设计,我们这里探讨的是软件界面设计)包括命令语...

  • 软件测试基本常识整理

    一,软件测试对象: 软件概要设计 软件详细设计 软件运行环境 可运行的程序 软件源代码 软件需求 二,五大要素和两...

  • 软件详细设计

    title: 软件详细设计说明date: 2021-01-26tags: [详细设计, 软件设计]categori...

网友评论

      本文标题:设计软件

      本文链接:https://www.haomeiwen.com/subject/duaglftx.html