架构设计方法论笔记

1、什么是方法论
        教怎么做架构设计
2、什么是设计
        - 实现意图的书面变现形式,而非口头东西
        - 让实现者能理解设计者的意图
        - 让不同的实现者做出来的东西差不多
        - 设计是严肃的,后续实现者不能随意偏离设计
3、什么是架构
        - 内部边界划分、功能联系、通讯协议等

参考资料 - 《软件工程》《软件方法》《架构实战》

一、业务分析 - (系统要支撑的业务是怎样的)为什么对象提供什么的服务


    1、业务分析概述:
        - 搞清楚该业务领域的概念以及业务的运转过程;
        - 系统的目的为了优化业务流程,使业务运转的更加高效、经济;
        - 系统价值在于实施后能够帮助客户带来多少业务价值;
        - 不管有无系统,业务通常是不变的;
    2、业务分析阶段活动模型


        - 业务分析师:市场、产品、研发共同完成
        输出一份大家都能看的懂的材料    
        2.1 领域模型:概念类或者现实世界中对象的可视化表示;又称概念模型、领域对象模型、分析对象模型。专注于分析问题领域本身,发掘重要的业务领域概念,并建立业务领域概念之间的关系。
        - 举例:

      业务分析阶段更多的是关注与业务,而不是关注于系统代码如何实现。
      领域模型常见的错误 1:将待开发系统也画到领域模型内 2:概念划分不清,关系不够明确没有画到位(需要关注于实体 属性 关系)

      领域模型的用途 1:理解业务中的概念关系 2:指导数据库设计 3:指导系统设计 4:指导开发

      2.2 业务对象

        1:业务执行者(business actor) 使用组织所提供业务的人 - 服务对象

        2:业务工人(business worker) 提供业务的组织的内部支撑人员 - 工作者

        3:业务实体(business entity)提供业务的组织的内部信息系统 - 不一定是电子化的,包含硬件等

         2.3 业务用例 组织对外提供的业务服务能力,针对于业务执行者与业务工人的相关动作

         2.4 业务流程 现状-->系统实施后

        业务流程分析的意义:动态表达业务流转过程;很好的理解业务才能做出更好的设计;通过比对前后差异,分析优化点,评估体现系统价值


二、需求分析 - (系统在业务中要做什么)

1、需求分析阶段活动模型

 其中

        领域模型业务模型在业务分析阶段完成,

        需求调研成果包含市场、产品调研后产生的一些需求。需求分析阶段更多的是针对系统所提出的

        系统分析师通常由架构师与产品经理共同担任,主要输出相关文件

        系统上下文是指系统周边的关系。系统依赖的其他系统

        系统用例是指系统所使用的案例,由业务用例所推导出的用例。使用动词短语命名如添加用户、查询话费等。右图更加规范

        业务用例与系统用例的区别与联系

        业务用例是描述组织对外提供的能力,系统用例是描述系统对外提供的能力;

        系统用例是业务用例相应流程中对系统的操作。

        功能与用例的区别:

        用例是需求分析的产物,描述的是用户使用系统完成什么业务;是动态的(动词短语) 如 查询名称

        功能是设计阶段的产物,根据系统用例和架构推导出来的;是静态的(名词短语) 如 名称查询

        常见错误:描述需求是给出的是一份功能清单,而不是用户通过系统完成的业务

        非功能设计

        可用性(系统的高可用)、

        性能(关键重要用例的拆分如支持的并发、TPS等)、

        安全性(鉴权、数据安全)、

        可扩展性(业务或者系统未来可能变动大、与其他系统对接)、

        可伸缩性(加硬件提高性能、减硬件降低性能)、

        可移植性(移植到国产系统等)、

        经济性(研发投入、服务器投入、运维投入)

示例:

三、架构设计 - (系统总体上怎么做)

系统简单时:

        概要设计

        详细设计

系统复杂时:

        架构设计 (宏观层面,减少变更带来的代价太大)

        概要设计

        详细设计

组件、功能、模块之间的区别和联系

        1、组件是架构设计考虑的单元

        2、功能与模块是概要设计与详细设计考虑的单元

        3、一个组件可能包含多个模块、涉及多个功能

        4、一个功能的实现可能需要多个组件的相应模块共同协作完成

         组件太多时需要分层,web层、应用层、服务层、数据层

        什么是架构:系统内部组件的关系

架构设计阶段的活动模型

 架构设计好坏的衡量标准:

  • 设计完成时 设计资料的规范性、思路决策技术选型的合理性、关系是否合理
  • 系统实现后 功能需求与非功能需求的满足程度

1、逻辑架构

  • 将系统分成若干个逻辑组件并建立它们之间的关系,以满足系统需求。静态关系用组件图,动态关系用序列图
  • 不涉及技术元素,纯概念的表述
  • 读者可以是非技术人员

2、物理架构

  • 将逻辑架构中的组件转成技术性的物理组件,组件使用英文,在实现时需要遵循这些命名
  • 物理架构粒度有大有小,可表现为子系统、进程、对象等多种形式(打包方式、系统之间的协议)
  • 还需解决非功能性需求
  • 与后续设计和实现做衔接
  • 非技术人员可能难以看懂

四、概要设计与详细设计

  1. 概要设计
    • 功能模块划分(功能一览表)来源于系统用例
    • 接口设计(以上划分出来的模块之间的接口,功能概要、接口名、参数、返回值等)

    2、详细设计

                1.模块内部功能实现逻辑描述

                2.界面设计

                3.数据库设计

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当涉及到网页设计时,设计师需要遵循一些设计方法论,以确保他们的设计能够满足用户需求并达到预期的效果。以下是一套网页设计师的设计方法论: 1. 用户中心设计(User-Centered Design,UCD):UCD指设计师应该以用户为中心,以满足用户需求为目标进行设计。设计师应该了解用户的需求和行为,并将这些信息纳入到设计中。 2. 渐进增强设计(Progressive Enhancement):设计师应该首先以基本的HTML和CSS构建网页,并逐步添加JavaScript和其他高级功能。这样可以确保网页在低端设备和慢速网络上也能正常运行。 3. 响应式设计(Responsive Design):设计师应该以响应式设计为基础,以确保网页在不同的设备上(如台式机、笔记本电脑、平板电脑和手机等)都能够呈现出最佳的效果。 4. 简洁明了的设计(Simplicity):设计师应该避免过度设计和复杂的布局,而应该采用简单的设计元素和直观的布局,以确保用户能够轻松地使用网页。 5. 可访问性设计(Accessibility):设计师应该遵循可访问性原则,以确保网页能够被身体残障者和其他特殊人群使用。 6. 色彩和对比度(Color and Contrast):设计师应该选择高对比度的颜色,以确保文本和其他设计元素清晰可见。设计师还应该遵循色彩心理学原则,以确保网页能够传达正确的情感和信息。 7. 测试和迭代(Testing and Iteration):设计师应该对网页进行测试和迭代,以确保网页能够满足用户需求和预期的效果。设计师还应该倾听用户反馈,并根据反馈进行改进和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值