软件架构师必读!什么是设计?如何进行设计?

author author     2022-10-22     564

关键词:

在质量的约束之下,软件架构如何进行设计?关键的问题是什么是设计,如何进行设计呢?对这个命题的不同理解,会形成截然不同的方法论。
1、什么是设计
设计是技术与文化的融合。

技术分享图片

设计的目的是创作事物,设计先于事物出现且与之相关,但又有所区别。设计需要新思想,而新思想来自于将一个领域中的领悟联系并应用到另一个领域中,历经若干次这样的经历而有所悟,脑海里自然就孕育出了“新思想”。因此,跨学科的灵感和锻炼是设计之根本。
设计是一种对话,它不仅仅是与利益相关方的对话,也是自己与自己的对话。
设计是一种思维活动,设计的魅力在于破解难题,通过直面问题的挑战,以及对相应解决方案的仔细推敲,才可能设计出真正有灵性的产品。
1)设计不具普遍性
软件设计很少具有普遍性,不同的目标需要不同的设计来支持。 一个适用于所有应用”的设计很少会成功。举例来说,一个大型应用领域的系统,其共同目标是提高质量和降低成本,而一个快速活动的业务领域的系统,其目标则通常是进入市场的时间及可接受的低风险。
一个旨在降低成本的设计,和一个旨在缩短进入市场时间的设计,或者与一个旨在最大化业务敏捷性的设计是不一样的。这就需要早期阐明目标,并且在对组织业务目标和可行技术的不断变化的回应中进行发展。好的设计在这种变化中应该具有足够的适应力。
2)做出权衡
所谓软件设计,本质上就是在质量、成本、时间以及其它各种因素之间做出权衡。

技术分享图片
在设计过程中应该向你、经理人员、开发人员以及其他利益相关者,清楚阐明采用某种解决方案的原因,包括其中做出的权衡。例如:为了减少响应时间,是不是牺牲了锁定和同步的范围?
为了保证性能,是不是牺牲了数据加密的级别?这样一来系统是不是还足够安全?
3)设计决策
整个设计过程就是一个发现问题、权衡解决方案、作出决定的过程,由下图所示。

技术分享图片
其过程中包括:
目标:设计目的是什么
必要条件:和目标相关的是一组必要条件或者次要目标
约束:限制条件,包括资源、时间、技术以及其它方面的约束。在很多情况下,约束是创作的朋友,由于约束的存在,才迫使我们采用创新方法。
资源、预算及其分配:最常见的是成本预算,内存或带宽的用量等。
设计树:设计师形成设计决策。然后,在设计空间中又形成另一决策。在每一个节点处,他都可以选取一条或多条路径,因此设计的过程可以认为是一种对于以树型结构组织的设计空间的系统化探索。

软件架构师如何工作

 由百度百科上可以看到软件架构师的定义:所谓架构师,通俗的说就是设计师或结构设计者,这些定义如果用在建筑学上,则是很容易理解的。在软件工程领域中,软件架构师实际上就是软件项目的总体设计师,是软件组织... 查看详情

架构师成长之路:到底啥是架构设计?该如何理解架构设计?

...聊聊什么是架构设计,以及对架构设计的一些基本认识。软件架构设计指的是:对一个软件系统进行的架构定义、文档编写、维护和改进、并验证实现的一系列活动,架构设计的产物就是一个系统的架构。架构设计实际上是一个... 查看详情

什么是架构师和如何成为一个架构师

  架构的定义  先来看看软件架构的普遍定义吧。  一个程序和计算系统软件体系结构是指系统的一个或多个结构。结构中包括软件的构建,构建的外部可见属性以及它们之间的相互关系。  体系结构并非可运行软件。... 查看详情

软件架构师如何工作

...概凯的架构漫谈和查阅一些其他资料,我大致了解了一下软件架构师的一些相关知识。  什么是架构呢?在架构漫谈中这样说道:把一个整体(完成人类生存的所有工作)切分成不同的部分(分工),由不同角色来完成这些分... 查看详情

java进阶架构师指南之一:如何进行架构设计

...验,java基础扎实,想突破自己的技术瓶颈,成为一位优秀的架构师,所谓java基础扎实,比如:??1.java语言三大特性.??2.java语言八大基本类型及其表示范围.??3.为什么float和double存在精度丢失???4.publish/priva 查看详情

201|软件建模与文档:架构师怎样绘制系统架构蓝图?

...,我是李智慧。我在开篇词中说过,我们课程中的一系列软件架构设计是用设计文档的形式呈现的。所以,在拆解一个个案例之前,我们先来了解一些关于软件设计文档的基础知识,这样你在学习后面的具体案例时,就能更加清... 查看详情

如何成为一名优秀的软件架构师

什么是软件架构师?架构师(Architecture)是目前很多软件企业最急需的人才,也是一个软件企业中薪水最高的技术人才。换句话说,架构师是企业的人力资本,与人力资源相比其能够通过架构、创新使企业获得新的产品、新的市场和... 查看详情

构设计杂谈004——架构师

...力,讲解架构、指导开发、协调冲突等●架构师必须了解软件过程,为项目全流程提供支持本文由微信公众号——架构设计一起学推出,可点击“阅读原文”,选择音频版,听CC讲解本期内容! 查看详情

架构设计杂谈004——架构师

...讲解架构、指导开发、协调冲突等 ●架构师必须了解软件过程,为项目全流程提供支持 本文由微信公众号——架构设计一起学推出,可点击“阅读原文”,选择音频版,听CC讲解本期内容! 查看详情

软件架构师如何工作

...者,这些定义如果用在建筑学上,则是很容易理解的。在软件工程领域中,软件架构师实际上就是软件项目的总体设计师,是软件组织新产品的开发与集成、新技术体系的构建者。在架构漫谈中举了早期社会每个人独立的生活方... 查看详情

架构师必读书单,收藏自用

文章目录一、构建架构知识体系1、《架构之道:软件构建的设计方法》2、《架构师的自我修炼》3、《软件架构:架构模式、特征及实践指南》4、《架构即未来:现代企业可扩展的Web架构、流程和组织(原书第2... 查看详情

《程序员必读之软件架构》epub下载在线阅读,求百度网盘云资源

《程序员必读之软件架构》([英]SimonBrown)电子书网盘下载免费在线阅读资源链接:链接:https://pan.baidu.com/s/1N4-fZnIWdniIPjHIoPqQ7g提取码:1j4k书名:程序员必读之软件架构作者:[英]SimonBrown译者:邓 钢豆瓣评分:7.0出版社:人民... 查看详情

成为架构师课程系列架构设计中的核心思维方法

...组织技术体系进行架构和设计。#一、抽象思维如果要问软件研发/系统架构中最重要的能力是什么,我会毫不犹豫回答是抽象能力。抽象(abstraction)这个词大家经常听到,但是真正理解和能讲清楚什么是抽象的人少之又少。抽象其... 查看详情

什么是软件测试架构师?

转:https://www.cnblogs.com/henryhappier/p/3216921.html软件测试架构师是一个新职位,但确实是一个非常必要的职位,主要有几点:1.根据V模型、广义测试概念等,(静态)测试的越早,发现缺陷越早,越有利于产品的质量、加快产品开发周... 查看详情

架构师必读书单

资深架构师李运华倾情推荐成长篇《异类》:颠覆你对成功的认知。例如:什么才是赢在起跑线?为何现在的富人都是大约生于1955年左右?             《随机漫步的傻瓜》:只要... 查看详情

软件架构师如何工作(即架构漫谈读后感)

软件架构师如何工作(即架构漫谈读后感)读完王概凯老师的架构漫谈,感觉自己对软件架构方面的知识了解了一点点。以前都只是听说软件架构师特别的厉害,高薪,但是具体说软件架构师是什么,具体是做什么的,自己并没... 查看详情

架构整洁之道系列软件架构师与软件架构

最近一直在读《CleanArchitecture》这本书,书中对与软件设计与架构的阐述是非常深刻的。因此开了一篇专栏,来记录《CleanArchitecture》书中一些优秀的架构设计理念,以及我对这些内容的思考。一、什么是软件架构师... 查看详情

作业一

一个软件架构师的工作过程    今天通过观看王平仲设计师在《梦想改造家》节目中拆分三角空间将畸形纸片屋变空中花园的视频,老师给我们留了一个思考问题,题目大概是通过一个建筑设计师的设计过程,说说... 查看详情