[架构之路-98]:《软件架构设计:程序员向架构师转型必备》-8-确定关键性需求与决定系统架构的因素

news2024/9/17 8:28:57

第8章 确定关键性需求

是什么决定了软件系统的架构?!

没有大的争议的是:需求决定了软件系统的架构!

那么什么样的需求对软件系统的架构影响最大?

8.1 众说纷纭——什么决定了架构

8.1.1 用例驱动论:功能性需求

用例用图形的方式展现了:站在系统之外,软件系统提供的所有的功能性需求。

因为需求决定架构,因此,有相当多的人认为,用例决定了软件系统的架构。

8.1.2 质量决定论:非功能性需求

作者的观点:没有功能性需求,非功能性需求何以立足?

8.1.3 经验决定论

8.2 真知灼见——关键需求决定架构

关键性需求包括:

  • 关键性功能性需求

  • 非功能性需求

  • 约束条件

8.2.1 “目标错误”比“遗漏需求”更糟糕

错误的质量目标会导致错误的架构设计。为了克服这个问题,需要采用新的方法来确定软件的架构。

8.2.2 关键需求决定架构,其余需求验证架构

架构设计要同时考虑

  • 关键性功能性需求

  • 关键性质量需求

  • 关键性约束条件

关键性需求的特征:

  • 风险大

  • 性能要求高

  • 核心需求

8.3 付诸行动——如何确定关键需求

对于前者:在不同质量目标中取得平衡

对于后者:选择核心的需求、关键性的需求。

8.3.1 确定关键质量要求

8.3.2 确定关键功能要求

8.3.3 确定关键约束条件

没有用例都有自己的约束条件,关键需求的约束条件,就是关键性约束条件。

8.4 实际应用(6)——小系统与大系统的架构分水岭

8.4.1 架构师的“拿来主义”困惑

8.4.2 场景1:小型PMIS(项目型ISV背景)

8.4.3 场景2:大型PM Suite(产品型ISV背景)

8.4.4 场景3:多个自主产品组成的方案(例如IBM)

8.4.5 “拿来主义”虽好,但要合适才行

备注:

不同的目标系统,关键性需求是不相同的。

需要根据自身的需求,重新定制化自己的关键性需求,而不是一味地拿来主义。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/197353.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

算法训练营 day30 回溯算法 组合总和 组合总和II 分割回文串

算法训练营 day30 回溯算法 组合总和 组合总和II 分割回文串 组合总和 39. 组合总和 - 力扣(LeetCode) 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组…

简易三子棋游戏实现

哈喽小伙伴们大家好,我们一起学习三子棋游戏的创建吧。在开始之前我们先来复习一下,函数声明放在头文件中函数定义放在源文件中。那么什么是函数声明和函数定义呢?所谓函数声明就是说明函数的返回参数,函数类型,函数名…

基于PHP的图书管理系统

摘要网络技术给生活带来了十分的便利。所以把图书管理与现在网络相结合。在图书馆发展的整个过程中,图书担负着最重要的角色。为满足如今日益复杂的管理需求,各类管理系统程序也在不断改进。本课题所设计的图书管理系统,使用B/S架构&#xff…

C++之this指针

this指针到底是什么?this 实际上是成员函数的一个形参,在调用成员函数时将对象的地址作为实参传递给 this。不过 this 这个形参是隐式的,它并不出现在代码中,而是在编译阶段由编译器默默地将它添加到参数列表中。我们操作一个对象…

Hadoop配置手册1:hadoop环境搭建与测试

Hadoop配置手册1 Date: September 25, 2022 第1章 hadoop环境搭建 1.1 安装Vmware软件 下载地址:https://www.onlinedown.net/soft/45831.htm 运行安装程序,并连续点击下一步安装 输入密钥,启动程序 详细参考:https://blog.csd…

2023年19个数学建模竞赛重磅来袭!!!

更新时间:2022年2月3日 本人的团队全是计算机的研究生,从本科到研究生有丰富的打比赛和数模的经验,有需要指导的,请私信我 相关链接 (1)【数学建模】2022年整年所有数学建模竞赛时间表 (2&a…

再过半小时,你就能理解Kafka的基本原理了

kafka总结一.定义二.基础架构及术语三.工作流程分析3.1发送数据3.2保存数据3.2.1 partition结构3.2.2 message结构3.2.3 存储策略3.2.4 消费数据一.定义 Kafka是一种高吞吐量的分布式发布订阅消息系统,可以处理消费者规模的网站中的所有动作流数据,具有…

基于 PyTorch 的目标检测(YOLO实现)

目标检测是一个直到最近才开始逐渐被征服的挑战。解决这个问题对于自动化和自动驾驶来说是至关重要的。对解决办法的追求导致了各种方法的发展。我想要描述一些主要的方法,在过去的21目标检测已经被使用,然后讨论 Yolov3的实现。讨论方法引言虽然深度学习…

windows 7 离线安装vs20219,GraalVM 打包java成可执行程序

环境准备 由于vs2022不支持windows 7 ,故用vs2019版。 如果是 win7 系统,在安装下载的依赖项前需要安装 win7 所需要的两个补丁 KB4490628和KB4474419 ,下载地址分别为(下载后直接安装即可): 参考这篇博客…

vite --- 搭建开发环境

目录 下载安装和初始化VSCode 安装Node.js yarn 使用 pnpm 安装与使用 搭建第一个Vite项目 使用 PNPM创建项目 项目目录解读 下载安装和初始化VSCode 1、访问网站 Visual Studio Code - Code Editing. Redefined 2、选择平台版本 选择符合自己操作系统的安装包下载完毕…

接口测试及接口抓包常用的测试工具有哪些?

目录 接口 接口测试的重要性 常用抓包工具 01、F12 02、Fiddler抓包工具 03、Charles抓包工具 04、Firebug抓包工具 05、httpwatch抓包工具 06、Wireshark抓包工具 07、SmartSniff抓包工具 常用接口测试工具 01、Postman 02、Jmeter 03、RESTClient 04、WireMock…

655. 汽车大甩卖2 etiger.vip 答案

题目描述 有n辆车大甩卖,第i辆车售价a[i]元。有m个人带着现金来申请购买,第i个到现场的人带的现金为b[i]元,只能买价格不超过其现金额的车子。你是大卖场总经理,希望将车和买家尽量多地进行一对一配对,请问最多卖出多…

Qt 开发环境搭建

一、Qt下载与安装 1、qt下载网站https://download.qt.io/ 其中各个目录含义如下: 目录说明snapshots/预览版,最新开发测试的Qt库和开发工具online/在线安装源official_releases/正式发布版,是与开发版相对应的稳定版Qt库和开发工具&#x…

利用哨兵简化实现难度

首先先回顾一下链表的插入和删除,如果需要在一个结点p后边插入一个结点,那么只需要下边两行代码: new_node->next p->next; p->next new_node;但是当往链表插入第一个结点时候,上边的代码就不能用了。需要进行下边的处…

【vue2】vue框架学习前置必备基础知识

🥳博 主:初映CY的前说(前端领域) 🌞个人信条:想要变成得到,中间还有做到! 🤘本文核心:数组 | 字符串中常用方法、对象解构语法、function |箭头函数this指向、展开运算符、原型…

为了会做题而学习期权合约

基本术语 买入期权:按照固定价格购买特定物品的期权。卖出期权:按照固定价格出售特定物品的期权。执行价格:期权合约中约定的固定价格。到期日:在其后期权不再被执行的日期。欧式期权:期权只能在到期日当日被执行。美…

python带你采集热点事件,让你第一时间掌握全发展

前言 嗨喽,大家好呀~这里是爱看美女的茜茜呐 又到了学Python时刻~ 开发环境: python 3.8: 解释器 pycharm: 代码编辑器 requests: 发送请求 parsel: 解析数据 jieba pandas stylecloud 实现流程: 一. 思路分析 找到数据来源 network 记录网页数据 请求 二…

windows下djaongo项目移植至centos7系统并启动

概述:在windows下开发完成的django项目需要移植至centos系统并启动。 文章目录1,在django项目目录下生成requirements.txt文件2,下载FileZilla安装并连接Linux系统3,本地传输文件至linux系统3.1,可用vim修改settings.py的参数4,安装requirements.txt依赖包5,启动项目…

pwn小白入门 装载 笔记

所看视频奉上:5、装载与汇编_哔哩哔哩_bilibili笔记如下:1.查看文件类型:file 文件名其中:add:文件名ELF:文件格式64-bit:64位LSB:端序 lsb:小端序 msb:大端序x86-64:架构…

sqlserver2012数据库,日志文件损坏修复

背景 服务器突然断电,导致数据库日志文件损坏,数据库无法启动。 本方案也同样适用于不小心删除数据库日志文件的情况。 相关报错 master数据库日志异常,导致数据库无法启动: 无法在数据库“master”(数据库 ID 为 1)的分配单元 …