分享

设计软件架构

 心不留意外尘 2016-03-22

(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 ViewExecution View的内容。

Behavioral View
这一部分列举用一些可能出现的情景(用例),描述系统的各个模块在这些假设的情境中如何运作。情景中必须包括:系统启动,系统宕机,系统出错等等。

Execution View
这一部分描述系统模块的动态特性。以及这些模块式如何与软硬件平台相结合的。比如,一个模块如何对应了一个task或thread。或一个模块如何对应了一个物理硬件。就是说,这里记录的是每个模块与软硬件平台的对应关系(mapping)。

Implementation View
这一部分描述了该软件系统将如何开发和集成的。需要介绍Structural View中的各个模块将在什么开发平台上开发,对应代码库中的什么目录,使用什么库以及什么商业软件。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多