架构师培训1-软件架构设计思想与体系创建资料

上传人:我** 文档编号:114656980 上传时间:2019-11-12 格式:DOCX 页数:25 大小:362.52KB
返回 下载 相关 举报
架构师培训1-软件架构设计思想与体系创建资料_第1页
第1页 / 共25页
架构师培训1-软件架构设计思想与体系创建资料_第2页
第2页 / 共25页
架构师培训1-软件架构设计思想与体系创建资料_第3页
第3页 / 共25页
架构师培训1-软件架构设计思想与体系创建资料_第4页
第4页 / 共25页
架构师培训1-软件架构设计思想与体系创建资料_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《架构师培训1-软件架构设计思想与体系创建资料》由会员分享,可在线阅读,更多相关《架构师培训1-软件架构设计思想与体系创建资料(25页珍藏版)》请在金锄头文库上搜索。

1、第一章 软件架构设计思想与体系创建第一节 软件架构师的角色和应掌握的知识体系 一、软件架构 软件架构(software archiecture)的一种定义是这样的: 架构是一组有关如下要素的重要决策: 软件系统的组织,构成系统的结构化元素,接口和它们相互协作的行为的选择,结构化元素和行为元素组合成粒度更大的子系统的方式的选择,以及指导这一组织(元素及其接口、协作和组合方式)的架构风格的选择。 软件架构可以有多种定义,不管对软件架构如何定义,所有的定义都有一个共同的主题,那就是必须考虑诸如原理、组织、风格、模式、职责、协作、连接、系统的动机和主要子系统等大尺度方面的问题。软件架构实际上是两个层面

2、的事情,一个是设计构造一个完整的软件系统,这里的架构也称作软件体系结构(Software Archiecture)。另一个层面是构造一个统一的共享的框架或者称架构(Framework),这种架构事实上是系统的一个基于服务的层。软件架构在整个软件开发过程中,是处在软件体系结构设计阶段(设计),它的必要的输入,是来自需求工程(分析),而它的输出,是实现设计(编程),因此这是一个承上启下过程节点。 在软件开发中,架构既可以是名词,也可以是动词。 作为名词,架构包括上面所定义的内容。 作为动词,架构一部分是调研,一部分是设计,更清晰的,是架构调研和架构设计。 架构调研: 是指识别对系统存在或可能存在重

3、大影响的功能性或非功能性需求(特别是非功能性需求),例如市场趋势、性能、成本、维护和系统演进等。广义上,是对系统的重大设计决策有特别影响的需求进行分析。 架构设计: 是对软件、硬件、网络、运营、政策等软件设计中的需求和要素进行决策。在统一过程里面,架构调研和架构设计统称为架构分析。软件架构设计是一个系统工程,它需要系统构架师有很宽的知识面,从需求分析、架构设计到类设计甚至代码实现都需要有透彻的理解,这之间的关系是你中有我我中有你,是不可能截然分开的。在这个课程中,我会站在相对抽象的角度,对软件系统设计的思想和方法做一些讨论,这些观点,也是不少资深系统架构师经验的集合。必须说明,软件系统设计的方

4、法不是一个僵化的规则,我表达的一些观点你也不一定赞成,这不要紧,关键是在实践中实事求是的摸索规律,从而找出一些符合实际的方法来。 二、软件架构师的角色 尽管对软件架构师的角色有这样或那样的定义,但大体上下面几个职责是必需的。 1、技术负责,解决方案的提供者 2、与项目经理合作,制定计划,决定成员,组织团队 3、保证项目按计划和走向完成由于设计是由需求驱动的,所以,掌握需求分析的技巧,是一个好的架构师必备的能力。 三、软件架构师最难处理的问题1、不是做什么,而是不做什么 2、不是从纯技术的角度来考虑整个项目 3、预见客户走向,早期决定技术研发 4、不能使用时髦但不可靠的技术 四、如何成长为一个好

5、的系统架构师架构师必须关注需求、分析需求,有人认为架构师只是在需求出来以后,把它的实现模型做出来就行了,真要是这样,那做一个架构师未免也太容易了。事实上,现代迭代开发所有的驱动力都在于需求变更,如果架构师不关注需求,不关注和用户的讨论和沟通,那是很难设计出真正有用的东西来的。软件架构设计是一个非常严肃、细致、敏感而且困难的工作,必须一点一滴认真做起,扎扎实实的努力,实实在在的积累经验,尤其是在失败中积累经验,这是一个软件架构师成功的必由之路。为此,我们需要注意下面几点: 1、首先必须是一个好的程序员,技术上要强 2、知识结构:对象的观点,UML,RUP,设计模式 关键不是懂得了原理,而是灵活融

6、合的应用 3、系统的观念:分析能力,把握抽象的能力 4、沟通能力:与客户沟通能力,与项目其它成员的沟通能力 5、知识面要广,把握行业流行趋势,但不要赶时髦 6、灵活机动,不能教条 五、几个观点 1、要承认软件是不完美的 2、要承认需求是不完全的 3、关键是拥抱变化而设计 4、各种性能标准,什么是架构师最关注的呢? 5、架构师最重要的素质:把握重点。注意:灵活的把握,实事求是的分析, 善意和把握重点的沟通, 有先见性的设计, 这是一个优秀的系统构架师活的灵魂。第二节 软件分析和设计的方法学问题 由于架构设计的源泉来自于软件分析,不同的分析与设计方法,将会带来完全不同的架构思路。从方法学的角度来讲

7、,目前分析和设计方法主要分为面向过程的方法与面相对象方法两种。一、面向过程的方法面向过程方法又称为结构化方法,起源于20世纪70年代,主要由面向过程分析、面向过程设计和面向过程编程三部分组成。面向过程分析:帮助开发人员定义系统需要做什么(处理需求),系统需要存储和使用那些数据(数据需求),系统需要什么样的输入和输出,以及如何把这些功能结合在一起来完成任务。面向过程分析的主要工具是数据流图(DFD),这是一种显示面向过程分析中产生的输入、处理、存储和输出的图形模型。在现代面向过程设计中,也引入了事件的概念。面向过程设计:面向过程设计是为下列事务提供指导:程序集是什么,每个程序应该实现哪些功能能,

8、如何把这些程序组成一张层次图。面向过程设计的主要工具是结构图,这是一种表达程序模块层次的图形模型。面向过程编程:具有一个开始和结束的程序或者程序块,并且程序执行的每一步都由三部分组成:顺序、选择或者循环结构,实现这种思想的最典型的语言就是C。整个面向过程设计的根本目标是:把复杂的系统分解成简单模块的层次图。二、面向对象的的方法面向对象的方法由面向对象分析(OOA)、面向对象设计(OOD)以及面向对象编程(OOP)三部分组成。面向对象方法与面向过程方法根本区别,是把信息系统看成一起工作来完成某项任务的对象集合,而对象是系统对消息作出做出响应的事物,所以面向对象方法中最值得关注的不是它该做什么,而

9、是它如何做出反应,也就是消息,这是和面向过程方法的根本不同。面向对象分析(OOA):定义在系统中工作的所有类型的对象,并显示这些对象如何通过相互作用来完成任务,主要工具是统一建模语言(UML)。面向对象设计(OOD):定义在系统中人机进行通讯所必需的所有类型的对象,并对每种类型的对象进行细化,以便可以用一种具体的语言来实现这些对象。面向对象编程(OOP):用某种具体语言(C+、Java、C#、C的对象模块等)来实现各种对象的行为,包括对象间的消息传递。这里的关键是类图:用面向对象的方法显示系统中所有对象所属类的图形模型。面向对象的方法起源于20世纪60年代挪威Simula编程语言的开发,80年

10、代建立了整体框架,90年代由于C+的崛起和UML被广泛认可,逐步成长为一种主要的和现代的分析和设计方式。面向对象的方法和传统面向过程方法有很大不同,它的思维方式不是以设备结构为基础,而是利用可感知的对象来思考,对人而言,这是更加自然或者直观的。但是,如果只是把传统概念简单包装一下换成对象方法(比如封装),并不能得到实实在在的好处,反而使OO很难理解,面向对象的方法关注的是事件、重用和继承,关注的多态,它自己有一整套独特的思维方式,这和面向过程方法是根本不同的。90年代中期以后,这种关注带来了许多新的思维,有代表性的就是设计模式的提出,设计的质量更高,系统的优化空间更大,这就是说应用面向对象的方

11、法,将会给我们提高设计质量带来巨大的好处由于面向对象方法把对象看成系统对消息做出响应的事物,这种与面向过程完全不同的看待计算机系统的方法,必然导致完全不同的分析、设计和编程方式。有人认为,学会了UML几张图或几个符号,就会对象方法了,这是个误会,UML只是一个表达的工具,关键是在什么层面上去思考。有个问题,是不是使用面向过程的程序语言(比如C),就一定要使用面向过程方法,实践表明并不是这样的,面向对象更多的是一种思维方式,面向过程的语言只需要略加改造就可以应用这种思想(继承、封装、多态),国外在这些方面有很多成功的案例和讨论,国内在一些大型嵌入式项目中也有很好的尝试。一般来说,面向过程技术与面

12、向对象技术是不能混用的,因为这两种设计技术基本思想是完全不同的,基本的原则也是不一样的,面向过程设计提供的是系统功能的体系结构,而面向对象技术是建立一系列交互对象的体系结构,思维不同,方式重点也必然不一样,这点是需要说清楚的。在这个课程中,我们将沿着软件分析和设计的过程,重点研究面向对象的方法,同时与面向过程方法对比着,把思想方法和工作方法讨论清楚。第三节 在信息技术战略规划(ITSP)中的软件架构一、利用信息技术战略规划整合客户需求信息技术战略规划(ITSP)的核心思想简述如下:在信息时代,知识经济下,正确的结合IT规划,整合的核心竞争力,在新一轮的产生、发展中取得更大的市场竞争力是必要的。

13、 信息化的问题首先是企业管理层概念的问题。企业管理层的重视,和对信息化的高度认同是企业信息化的关键所在。当前国内很多企业管理层很关心资本运作的问题,而对很多国企业而言,管理层最关心的是扭亏增盈。信息化建设投入大、周期长、见效慢、风险高,往往不是企业需要优先解决的问题,导致管理层对信息化的重视程度不够,无法就信息化建设形成共识对企业管理信息化带来的管理模式变化不适应,又抵触心态,或者仅是为了形象问题,赶潮流搞信息化。国家提出信息化带动工业化,信息化成为一种时髦,信息化工程往往成为企业的形象工程。有些公司缺乏统一完整的IT方向,希望上短平快的项目,立竿见影,跳过系统的一些必要发展阶段,导致系统后继

14、无力,不了了之。20世纪末的电子商务热潮充分说明了这个问题。有些公司对信息化建设的出发点不明确,在各个方案厂商铺天盖地的宣传下,不能很好的把握业务主线,仅是为了跟随潮流,既浪费了资源,同时也对后继的信息化造成了廖不良的影响,甚至直接导致“领导不重视”这样的后果。如今国家正在大力推广企业信息化。然而人们大多从技术角度来谈论信息化和评价解决方案,他们往往脱离了企业的实际需要,以技术为本是不能根治企业疾病的。企业依然必须明确自己的核心竞争力。明确一切的活动和流程都是围绕让核心竞争力升值的过程。IT规划意识如此,必须也企业核心、业务为本。再结合公司的实际情况。开发自己需要的系统。信息化的建设难以对投入

15、产出进行量化,难以进行绩效评估,CIO们无法让企业管理切实感受到信息化带来的直接效益经济效益、社会效益。战略规划是一套方法论,用于企业的业务和IT的融合以及IT自身的规划。必须满足如下要求:1.先进性:采用前瞻性、先进成熟的模型、方法、设备、标准、技术方案,使建议的企业信息方案既能反映当前世界先进水平,满足企业中长期发展规划,又能符合企业当前的发展步调,保持企业IT战略和企业战略的一致性。2.开放性:为保证不同产品的协同运行、数据交换、信息共享,建议的系统必须具有良好的开放性,支持相应的国际标准和协议。3.可靠性:建议的系统必须具有较强的容错能力和冗余设备份,整体可靠性高,保证不会因局部故障而引起整个系统瘫痪。4.安全性:建议规划中必须考虑到系统必须具有高度的安全性和保密性,保证系统安全和数据安全,防止对系统各种形式的非法入侵。5.实用性:规划中建议的系统相关必须提供友好的中文界面的规范的行业用语,并具有易管理、易维

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号