系统架构师的任务

系统架构师的任务
         软件系统架构师在整个项目中领导并协调与 技术相关的活动和制品。从技术、结构、软件系统的组织结构角度调整一些主要设计决定。与RUP中其它角色相比,软件系统架构师更注重广度,而不是深度。
         软件系统架构师要能够在信息不完整的情况下把握问题的本质,并作出合理、关键的决定。
         经验、领导能力(Architect负责技术方面的问题,项目经理负责商业和管理方面的问题)、沟通能力(不能被法规所领导,要由其余团队的意见所领导)、面向目标的工作态度(必须一切以结果为中心,对问题精益法求精的完美主义者不适合担当这个角色)。
         交流:
         在项目经理和开发团队之间建立联系
         在内部成员和涉众之间建立联系(系统体系结构小组和项目小组)
         在不同开发小组之间建立联系(保证架构完整性)
系统架构(Architecture)
         (1)定义
         组成系统的结构元素及它们的接口、元素之间的联系渠道、把这些结构和行为元素组成更大的系统、指导开发组织的架构风格。
         其它:易用性、功能性、性能、可适应性、可复用性、可理解性、权衡经济和技术的约束条件、对美学的关注。
         系统架构师只关注对系统架构具有重要意义的需求和与架构相关的设计决定。
         (2)模型和视图(包括其中的一种或几种)
         logic view(存在于所有系统中),显示软件的所有元素及它们的结构:类、包等。
         process view,存在于分布式系统和并发系统中,显示不同实体间的并行关系及实现通信和保持同步的方式。
         implementation view,显示实现的元素(源代码文件、可执行文件等)在开发环境中的组织方式。
         deployment view,显示不同的运行时构件在运行时如何被复制和交付及它们之间如何通信。
         use-case view,捕获最很重要的需求:对系统架构有重要影响的用例或用例的一部分,还包括非功能性需求。可能还包括用例的实现,以此说明系统的工作方式。
         前4个视图在解决方案空间,后一个在问题空间与前4个建立联系。为4+1视图。
         以下来自于转载资料: http://hi.baidu.com/yayalotus/blog/item/ad792b732dd03a1c8701b0fe.html
         4+1视图包括:逻辑视图(Logic View),开发视图(Develop View),进程视图(Process View),物理视图(Physical View)和场景视图(Scenarios)。
         
         通常我们选择UML来表现各种视图,以下列出了UML和各视图的对应关系
         4+1 视图                                    UML
         场景视图                             use case
         逻辑视图                             类图
         开发视图                             类图,组件图
         进程视图                             无完全对应
         部署视图                             部署图
         在架构设计稳定中通常不会给出较多的用例描述,这些是在需求稳定中定义。但是往往架构文档会选择一些用例,列入文档中,这些用例和一些非功能性需求一起用以证明架构的有效和正确性。在逻辑视图中用例的实现是必不可少的一节,尽管架构设计更关注非功能性需求。
融入MDA的思想
         对于逻辑视图和开发视图所应包含的内容常常会觉得很难区分两者间的明显界限。逻辑视图包含更多的分析模型与实现技术本身相关性应该较少,如业务对象模型及其扩展。而开发视图则会与实现技术紧密相关。
随着MDA思想的推广,在架构设计文档的撰写方面也产生了影响,我们不难把MDA的PIM和逻辑视图联系起来,而把MDA中的PSM和开发视图联系起来。

         在编写逻辑视图是我们应该描述与技术平台无关的模型,而开发视图则描述与实现技术平台相关的模型。如在逻辑视图中表现的某些实体类,我们会在开发视图中转换为EJB组件(实体Bean)。这种做法不仅有利于我们编写架构设计文档,同时更是一种好的架构设计思考流程。(引完)
软件架构文档(SAD)
         RUP中软件架构文档是全面的,架构师做的第一步就要对其进行剪裁。实际的架构要通过架构原型来验证。架构机制代表了对常见问题的通用的、具体的解决方案。它们可能是结构模式、行为模式或两者的结合。另外还有一些附加的结构如指导(guidline)。主要来完成一些制品,如风险列表、项目计划和迭代计划、外貌、需求和用例等。
系统架构师的工作(VRAPS)
         vision:架构外貌在软件架构文档中有详细描述并与项目整体的外貌文档相联系。在RUP细化阶段执行的很多活动都与架构文档相关。
         Rhythm:三重节拍:周期、迭代和创建。
         Anticipation:不同的原则相互影响:好的节奏是使开发人员不断回顾并重新评估系统的架构。
         Partnering:对复用充满热情。
         Simplification:对系统架构和组织环境做出净化。
 系统架构师在RUP中的活动

  •  与需求和项目管理相关的活动
    排列用例的优先级、分析架构、创建用于验证架构的原型。
  •   细化架构
    识别设计机制、识别设计元素、结合现存的设计元素、结构化实现模型、描述分布和运行时的架构、
  •   维护架构的完整性
    开发设计指导、编程指导、回顾架构

在RUP中找到自己的方法
          熟悉一些基本概念:迭代开发、RUP生命周期(阶段和迭代)、风险管理,并理解一些与架构有直接关系的概念:构件和不同的架构视图。查看术语表中的定义是一个可行的办法。
           1、通过RUP角色进入RUP,执行为这个角色定义的各种活动。
            2、从制品开始:软件架构文档(它的模板和示例)。
            3、从Roadmap开始:开发构件解决方案。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
课程通过实际项目融入常用开发技术架构,讲授风格独特,提供详细上课日志及答疑,赠送配套的项目架构源码注释详细清晰且表达通俗,均能直接在实际项目中应用,正真的物超所值,价格实惠任务作业:综合运用《C#/.Net企业级系统架构设计实战精讲教程》课程所学知识技能设计一个学生成绩管理系统的架构。要求:1.系统基于MVC的三层架构,各层单独建不同的解决方案文件夹。2.采用Model First开发方式,设计架构时只需要设计学生表(TbStudent)和课程表(TbCourse)。学生表必须有的字段是ID、stuName、age;课程表必须有的字段是ID、courseName、content。3.数据访问层采用Entity Framework或NHibernate来实现,必须封装对上述表的增删改查方法。4.必须依赖接口编程,也就是必须要有数据访问层的接口层、业务逻辑层的接口层等接口层。层层之间必须减少依赖,可以通过简单工厂或抽象工厂。5.至少采用简单工厂、抽象工厂、Spring.Net等技术中的2种来减少层与层之间的依赖等。6.封装出DbSession类,让它拥有所有Dal层实例和SaveChanges方法。7.设计出数据访问层及业务逻辑层主要类的T4模板,以便实体增加时自动生成相应的类。8.表现层要设计相关的控制器和视图来验证设计的系统架构代码的正确性,必须含有验证增删改查的方法。9.开发平台一定要是Visual Studio平台,采用C#开发语言,数据库为SQL Server。10.提交整个系统架构的源文件及生成的数据库文件。(注意: 作业需写在CSDN博客中,请把作业链接贴在评论区,老会定期逐个批改~~)
课程简介:  本项目课程是一门极具综合性和完整性的大型项目课程;课程项目的业务背景源自各类互联网公司对海量用户浏览行为数据和业务数据分析的需求及企业数据管理、数据运营需求。 本课程项目涵盖数据采集与预处理、数据仓库体系建设、用户画像系统建设、数据治理(元数据管理、数据质量管理)、任务调度系统、数据服务层建设、OLAP即席分析系统建设等大量模块,力求原汁原味重现一个完备的企业级大型数据运营系统。  拒绝demo,拒绝宏观抽象,拒绝只讲不练,本课程高度揉和理论与实战,并兼顾各层次的学员,真正从0开始,循序渐进,每一个步骤每一个环节,都会带领学员从需求分析开始,到逻辑设计,最后落实到每一行代码,所有流程都采用企业级解决方案,并手把手带领学员一一实现,拒绝复制粘贴,拒绝demo化的实现。并且会穿插大量的原创图解,来帮助学员理解复杂逻辑,掌握关键流程,熟悉核心架构。   跟随项目课程,历经接近100+小时的时间,从需求分析开始,到数据埋点采集,到预处理程序代码编写,到数仓体系搭建......逐渐展开整个项目的宏大视图,构建起整个项目的摩天大厦。  由于本课程不光讲解项目的实现,还会在实现过程中反复揉和各种技术细节,各种设计思想,各种最佳实践思维,学完本项目并勤于实践的话,学员的收获将远远超越一个项目的具体实现,更能对大型数据系统开发产生深刻体悟,对很多技术的应用将感觉豁然开朗,并带来融会贯通能力的巨大飞跃。当然,最直接的收获是,学完本课程,你将很容易就拿到大数据数仓建设或用户画像建设等岗位的OFFER课程模块: 1. 数据采集:涉及到埋点日志flume采集系统,sqoop业务数据抽取系统等; 2. 数据预处理:涉及到各类字典数据构建,复杂结构数据清洗解析,数据集成,数据修正,以及多渠道数据的用户身份标识打通:ID-MAPPING等;3. 数据仓库:涉及到hive数仓基础设施搭建,数仓分层体系设计,数仓分析主题设计,多维分析实现,ETL任务脚本开发,ETL任务调度,数据生命周期管理等;4. 数据治理:涉及数据资产查询管理,数据质量监控管理,atlas元数据管理系统,atlas数据血缘管理等;5. 用户画像系统:涉及画像标签体系设计,标签体系层级关系设计,各类标签计算实现,兴趣类标签的衰减合并,模型标签的机器学习算法应用及特征提取、模型训练等;6. OLAP即席分析平台:涉及OLAP平台的整体架构设计,技术选型,底层存储实现,Presto查询引擎搭建,数据服务接口开发等;7. 数据服务:涉及数据服务的整体设计理念,架构搭建,各类数据访问需求的restapi开发等;课程所涉及的技术: 整个项目课程中,将涉及到一个大型数据系统中所用到的几乎所有主要技术,具体来说,包含但不限于如下技术组件:l Hadoopl Hivel HBasel SparkCore /SparkSQL/ Spark GRAPHX / Spark Mllibl Sqoopl Azkabanl Flumel lasal Kafkal Zookeeperl Solrl Prestop
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值