架构设计摘录

注:本篇文章内容全部从网上摘录


好的软件架构应当具有如下品质:

  1. 良好的模块化。每个模块职责明晰,模块之间松耦合,模块内部高聚合并合理地实现了信息隐藏;
  2. 适应功能需求的变化,适应技术的变化。典型地,应该保持应用相关模块和领域通用模块的分离,技术平台相关模块和独立于具体技术的模块相分离,从而达到"隔离变化"的效果;
  3. 对系统的动态运行有良好的规划。标识出哪些是主动模块,哪些是被动模块--面向对象中往往是主动类和被动类,明确这些模块之间的调用关系和加锁策略,并说明关键的进程、线程、排队、消息等机制;
  4. 对数据的良好规划。不仅应包括数据的持久化存储方案、还可能包括数据传递、数据复制和数据同步等策略;
  5. 明确、灵活的部署规划。还往往涉及到可移植性、可伸缩性、持续可用性和互操作性等大型企业软件特别关注的质量属性的架构策略。



架构要考虑的关键因素:

  1. 非功能需求与约束是成功的软件架构必须重中之重关注的关键要素
  2. 系统功能可能的变化与扩展点与趋势也是成功的软件架构的关键。需要提出的是,不是关注功能变化或扩展后的需求细节,而是关注功能在什么地方可能进行变化或扩展、变化或扩展的规律与趋势是什么。
  3. 软件架构也需要从各涉众人员代表关注的角度、视线进行设计表达
  4. 通过将软件架构设计方案尽快实现为一个小的原型,并通过对该原型的严格评审与测试,是成功软件架构的最有力的保证。




架构设计的策略:

  1. 全面认识需求
  2. 让关键需求决定架构
  3. 多立场、多视角探寻架构
  4. 尽早验证架构



架构设计的的程度:

  1. 软件架构必须满足软件项目所有涉众代表都有自己立场与视角的模型、文档说明,且这些模型文档说明仅清晰包含自己立场与视角关注与有关的事物,不能有任何遗漏,也最好不要有多余
  2. 软件架构的每一步都是决策过程,而且关键需求决定架构,软件架构必须充分清楚地表达出这些决策与决策理由
  3. 软件架构必须为以后的开发提供足够的指导与限制,因此软件架构必须确定系统各元素间的关系、职责、交互接口与协作机制
  4. 软件架构必须突出强调通信机制、持久化机制和消息机制等公用模块的深入设计
  5. 由于软件项目的不同、开发组织结构的不同、开发团队情况的不同,软件架构的设计粒度是不一定的



架构设计的一般过程:

  1. 第一步是全面认识需求
  2. 第二步是确定对架构关键的需求
  3. 第三步是进行概念性架构设计,设计概念性架构的第一步是分析关键用例有用例规约,运用鲁棒图等方法构造系统理想化的职责模型(如分层)。接下来明确架构模式(如MVC),确定交互机制,形成初步的概念性架构。最后通过质量属性分析,制定出满足非功能需求的高层设计决策,并根据这些决策对之前的工作成果进行增强、调整,以保证概念性架 构体现这些设计决策
  4. 第四步是细化软件架构,考虑具体技术的运用,设计出实际架构。概念性架构所关注的关键设计要素、交互机制、高层设计决策与具体技术无关,而最终的软件架构设计方案必须和具体技术结合,为开发人员提供足够的指导和限制。因此,必须从系统如何规划、如何开发、如何运行等角度揭示软件系统的结构和机制。一般分别从逻辑架构、开发架构、运行架构、物理架构、数据架构等不同架构视图进行设计。
  5. 验证软件架构


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值