(2013-03-21 14:04:52)3Q2 http://blog.sina.com.cn/s/blog_461db08c0101ke8t.html
最近公司的项目进入定义阶段,需要进行软件架构设计。以前搞软件都是想到哪写到哪,没有设计过什么架构。现在要赶鸭子上架,只能边学边用了。
公司的软件架构定义分为几个不同的视角(view),通过这些view从不同的角度来描述整个系统。目的是站在各个利益相关者(stakeholder)的立场上解释系统,使它们能够快速准确的理解系统。
Context
View
把软件系统作为一个黑盒,描述它与外部(用户)的接口。描述接口传输的数据类型。
Conceptual
View
这里描述的内容都是从应用的角度出发,和解决方案无关,是整个系统的总体介绍。这一部分面向的是市场人员,用户,客户等等。另外,这一部分还有一个作用,就是帮助某一领域的专家了解系统如何在其领域发挥作用。这些专家不关心整个系统架构,只关心其领域内的事情。
Structural
View
这里描述软件系统的各个功能模块,子系统,以及他们提供的接口。这一部分将Conceptual
View中的系统分解为各个功能模块。但这一部分只涉及静态的模块,不涉及这些模块的行为。因为这些是Behavioral
Behavioral
View
这一部分列举用一些可能出现的情景(用例),描述系统的各个模块在这些假设的情境中如何运作。情景中必须包括:系统启动,系统宕机,系统出错等等。
Execution
View
这一部分描述系统模块的动态特性。以及这些模块式如何与软硬件平台相结合的。比如,一个模块如何对应了一个task或thread。或一个模块如何对应了一个物理硬件。就是说,这里记录的是每个模块与软硬件平台的对应关系(mapping)。
Implementation
View
这一部分描述了该软件系统将如何开发和集成的。需要介绍Structural |
|