转载:软件架构设计的核心概念

架构设计是个高大上的名词,那么到底什么是架构设计?架构设计的产出物是什么?方法是什么?这些架构方面的核心概念在这里一网打尽......

一、什么是架构?

IEEE的定义:架构 = 组成单元的结构 + 组成单元的关系 + 原则和指南

详解:

  1. 组成单元的结构:即包括软件、硬件等物理部件,又包括数据、活动、人员等逻辑部件;不仅包括系统的物理结构,还包括系统在较高抽象层次上的逻辑结构;
  2. 组成单元之间的关系:包括层次、布局、边界、接口关系等;
  3. 原则和指南:如松耦合等原则。

二、什么是架构设计?

架构设计是一个从问题空间到方案空间的过程。

image.png

详解:

  1. 首先,理解和识别涉众关键需求。包括关键功能和应用场景、关键质量场景(如性能场景:反应时间小于1秒;可靠性场景:支持断点续传等)和主要设计约束(如必须采用国产数据库;经费大约200万等);
  2. 然后,从结构、行为和优化三个角度,采用由外而内、逐步求精的方法反复淬炼解决方案架构;
  3. 最后,从多个视角定义和清晰描述其组成单元结构、关系和建立原则。

三、架构设计的产出物是什么?

对于复杂事物人类一般采用分而化之的思路破解,所以架构产出物原理如下图:


image.png

一般采用UML从5个视角描述架构如下图。


image.png
  1. 用户视图:采用业务流程图、用例图描述需求;
  2. 逻辑视图:采用包图、类图等描述组成单元的静态结构关系;
  3. 运行视图:采用交互图、时序图等描述组成单元的动态交互关系;
  4. 数据视图:采用E-R图等描述关键数据实体的数据分布策略和数据表关系(该视图为可选项);
  5. 实施视图:采用组件图等描述软件组成单元的部署关系;
  6. 物理视图:采用部署图等描述硬件组成单元的部署关系;

注:在投标时的技术方案中经常会提到架构,那是给甲乙双方领导看的初步架构方案,不是供开发团队使用的最终架构方案。一般包括逻辑视图的子系统划分、硬件视图的服务器配置等要求,供领导高层概览和投资决策。

四、架构师的职责和工作阶段

国家人力资源和社会保障部对架构师的职业资质要求如下:

  1. 应能够根据系统需求规格说明书,结合应用领域和技术发展的实际情况,考虑有关约束条件,设计正确、合理的软件架构,确保系统架构具有良好的特性;
  2. 能够对项目的系统架构进行描述、分析、设计与评估;
  3. 能够按照相关标准编写相应的设计文档;
  4. 能够与系统分析师、项目管理师相互协作、配合工作。
image.png

转自: http://www.day2up.com/mob/bus.do?method=article_show&show_id=66484122ff13431cabaca9cb81219a50

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容