欢迎来到天天文库
浏览记录
ID:43784198
大小:1009.70 KB
页数:26页
时间:2019-10-14
《架构师培训讲义1-软件架构设计思想与体系创建_图文文库》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、第一章软件架构设计思想与体系创建第一节软件架构师的角色和应掌握的知识体系一、软件架构软件架构(softwarearchiecture)的一种定义是这样的:架构是一组有关如下要素的重要决策:软件系统的组织,构成系统的结构化元索,接口和它们相互协作的行为的选择,结构化元索和行为元素组合成粒度更人的子系统的方式的选择,以及指导这一组织(元素及其接口、协作和组合方式)的架构风格的选择。软件架构可以有多种定义,不管对软件架构如何定义,所有的定义都有一个共同的主题,那就是必须考虑诸如原理、组织、风格、模式、职责、协作、连接、系统的动机和主要子系统
2、等大尺度方面的问题。软件架构实际上是两个层而的事情,一个是设计构造一个完整的软件系统,这里的架构也称作软件体系结构(SoftwareArchiecture)o另一个层而是构造一个统一的共享的框架或者称架构(Framework),这种架构事实上是系统的一个基于服务的层。软件架构在整个软件开发过程中,是处在软件体系结构设计阶段(设计),它的必要的输入,是來自需求工程(分析),而它的输出,是实现设计(编程),因此这是一个承上启下过程节点。在软件开发屮,架构既可以是名词,也可以是动词。作为名词,架构包括上面所定义的内容。作为动词,架构一部分是
3、调研,一部分是设计,更清晰的,是架构调研和架构设计。架构调研:是指识别对系统存在或可能存在重大影响的功能性或非功能性需求(特别是非功能性需求),例如市场趋势、性能、成木、维护和系统演进等。广义上,是对系统的重大设计决策冇特别彩响的需求进行分析。架构设计:是对软件、硬件、网络、运营、政策等软件设计屮的需求和要素进行决策。在统一过程里面,架构调研和架构设计统称为架构分析。软件架构设计是一•个系统工程,它需要系统构架师有很宽的知识面,从需求分析、架构设计到类设计其至代码实现都需耍有透彻的理解,这之间的关系是你小有我我屮有你,是不可能截然分开
4、的。在这个课程中,我会站在相対抽彖的角度,对软件系统设计的思想利方法做一些讨论,这些观点,也是不少资深系统架构师经验的集合。必须说明,软件系统设计的方法不是一个僵化的规则,我表达的一些观点你也不一定赞成,这不要紧,关键是在实践中实事求是的摸索规律,从而找出一些符合实际的方法來。二、软件架构师的角色尽管对软件架构师的也色有这样或那样的定义,但人体上下面几个职责是必需的。1、技术负责,解决方案的提供者2、与项FI经理合作,制定计划,决定成员,纽织团队3、保证项目按计划和走向完成由于设计是山需求驱动的,所以,掌握需求分析的技巧,是一个好的架
5、构师必备的能力。三、软件架构师最难处理的问题1、不是做什么,而是不做什么2、不是从纯技术的角度来考虑整个项目3、预见客户走向,早期决定技术研发4、不能使用时髦但不可靠的技术四、如何成长为一个好的系统架构师架构师必须关注需求、分析需求,有人认为架构师只是在需求出來以后,把它的实现模型做出来就行了,真耍是这样,那做一个架构师未免也太容易了。事实上,现代迭代开发所有的驱动力都在于需求变更,如果架构师不关注需求,不关注和用户的讨论和沟通,那是很难设计出真正有用的东西來的。软件架构设计是一个非常严肃、细致、敏感而且困难的工作,必须一点一滴认真做
6、起,扎扎实实的努力,实实在在的积累经验,尤其是在失败中积累经验,这是一个软件架构师成功的必由Z路。为此,我们需要注意下面几点:1、首先必须是一个好的程序员,技术上要强2、知识结构:对象的观点,UML,RUP,设计模式关键不是懂得了原理,而是灵活融合的应用3、系统的观念:分析能力,把握抽象的能力4、沟通能力:与客户沟通能力,与项目英它成员的沟通能力5、知识面要广,把握行业流行趋势,但不要赶时堀6、灵活机动,不能教条五、几个观点1、耍承认软件是不完美的2、要承认需求是不完全的3、关键是拥抱变化而设计4、各种性能标准,什么是架构师最关注的呢
7、?5、架构师最重要的素质:把握重点。注意:灵活的把握,实事求是的分析,善意和把握重点的沟通,有先见性的设计,这是一个优秀的系统构架师活的灵魂。第二节软件分析和设计的方法学问题由于架构设计的源泉來自于软件分析,不同的分析与设计方法,将会带來完全不同的架构思路。从方法学的角度来讲,目前分析和设计方法主要分为面向过程的方法与面相对象方法两种。一、面向过程的方法血向过程方法乂称为结构化方法,起源于20世纪70年代,主要山面向过程分析、面向过程设计和面向过程编程三部分组成。面向过程分析:帮助开发人员定义系统需要做什么(处理需求),系统需要存储和
8、使用那些数据(数据盂求),系统盂要什么样的输入和输出,以及如何把这些功能结合在一起来完成任务。面向过程分析的主要工具是数据流图(DFD),这是一种显示面向过程分析屮产生的输入、处理、存储和输出的图形模型。在现代而向过程设
此文档下载收益归作者所有