成功软件架构的品质
2009-02-13 22:10
295 查看
成功的软件架构设计是高质量的,并且所花费的时间、技术决策等方面都能满足具体开
发方法的要求,具体应该有如下品质:
良好的模块化:每个模块职责明确,模块之间松耦合,模块内布高内聚,并且合理的实现了信息隐蔽。
适应功能需求变化,适应技术变化:典型情况是,应该保持具体应用的相关模块和领域通用模块的分离,技术平台相关模块与具体技术的应用模块相分离,从而达到“隔离变化”的效果。
对系统动态运行有良好的规划:应该标识出哪些是主动模块,哪些是被动模块,明确模块之间的调用和加锁机制,并说明关键的进程、线程、队列、消息等机制。
对数据的良好规划:不仅仅包括数据的持久化存储,还包括数据传输、数据复制与数据同步等策略。
明确、灵活的部署规划:这里往往牵涉到可移植性、可伸缩性、持续可用性以及互操作性等大型企业级软件特别关注的质量属性架构策略。
好的架构并不是“好的就是成功的”,而是“适合的才是成功的”。不适当的用时间换完
美,最后会毁掉整个项目。回过头来看看我们为什么花了大量的时间讨论软件开发过程及其
影响?除了明确我们初期需要在绝大部分技术细节都不清楚的情况下定义软件架构,还要考
虑初期我们就需要搭建一个团队协作开发的基础,让不同的小组针对不同的子系统和模块深
入下去,这种团队的秉性工作也意味着可能缩短项目工程的周期。
架构师并没有绝对的技术选择自由,还需要考虑经济性、技术复杂性、发展趋势以及团
队水平等诸方面的因素。最终,架构师的工作成果就是为整个开发团队的工作提供足够的指
导和限制,使他们沿着正确的方向进行下去。
下面,我们来探究一下成功架构设计的关键要素是什么,这些讨论将主导着本课程内容
的演绎,是整个课程最核心的知识.
发方法的要求,具体应该有如下品质:
良好的模块化:每个模块职责明确,模块之间松耦合,模块内布高内聚,并且合理的实现了信息隐蔽。
适应功能需求变化,适应技术变化:典型情况是,应该保持具体应用的相关模块和领域通用模块的分离,技术平台相关模块与具体技术的应用模块相分离,从而达到“隔离变化”的效果。
对系统动态运行有良好的规划:应该标识出哪些是主动模块,哪些是被动模块,明确模块之间的调用和加锁机制,并说明关键的进程、线程、队列、消息等机制。
对数据的良好规划:不仅仅包括数据的持久化存储,还包括数据传输、数据复制与数据同步等策略。
明确、灵活的部署规划:这里往往牵涉到可移植性、可伸缩性、持续可用性以及互操作性等大型企业级软件特别关注的质量属性架构策略。
好的架构并不是“好的就是成功的”,而是“适合的才是成功的”。不适当的用时间换完
美,最后会毁掉整个项目。回过头来看看我们为什么花了大量的时间讨论软件开发过程及其
影响?除了明确我们初期需要在绝大部分技术细节都不清楚的情况下定义软件架构,还要考
虑初期我们就需要搭建一个团队协作开发的基础,让不同的小组针对不同的子系统和模块深
入下去,这种团队的秉性工作也意味着可能缩短项目工程的周期。
架构师并没有绝对的技术选择自由,还需要考虑经济性、技术复杂性、发展趋势以及团
队水平等诸方面的因素。最终,架构师的工作成果就是为整个开发团队的工作提供足够的指
导和限制,使他们沿着正确的方向进行下去。
下面,我们来探究一下成功架构设计的关键要素是什么,这些讨论将主导着本课程内容
的演绎,是整个课程最核心的知识.
相关文章推荐
- 成功的软件架构设计具有的品质
- 从南极之争谈软件架构十个技巧,及成功团队具备的气质
- 成功软件架构的关键
- 何谓成功的软件架构设计
- 模块架构不是软件成功的“决定因素”
- 从南极之争谈软件架构十个技巧,及成功团队具备的气质
- 何谓成功的软件架构设计
- 成功软件架构的关键
- 什么是成功的软件架构设计
- 专访架构师周爱民:谈企业软件架构设计
- 软件的架构与设计模式之模式的种类
- aps - (Advanced Planning And Scheduling) 高级生产计划排程软件的架构和设计
- 下一代软件架构--SOA方案(转)
- 软件架构理论体系v4.0的畅想
- 软件架构设计原则和模式(上):分层架构设计
- 软件架构设计分享
- 做一个成功的软件项目经理
- 什么是软件架构?什么是设计模式?它能起到什么作用?
- 架构漫谈(五):什么是软件
- 什么是“成功项目”:谈谈软件的价值