- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
浅谈软件开发中的架构设计
摘要:文章主要从软件架构的定义、为何需要为软件设计架构、架构设计的核心思维、软件架构设计的几个步骤这几个方面进行阐述,以供参考。
关键词:软件开发;架构设计;需求分析
中图分类号:TP311文献标识码:A
文章编号:1009-2374#8197;(2010)28-0009-02
软件架构是软件系统中的地基,是一个软件系统中的核心元素,它决定了一个系统的主体结构、宏观特性和具有的基本功能及其特性,它位于软件开发过程的前期阶段,架构设计的过程,是分析客户需求、挖掘非功能性需求、并将客户需求所定义的领域知识转化为软件系统模型的过程。本质上软件架构是对软件需求的一种抽象解决方案,用于指导大型软件系统各个方面的设计。正如大型建筑物设计成功的关键首先在于主体结构。同样,复杂的软件设计的成功与否在于软件系统的宏观上层结构设计的正确和合理性。但现实中,软件架构的理论和工具还没有形成系统、规范的概念和描述,不同架构师在图形符号说明上总是采用自己习惯的方式,致使软件架构设计尚未形成一个有效统一的模式知识库,未能更好地发挥架构设计本身的作用。在此,本文就软件开发的架构设计的相关内容进行探讨,以供参考。
1软件架构的定义
软件架构(Software archiecture)一组有关如下要素的重要决策:
软件系统的组织,构成系统的结构化元素,接口和它们相互协作的行为的选择,结构化元素和行为元素组合成力度更大的子系统的方式的选择,以及指导这一组织(元素及其接口、协作和组合方式)的架构风格的选择。
软件架构是对系统整体结构设计的刻画,包括全局组织与控制结构、构件间通讯、同步和数据访问的协议,设计元素的功能分配,物理分布,设计元素集成,伸缩性和性能,设计选择等。
2为何需要为软件设计架构
2.1不进行架构设计将很难满足系统的品质
软件架构设计中的一个关键特性,是系统的品质是通过某些手段来实现的。软件的品质(如性能,安全性和可维护性等)在缺少统一的架构设计时是无法一一实现的,因为软件的品质并不是单一的体现在软件元素中,而是渗透在整个软件体系中的,因此我们应尽早的评估在项目开发周期中的这些品质。软件架构模型的建立,通常是为确定我们是否已经满足了软件这些品质的要求。
2.2架构设计很容易让相关人员达成一致的目标
架构设计提供了一个辩论系统解决方案的媒体,因此架构设计可以使得不同的涉众达成一致的目标。经过有效的传送,体系架构可以使系统构架师之间、软件开发人员之间或者其他新老成员之间的意见以及他们之间的视图达成一致。
2.3架构设计能够支持计划编制过程
架构设计的过程支持设计和实现活动,因为软件开发的过程是直接使用到这些活动中的,例如:细节划分、日程安排、工作分配、成本分析、风险管理和技能开发等。
2.4架构设计能够有效地管理软件复杂性
如今的软件系统越来越复杂,而这种复杂性需要我们去有效的管理。而架构设计过程考虑的是组件的递归分解。这是处理一个大的问题的很好的一个方法,它可以把这个大问题分解成很多的小问题,再逐个的解决。
2.5架构设计为复用奠定了基础
架构设计过程可以同时支持使用和建立复用资源。复用资源对于一个组织来说是有益的,因为它可以降低一个系统的成本,并且可以改进系统的质量。
架构设计为大规模开发提供了基础和规范及可重用的资产。要进行软件系统的大规模开发,需要有一定的基础和遵循一定的规范,这既是软件工程本身的要求,也是客户的要求。架构设计的过程中可以将一些公共部分抽象提取出来,形成公共类和工具类,以达到重用的目的。
2.6架构设计能够降低维护费用
架构设计过程可以在很多方面帮助我们降低维护费用。例如,架构设计过程要确保系统的维护人员是一个主要的涉众,并且他们的需求被作为首要的任务满足。一个被恰当文档化的架构不应该仅仅为了减轻系统的可维护性,还应该确保结合了恰当的系统维护机制,并且在建立体系架构的时候还要考虑系统的适应性和可扩充性。
2.7架构设计能够支持冲突分析
一个好的软件构架确定了主要的组件和它们之间的交互作用,两个组件之间的依赖性以及这些组件对于需求的可追溯性。
3架构设计的核心思维
3.1 架构设计的源泉来自于需求分析,并且它的设计重心和特点来自于质量需求而非功能性需求
任何软件系统都是以满足一定的需求为目的,因此,一个好的软件架构必须以深入全面的需求分析作为基础。然而,架构设计并没有统一的模式,任何模式的架构也只有针对问题才有意义。作为架构设计来说,在进行需求分析的过程中,系统分析员必须对需求分析有足够的解,才能有针对性地将客户需求有效的转化为计算机
文档评论(0)