软件架构学习小结-.

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软件架构设计系统整体架构,从需求到设计的每个细节都要考虑到,把握整个项目,使设计的项目尽量效率高,开发容易,维护方便,升级简单。本文从架构师职责、软件架构定义、设计架构、评估架构、架构管理等方面来描述了解软件架构的含义和怎样设计软件架构。

一、软件架构师的职责

架构师分为以下几大类:业务架构师、主题领域架构师、技术架构师、项目架构师(J2EE 架构师、.NET架构师等)、系统架构师。

1、架构师的职责主要体现

架构师的职责就是设计一个公司系统的基础架构,并提供关于怎样建立和维护系统的指导方针。具体来讲,架构师的职责主要体现在以下几方面:

1)、负责公司系统的架构设计、研发工作。

2)、承担从业务向技术转换的桥梁作用。

3)、协助项目经理制定项目计划和控制项目进度。

4)、负责辅助并指导系统分析开展设计工作。

5)、负责组织技术研究和攻关工作。

6)、负责组织和管理公司内部的技术培训工作。

7)、负责组织及带领公司内部员工研究与项目相关的新技术。

8)、管理技术支撑团队并给项目、产品开发实施团队提供技术保障。

9)、理解系统的业务需求,制定系统的整体框架(包括、技术框架和业务框架)。

10)、对系统框架相关技术和业务进行培训,指导开发人员开发。并解决系统开发、运行中出现的各种问题。

2、构架设计师必须具备的技能

经验:既包括在问题领域的经验(通过彻底了解需求),也包括在软件工程领域的经验。对于一个构架团队,这些素质要求可由各团队成员来分别承担,但其中至少要有一名构架设计师能够把握项目的全局。

领导才能:能够推动各个团队的技术进展,并能在压力下作出关键性的决策然后将其贯彻到底。要提高效率,构架设计师和项目经理必须紧密协作。构架设计师主要负责解决技术问题,项目经理主要负责解决行政管理问题。构架设计师必须有权在技术问题上作出决定。

沟通:能够赢得他人的信任,以对其进行说服、激励和指导。构架设计师不能靠命令进行领导,而必须要赢得项目中其他人员的赞同。为了提高效率,构架设计师必须赢得项目团队、项目经理、客户、用户群体以及管理团队的尊敬。

以目标为中心、积极主动:不懈地追求成效。构架设计师是推动项目发展的技术动力,而不是空想家。在其职业生涯中,成功的构架设计师一直都要在捉摸不定和承受压力的情况下作出折衷决定。构架设计师只有将注意力集中在该做的事情上,才能在项目中取得成功。

专业:精通构架设计的理论、实践和工具,并掌握多种参考构架、主要的可重用构架机制和

模式(例如J2EE架构等)。具备系统设计员的所有技能,但涉及面更广、抽象级别更高。

二、软件架构、架构模式、参考模型、参考架构

1、对于软件架构定义有很多种,通用的定义是:某个软件或计算机系统的软件架构是该系统的一个或多个结构,他们由软件元素,这些元素的外部可见属性以及这些元素之间的关系组成。

这里所说的某个元素的“外部可见属性”是指其他元素对该元素所做的假设,如它所提供的服务、性能特征、错误处理、共享资源的使用,等等。

其他的定义包括:架构是一种高层设计。架构是系统的总体结构。架构是一个软件或系统的组件、组件之间的相互关系以及管理其设计和演变的原理和方针的结构。架构是组件和连接器。

2、架构模式是对元素和关系类型以及一组对其使用方式的限制的描述。

3、参考模型是一种考虑数据流的功能划分。

4、参考架构是映射到软件元素(它们相互协作,共同实现在参考模型中定义的功能)及元素之间数据流上的参考模型。

5、软件架构、架构模式、参考模型、参考架构之间的关系:

注:在<Pattern-Oriented Software Architecture (面向模式的软件体系架构) >中首次提出了8种体系结构模式:层(Layers)、管道和过滤器(Pipes and Filters) 、黑板(Black board )、代理者(Broker)、模型-视图-控制器(Model-View-Controller)、表示-抽象-控制(Presentation-Abstraction-Control)、微核(Microkernel)、映像(Reflection)。

6、架构定义中指出系统由多种结构构成的,下面列出一些常见的结构。

7、质量属性

系统从设计、实现到部署的整个过程中考虑质量属性的实现。质量属性包括下列三类:(1)、系统的质量属性。(可用性、可修改性、性能、安全性、可测试性和易用性)(2)、受架构影响的商业属性。(上市时间、成本和收益、所希望的系统生命期的长短、目标市场、推出计划、与老系统的集成)

(3)、与架构本身相关的一些质量属性。(概念完整性、正确性与完整性、可构建性)

六个质量属性的战术列表:

相关文档
最新文档