架构涉及学习总结

架构设计的过程一般可分为下面几个步骤:需求分析、概念设计和架构细化。 l

  • 需求分析:设计一个软件的入口动作肯定是了解需求,并对需求进行细化、分析和澄清。这里的需求不仅包括功能需求,还包括各种非功能需求(即我们常说的DFx)以及各种约束条件(时间、人力、成本等)。需求分析一般使用UML的用例,输出文档为系统需求说明书。 对于平台,需求用例的actor不仅仅是最终用户,还需要包括产品开发人员;即需要说明白某个功能提供个用户的是什么,还要说明白提供给开发人员的是什么。
  • 概念设计:对应我们常说的上下文和0层架构。基本动作包括对系统的领域模型(系统内的各种逻辑概念及相互关联关系)进行分析,对关键需求进行分析(分析类图),对非功能需求进行“场景—决策”分析(即分析各种DFx特性需要在哪些场景中考虑),然后应用架构模式(MVC、分层、管道过滤器等)对整个系统进行划分,可以划分成子系统,也可以直接划分到模块。
  • 架构细化:对应我们常说的一层架构,包括逻辑架构、运行架构、物理架构和开发架构。
    • 逻辑架构需要在概念设计的基础上进一步细化,包括对概念设计中获得的模块进行细化(分为多个子模块)、通用机制提取(例如缓存机制、通讯机制等)、各模块的类框架(主要类)设计和模块间的接口定义(通讯方式等)。
    • 运行架构则需要考虑各个模块在运行期间的关系:整个系统包括多少进程,进程间的通讯机制,每个进程包括多少线程,线程中运行哪些模块,多线程之间的锁机制; 
    • 物理架构需要考虑系统在物理服务器上的部署情况,在不同的使用场景下(根据配置计算)分别需要用什么样的服务器(选型),多少台,每台上部署哪些模块(需要考虑模块的CPU、内存、IO消耗情况),多台服务器之间的组网要求等。
    •  开发架构需要考虑整个系统分为多少个工程进行开发,每个工程使用什么编程语言、什么基础框架实现等,还需要确定最终发布包的结构。

猜你喜欢

转载自wywy.iteye.com/blog/2066484