创建软件架构时应该关注什么?

时间: 2019-09-19阅读: 215标签: 架构

软件架构师的首要关注点不是系统的功能,而是软件的品质,软件品质关注点指明了功能呢必须以何种方式交付,才能被系统的利益相关人所接受。作为一个架构师,你应该了解软件产品利益人以及他们的关注点:

  • 投资人,他们想知道项目是否能够在给定的资源和进度约束下完成。
  • 架构师、开发人员、测试人员,他们首先考虑的是最初的构建和以后的维护与演进。
  • 项目经理,他们需要组织团队,制定迭代计划。
  • 市场人员,他们想通过软件产品的品质特点实现与竞争者的差异化。
  • 用户,包括最终用户、系统管理员,以及安装、部署、准备、配置人员。

技术支持人员,他们关注帮助平台电话呼入的数目和复杂性。

架构师第一项任务,就是与利益相关人员协作,理解这些品质关注点和约束,并为它们排列优先级。为什么不从功能需求开始呢?因为通常有许多可能的系统分解方式。例如,从数据模型开始可能得到一种架构,而从业务处理模型开始则可能的得到不同的架构。在极端的情况下,系统没有分解,被开发成单一的软件。这可能会满足所有功能需求,但是可能不会满足品质需求。

一个项目通常情况下会有以下关注点:


功能性

产品向它的用户提供哪些功能?


可变性

软件将来可能需要哪些改变?哪些改变不太可能发生,不需要特别容易进行这些改变?


性能

产品将达到怎样的性能?


容量

多少用户将并发使用该系统?该系统将为用户保存多少数据?


生态系统

在部署的生态环境中,该系统将与其他系统进行哪些交互?


模块化

如何将编写软件的任务分解为工作指派(模块),特别是这些模块可以独立地开发,并能够准确而容易地满足彼此需要?


可构建性

如何将软件构建为一组组建,并能够独立实现和验证这些组建?哪些组建应该复用其他的产品,哪些应该从外部供应商出获得?


产品化

如果产品将以几种变体的形式存在,如何开发一个产品线,并利用这些变体的共性?产品线中的产品以怎样的步骤开发?在创建一条软件产品线时,要进行哪些投资?开发产品线中不同变体的选择,预期会得到怎样的回报?

特别是,是否可能开发最小的产品,然后再添加(扩展)组建,在不改变以前编写的代码的情况下,开发产品线的其他成员?


安全性

产品是否需要用户认证,或者必须限制对数据的访问?数据的安全性如何得到保证?如何抵挡“拒绝服务”攻击或其他攻击?

到这里是不是有点熟悉啊,这其实就是产品经理写的PRD文档中的一份,PRD文档中有关于产品性能指标,安全的指标等等,而架构师很大部分工作就是在拿到PRD的时候把项目进行分解,让其在架构上符合产品设计基本要求。


吐血推荐

1.站长广告联盟: 整理了目前主流的广告联盟平台,如果你有流量,可以作为参考选择适合你的平台点击进入...

2.休闲娱乐: 直播/交友    优惠券领取   网页游戏   H5游戏

链接: http://www.fly63.com/article/detial/6025

软件架构师之路

软件架构师是一名软件开发专家,他可以进行高层设计选择并决定技术标准,包括软件编码标准,工具和平台。软件架构可以被抽象的分为几个层次,不同的层次对技能的要求不同。对层次有很多不同的划分

前端领域不需要架构师?

在传统桌面软件开发中,架构师是一种通过设计架构保证团队能够良好分工和有序工作的岗位。在工程领域,我们凡是要做点什么事儿,都会有明确的目的性,这个目的性,一定是为了完成生产服务业务的。

实用的软件架构方法

软件架构就是软件的基本结构,它是有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计。软件架构是一个系统的草图。软件架构描述的对象是直接构成系统的抽象组件。

微前端架构:如何由内而外取代单体架构

如何利用微前端技术实现单体应用程序的现代化改造?在本篇教程中,我们将探讨如何将前端从单体架构当中剥离出来,并快速完成微前端架构迁移。本文作者将结合个人项目实践经验为大家介绍心得。

微服务架构陷阱:过渡设计和设计不足

在这篇文章里,我将简要地介绍在设计微服务架构时需要注意的问题。如果实施得当,就会获得自治能力和灵活性,但同时也会带来通信延迟和部署及托管成本。这篇文章并不是一个高级指南

网站架构优化性能

最初业务量不大,访问量小,此时的架构,应用程序、数据库、文件都部署在一台服务器上,有些甚至仅仅是租用主机空间, 将应用程序、数据库、文件各自部署在独立的服务器上

成为一个优秀架构师,你必须了解的 30 条设计原则

众所周知,架构师的角色,更偏向于策划、而非指挥,塑造、而非支配,其存在的意义,在于引导大家讨论、而非自己主宰一切。但是,具体应该如何执行呢?本文作者整理了 30 个公认的架构原则

基于 NodeJS 的 serverless 架构实践

通过将 BFF 构建于 serverless 之上,将人工智能实验室(天猫精灵)数十个中后台应用整合到了一个统一入口。用云函数的方式取代了传统基于 NodeJS 的 BFF 层,提供了在一个站点下不同应用以及不同环境的快速切换能力

软件架构被高估,清晰简单的设计被低估

软件架构最佳实践、企业架构模式以及系统描述的正式方法都是非常重要且实用的工具,总会有合适的场景让它们发挥作用。但在设计系统时,请从简单始、以简单终,尽可能避免一切会无谓提高复杂度的架构与正式工具

MVC和三层架构

三层架构指的是: 视图层(View),服务层(Service)和持久层(DAO). 他们分别负责不同的功能.。单纯就是指后台的设计架构,这种架构模式是从微软来的

fly63.com版权所有,内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权,请与小编联系!情况属实本人将予以删除!

文章投稿关于web前端网站点搜索站长推荐网站地图站长QQ:522607023

小程序专栏: 土味情话心理测试脑筋急转弯幽默笑话段子句子语录成语大全