没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论






























1
敏捷软件架构设计

2
软件架构构成了一个系统的骨架。它定义了当面对不同的功能性和非功能性需求时的系统行为。
一方面,传统瀑布式方法对项目开发的所有阶段提出了硬性约束要求,因此传统瀑布式方法显得僵
化。另一方面,敏捷运动让我们拥抱改变,即使是处于开发阶段后期的改变。尽管我们正推动自己
从僵化的开发模式迈向更灵活的模式,软件架构由于其系统骨架的定位,天然地对变化敏感。因此
关键之处在于,敏捷运动拥抱的软件架构必须是可持续的——具备可持续概念的软件架构,支持在
项目复杂度不断增加的同时,系统能以渐进式的、简单的以及可维护的方法进行扩展。
在这篇文章里,我回顾了自己在传统瀑布式软件架构和敏捷软件架构下的工作经历。描述了两者
在以下三个方面表现出来的相似性及差异性:
软件架构扮演的具体角色;
软件架构的时间跨度;
软件架构的输出。
什么是软件架构?
软件架构的定义(实际上你也能添加你自己下的定义)成百上千。存在这么多种定义的原因在于
每个人都是基于自身情境下定义。我对 IEEE 给出的定义特别推崇,这个定义描述的基本概念非常形
象化。此外,该定义描述出了软件架构的精髓本质,同时适用于瀑布式和敏捷流程,而不是只能匹
配某一个。在本文的后续部分,我会引述到该定义:
一个系统的基本组织结构、基本组成构件和互相之间的关系,以及构件于外部环境间的关系。同
时,软件架构为后续的设计和架构演化提供了指导性原则。
瀑布式软件架构
传统瀑布式开发的特征在于其由一系列有明确的开始和结束时间的阶段构成,每个阶段包含确定
的活动集。所有阶段串接在一起,每个阶段严重依赖于前一个阶段的交付产出。图 1 阐述了瀑布式
开发过程涉及到的常见阶段。

3
图 1:传统的瀑布式模型
软件架构工作通常在软件需求确定后开始启动,认为在此时,关于系统应做什么,已经确定好
了。下一步是审查负责确定软件架构的人以及当前阶段的实际输出结果。
传统软件架构
软件架构实践中通常由软件架构师完成。软件架构师拥有丰富的技术知识和经验——往往是由
公司中已经达到一定等级的开发人员晋升而来的。软件架构师负责分析软件需求,并基于这些需求
为未来系统的演化做某些技术决策。许多公司通常是一个项目对应一个软件架构师,但在一些更大
的公司里,软件架构师们可能以团队的形式共同合作。当项目所在领域非常复杂或者项目的周期很
长,比如长达 2 到 3 年甚至更久时,通常情况下就会有软件架构师团队。不是所有的公司都有指定
的软件架构师角色——许多公司把这部分职责委托给他们的高级开发人员承担。在本文的后续部
分,我所谈的是指由软件架构师执行的具体活动项,而不是执行活动项的人,除非另有明确说明。
传统的软件架构师有 4 大主要特征:
剩余10页未读,继续阅读
资源评论


SlumberingPerson
- 粉丝: 2
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- Khsvig级通信工程人才培养措施.doc
- 大数据导论课程教学探索.docx
- VB语言第10章教案资料.ppt
- 易勤web考勤管理软件使用帮助.docx
- Web服务ERP与电子商务系统集成研究.doc
- 学生成绩管理系统数据库完整设计.doc
- 海量互联网数据中英语翻译术语高效搜索系统设计.docx
- 浅析大数据时代下高中英语写作.docx
- 别墅智能家居设计方案.doc
- 基于大数据的复杂装备企业决策支持体系建设.docx
- 电梯PLC控制系统方案设计书.doc
- 面向物联网的无线传感器网络节能策略研究.docx
- easy-query-SQL资源
- 基于大数据背景下的数字文化馆建设研究.docx
- 助理电子商务师--单选.doc
- 无线网络技术结课优秀论文.doc
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
