`
chenjohney
  • 浏览: 40136 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

转:怎么做好软件系统架构

阅读更多
【IT168 信息化】

  软件系统架构(Software Architecture)是关于软件系统的结构、行为、属性、组成要素及其之间交互关系的高级抽象。任何软件开发项目,都会经历需求获取、系统分析、系统设计、编码研发、系统运维等常规阶段,软件系统架构设计就位于系统分析和系统设计之间。做好软件系统架构,可以为软件系统提供稳定可靠的体系结构支撑平台,还可以支持最大粒度的软件复用,降低开发运维成本。如何做好软件系统的架构设计呢?笔者就这一问题做如下探讨分析。

  软件系统架构设计方法步骤

  基于体系架构的软件设计模型把软件过程划分为体系架构需求、设计、文档化、复审、实现和演化6个子过程,现逐一简要概述如下。

  体系架构需求。即将用户对软件系统功能、性能、界面、设计约束等方面的期望(即“需求”)进行获取、分析、加工,并将每一个需求项目抽象定义为构件(类的集合)。

  体系架构设计。即采用迭代的方法首先选择一个合适的软件体系架构风格(如C/S、B/S、N层、管道过滤器风格、C2风格等)作为架构模型,然后将需求阶段标识的构件映射到模型中,分析构件间的相互作用关系,最后形成量身订做的软件体系架构。

  体系架构文档化。即生成用户和研发人员能够阅读的体系架构规格说明书和体系架构设计说明书。

  体系架构复审。即及早发现体系架构设计中存在的缺陷和错误,及时予以标记和排除。

  体系架构实现。即设计人员开发出系统构件,按照体系架构设计规格说明书进行构件的关联、合成、组装和测试。

  体系架构演化。如果用户需求发生了变化,则需相应地修改完善优化、调整软件体系结构,以适应新的变化了的软件需求。

  以上6个子过程是软件系统架构设计的通用方法步骤。但由于软件需求、现实情况的变化是难以预测的,这6个子过程往往是螺旋式向前推进。

  软件系统架构设计常用模式

  目前软件领域广泛使用的软件系统架构模式,主要有层次化架构设计、企业集成架构设计、嵌入式架构设计和面向服务的架构设计模式。

  层次化架构设计模式。分层设计是一种最为常见的架构设计方案,能有效地使系统结构清晰、设计简化。MVC模式是当今最为流行的多层设计模式。该模式把一个应用的输入、处理、输出流程进行分离并抽象为控制器(Controller)、模型(Model)、视图(View)三个模块,实现了业务逻辑层、数据库访问层和用户界面层之间在彼此分离的同时仍保持松散的耦合关系,增加了灵活性和可扩展性。我们常见的C/S架构、B/S架构、N层架构都是层次化架构设计的表现形式。

  企业集成架构设计模式。该模式不仅为企业在异构分布式环境下(操作系统、网络、数据库)的业务应用提供了一致的信息访问和交互手段,而且为各类业务应用提供了有效的通信、信息集成、应用集成、维护开发、运行管理等服务。目前最著名的企业集成架构设计包括:CORBA、COM+、J2EE、WebService等。

  嵌入式架构设计模式。该模式具备良好的可配置性、可管理性、可扩展性、时效性等性能指标。目前业界主流的嵌入式操作系统都是特定领域专用的,其中包括:WinCE、Linux、ECOS、EPOC、LynxOS、VxWorks等。

  面向服务的架构设计模式。该模式将业务应用按照一定的粒度和原则划分成为统一标准和统一格式的服务,使企业可以按照模块化的方式添加新服务或更新现有服务,有助于打破信息孤岛,促进企业系统集成、资源共享。该模式包括服务注册表模式和企业服务总线模式两类。

  软件系统架构设计实践

  软件系统架构设计是一项非常复杂的工作任务。如何才能做好软件系统架构设计呢?笔者认为需要做好以下几项工作:

  树立软件系统架构的意识。设计人员不能局限在算法和数据结构上,而是要树立和不断强化软件系统整体架构的意识,学会运用多层架构的视角和观念去分析设计软件。在多层架构的实践上,通过MVC模式实现软件多层结构,层和层之间要做到职责清晰、互相独立、耦合关系松散;在模块设计原则上,要尽量体现“高内聚、低耦合”的思想。

  高度重视软件设计模式。软件设计模式是设计人员在长期开发实践中总结出来的,其他设计人员可借助这些模式加快软件设计进程,降低开发风险。所以,设计人员应高度重视设计模式思想,切勿滞留在编码的层面,应不断总结经验,积极尝试运用软件设计模式的思想去提出问题、分析问题、解决问题,提高自身开发软件的水平。

  形成自身的软件架构风格。软件系统架构设计的核心目标是实现体系架构级别的软件复用。这就需要设计人员一方面不断学习钻研不同应用领域中软件架构的惯用模式、思维、风格;另一方面要借鉴吸收先进理念,积极探索实践,最终形成自身独特的软件架构风格。

  充分了解用户需求,做好全局架构设计。要做好软件系统的架构设计,不能急于求成,首先,要全面准确地收集到用户需求,对整个系统功能形成清晰完整的认识;其次,针对整个软件系统做好全局架构设计工作,从而避免因考虑不周或片面理解带来的失误。
分享到:
评论

相关推荐

    软件系统功能架构设计图

    系统功能架构图,有需要的可以参考。 有需要的可以下载,做个参考也好。 有需要的可以下载,做个参考也好。

    【系统架构设计师】论软件架构师的角色和培养

    软件架构在软件系统中充当着重要的角色,软件架构也是软件工程中迅速发展的一个研究实践领域,有很多的文献[2~4]讨论了如何构架一个好的软件系统。软件架构师作为软件架构的设计者是关系到软件成败的关键因素。然而...

    软件架构文档模板

    软件架构设计文档模板,如何做架构设计、系统设计(概要设计、详细设计和数据库设计),以及需要有那些规范和参考模板。

    赢在架构:大中型软件架构设计实践体系

    须做三件事:1、在架构设计中重视“开发架构视图”,让开发人员看到他熟悉的“程序模块”、“源码目录结构”等概念。2、架构设计不可“高来高去”,能支持并行的详细设计是“架构设计进行到什么程度”的标志。3、...

    系统架构设计师教程

    资源名称:系统架构设计师教程内容简介:杨春辉主编的《系统架构设计师教程》作为全国计算机技术与软件专业技术资格(水平)考试指定用书,系统地介绍了系统架构设计师的基本要求和应掌握的重点内容。全书共分21章,...

    2009年最新:系统架构设计师教程(超清析PDF)

    本书作为全国计算机技术与软件专业技术资格(水平)考试指定用书,系统地介绍了系统架构设计师的基本要求和应掌握的重点内容。全书共分21章,对计算机网络基础、信息系统基础、系统开发基础、软件架构设计等诸多内容...

    基于Android系统的车载娱乐系统软件架构.pdf

    基于Android系统的车载娱乐系统软件架构.pdf

    系统架构设计师 第四版 高清 带书签

    内容涵盖了*新的系统架构设计师考试大纲的所有知识点,对系统架构设计师所必须掌握的基础理论知识做了详细的介绍,重在培养系统架构设计师所必须具备的专业技能和方法。本书内容既是对系统架构设计师考试的总体纲领...

    QCon 2009 beijing全球企业开发大会ppt:22.大型复杂系统的架构与设计

    如今,在国内企业的大型软件系统开发中,从各工业领域的复杂工业控制系统,到其它类似铁路,航空,电信,化工,汽车等行业中的支柱系统,有哪个是我们中国人做的架构和设计?甚至连我们耳熟能详的"企业信息管理系统...

    软件架构万字漫谈:业务架构、应用架构与云基础架构

    而软件架构,就是软件系统的骨骼与框架。所谓架构,见仁见智,很难有一个明确或标准的定义;但架构并非镜花水月或阳春白雪,有系统的地方就需要架构,大到航空飞机,小到一个电商系统里面的一个功能组件,都需要设计...

    系统架构设计师教程-第4版-有目录

    内容涵盖了最新的系统架构设计师考试大纲的所有知识点,对 系统架构设计师所必须掌握的基础理论知识做了详细的介绍,重在培养系统架构设计师所必须具备的专 业技能和方法。 本书内 容既是对系统架构设计师考试的总体...

    系统架构设计师考试考点

    本书由希赛教育软考学院组织编写,用以作为计算机技术与软件专业技术资格(水平)考试中的系统架构设计师级别的考试辅导指定教材。内容涵盖了*新的系统架构设计师考试大纲的所有知识点,对系统架构设计师所必须掌握...

    FDExam_Note:2021软考系统架构设计师笔记

    软件系统建模 分布式系统设计 嵌入式系统设计 系统的可靠性分析与设计 系统的安全性和保密性设计 考试科目3:系统架构设计论文下午15:20-17:20 系统建模 软件架构设计 系统设计 分布式系统设计 系统的可靠性分析与...

    系统架构设计师教程(第4版)下载

    软考 系统架构设计师教程(第4版) 用以作为计算机技术与软件专业技术资格(水平)考试中的系 统架构设计师级别的考试辅导指定教材。内容涵盖了最新的系统架构设计师考试大纲的所有知识点,对 系统架构设计师所必须...

    最新软件体系架构评估2.pdf

    软件体系架构评估2.pdf .接上软件体系架构评估1.pdf

Global site tag (gtag.js) - Google Analytics