您的位置:首页 > 运维架构 > 网站架构

系统架构设计的原则和实践指南(栾跃)

2006-12-05 22:24 597 查看
课程内容概述
软件架构和架构师
软件架构的设计
模式、框架和参照设计
 

 

第一部分:软件架构和架构师

 

1软件架构的起源

软件架构最早来自于当时已经比较成熟的建筑行业。在80年代末,就有人专门成立了建筑设计公司,专致于建筑设计。软件架构的设计包括结构的设计和风格设计,其中结构设计影响功能、质量等,风格设计影响用户体验。
2软件架构(Architecture)的目的:

使软件系统能够达到为用户提供最佳的功能和服务的状态
使软件与系统的结合达到最佳运行性能
合理和最佳的利用习用的各项资源
在软件的开发、部署、运行、维护、升级换代上未提供最大的灵活性
为系统提供最大的安全性、稳定性和可靠性,以及各项质量素质。
3架构师的素质

软件架构师并不一定像人们想象中的必须来自经验丰富的软件开发人员或项目经理,甚至可以是非行业人员,那么什么是架构是应该具备的素质呢?
首先需要是探索者,比如:发现新大陆的哥伦布,敢于尝试新技术,,为提高竞争力寻找和尝试优化的解决方案。
其次是设计师,将优秀的功能和性能,可用性和实用性设计涉及到软件中去。
然后需要是倡导者,推动团队建立前瞻性的战略眼光
4架构师的责任与目的

首先是设计为解决实际问题所需提供的答案的思路和计划
然后创立一个能够满足这样需求的架构
最后为使整个团队为这个目标而努力,需要对不同的团队人员用不同工具方法将设计思路准确无误的与大家沟通、建立共识
 

第二部分:软件架构的设计

 

1、架构师需要思考的问题:

客户与市场需要解决的问题
是否在真正解决正确问题
开发的局限是什么
究竟需要开发什么样的功能,多少功能,才能满足需要
是否有更灵活或简单的设计
软件在设计、部署、运行、维护、升级等方面是否有特别的要求
2、针对以上种种需要考虑的问题,架构师如何着手架构呢?

首先应该从需求着手:
需求是什么
从哪里得到和总结这些需求
考虑哪些因素使我能够得到更完整的需求分析
3、从哪得到需求分析的数据和信息

1.项目合同书
对市场的调查和对竞争者产品的分析
对使用者的调查及回馈总结
对用户使用产品过程的观察
访问用户的谈话记录
用户对系统的升级要求
以往类似项目的总结分析
现有系统的问题报告和维护历史记录
对用户的售后服务和技术支持的历史
项目资助者的要求
4、完善的需求分析需要考虑:

除了可从招标的合同或客户要求获得:使用者需求,功能需求,肺功能需求,性能需求,质量需求和从项目意向总结书获得商业或业务需求外,还需要考虑:
国家、地区、行业的标准(非功能需求)
为支配套的系统规范(系统需求)
发开团队能力,技术成熟性和可行性(称为开发局限)
5、用质量属性的选择帮助确定项目的需求范围

可以利用质量标准的互相对立和制约的因素来决定开发工作的侧重点和优先权:
可靠性
效率性
灵活性
完整性
兼容性
可维护性
多用转换型
稳定性
重复使用性
健全性
可测性
可用性
6、需求影响到甚至决定软件的架构

项目的总体范围
不同功能的开发的重要性和顺序优先级
与外部组件的系统的接口规范和标准
开发资源的分配
开发时间表的制定
软件各质量属性的选择和通过标准的制定
对软件各种质量的测试说明
软件发行通过关口的监测标准
 

7、良好需求分析的特征(SMART

具体的(Specific):每个所需开发的功能都是清晰的定义了的了
可衡量的(Measurable):整个系统和每个组建的功能完整性和质量程度都具备可以衡量和监测的标准
可付诸行动的(Actionable):每个需求都可以用具体的功能和性能涉及来满足
现实的(Realistic):每个需求都是符合实际的、可以用现有技术和资源加以解决
有时间限制的(Time-Bound):每个具体功能的开发任务都是可以在目前项目的时间范围内完成得了的
 

第三部分:模式、框架和参照设计

 

1、模式:

举例:古埃及金字塔,作为国王的坟墓最早不是三角形的,,侧面看是梯形的性形状。很多年后大家觉得这样的建筑很浪费地面面积,于是尝试在下层的坟墓上面继续往上垒一个小些的梯形,直到不能再往上叠加了,就形成了类似三角形的金字塔。可是刚开始人们技术不成熟,梯形德行住那个大小各异。垒的没有规律,以致出现偏斜,塌陷,变形,不稳固的情况。人们研究发现侧面与地面成45度角的时候是最稳固的,于是以后严格按照这种模式形成了今天大家看到的稳固结实的三角形的金字塔。
可见应用成熟的模式是多么重要
2、模式在知识理念中的作用:

由抽象到具体的顺序依次是:
模式patterns,
应用设计框架FrameWork,
应用实践的参照设计Reference Implementation,
平台Platform
3、模式的概念:

模式是人为设计的思路
他是为解决某个或某些具体问题的答案和解答参照
模式并不是一个完整的具体软件设计或源代码,也不是程序中的计算法,而是为解决共有问题的通用的解答思路和方案模板(template)
模式常常被整合在一起或集中使用,提供一个为解决更大和更复杂的问题的解决方案,而组成一个解决问题的通用框架(framework)
4、框架的概念:

框架是在使用模式的基础上,具体采用一个或多个模式,为解决具体的应用问题而建立的答案
5、框架为开发软件和系统提供了一个高效率的开发环境:

      统一的平台和开发工具
最高效率的采用被验证了的模式、技术、组建
推动软件在使用和质量的提高、避免重复开发
充分利用大量共享的开发知识
6、目前的通用框架

       .NET Framework,Web Sphere,etc。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐