架构设计师,软件架构设计主要应用于软件生存周期的哪个阶段( 二 )


架构设计师,软件架构设计主要应用于软件生存周期的哪个阶段


3,什么是SOA架构设计师的职责 什么是SOA架构设计师与设计和开发人员之间的差别呢?相信这些都是使大家最容易产生迷惑的问题 。举个实际的例子来说,当构建一个基于SOA架构的系统的时候,针对一个具体的 service,系统设计人员主要应该关注的是这个service能够为外部用户提供什么样的服务,也就是说系统设计人员关注的是这个service所提供的功能 。而对于SOA架构设计师来说,他们更关心的可能是当有一千个用户同时调用这个 service的时候,什么会发生?也就是说架构设计师关注的应该是一些商业需求和服务级别(service-level)需求 。所有的架构设计师的角色都包含了在构建一个系统的一开始就应该尽量减少可能存在的技术风险 。而技术风险一般指的是一切未知的、未经证明的或未经测试所带来的风险 。这些风险通常与服务级别(service-level)需求相关,偶尔也会与企业具体的业务需求相关 。无论是哪种类型的风险,在项目初期设计整体系统架构的过程中更易于发掘这些风险,如果等到架构实施时再发觉这些风险,那么很可能会致使大量的开发人员等在那里,直到这些风险被妥善解决 。如果进一步的细化,我们可以看到SOA架构设计师的主要任务包括对整个系统解决方案轮廓的构建,需求分析,对体系结构的整体决策,相关组件建模,相关操作建模,系统组件的逻辑和物理布局设计 。作为SOA架构设计师必须要能够领导整个开发团队,这样才能保证设计和开发人员是按照构建好的系统架构来开发整个系统的,这一点十分的重要 。这就要求一名架构设计师不仅要有很好的技术洞察力,同时还要具有一定的项目管理和项目实施的能力 。在系统开发的过程中,架构设计师必须要有良好的沟通和表达能力,这就体现在由架构设计师构建的系统模型是否具有很好的可读性和易理解性 。如果由架构设计师构造出的系统模型不是很清晰的话,就可能会影响设计和开发人员对于整个系统架构的理解 。为了避免这种情况的出现,定期由架构设计师主持的开发团队内部讨论是十分重要的 。【架构设计师,软件架构设计主要应用于软件生存周期的哪个阶段】
架构设计师,软件架构设计主要应用于软件生存周期的哪个阶段


4,如何成为一名架构师 软件架构师是软件行业中一种新兴职业,工作职责是在一个软件项目开发过程中,将客户的需求转换为规范的开发计划及文本,并制定这个项目的总体架构,指导整个开发团队完成这个计划 。架构师的主要任务不是从事具体的软件程序的编写,而是从事更高层次的开发构架工作 。架构师不是通过理论学习可以搞出来的,不过不学习相关知识那肯定是不行的 。总结架构师自我培养过程大致如下,仅供参考 。1、架构师胚胎(程序员)学习的知识是语言基础、设计基础、通信基础等,应该在大学完成,内容包括java、c、c++、uml、RUP、XML、socket通信(通信协议)--学习搭建应用系统所必须的原材料 。2、架构师萌芽(高级程序员)学习分布式系统、组建等内容,可以在大学或第一年工作时间接触,包括分布式系统原理、ejb、corba、com/com+、webservice(研究生可以研究网络计算机、高性能并发处理等内容)3、架构师幼苗(设计师)应该在掌握上述基础之上,结合实际项目经验,透彻领会应用设计模式,内容包括设计模式(c++版本、java版本)、ejb设计模式、J2EE构架、UDDI、软件设计模式等 。在此期间,最好能够了解软件工程在实际项目中的应用以及小组开发、团队管理 。4、软件架构师的正式成型在于机遇、个人努力和天赋 。架构师从来都不是看书看来的,需要长久的实践与累积 。最好的方式就是在工作中累积 。首先,你得明确,你是在做产品,不是做项目 。其次,架构的前期需求分析与建模非常重要,多思考未来可能的扩展 。最后,最好有一定的代码规范甚至是洁癖 。要用严格的标准来要求自己,是否当上架构师其实没差,无非就是希望自己成为团队核心得到更多的认可而已 。如觉得自己目前的工作没什么挑战性,也可以自己来设计一款产品,从需求到架构到实现 。碰到那种常见的需求,可以参考一些成熟的第三方开源项目,另外在看第三方项目时,要明白what how why 。what 这个项目是为了解决什么问题而生的,提供了什么样的api?how 它是如何实现的?有哪些小的功能模块组成?它们是怎样解耦的?如果我有扩展需求,我该如何改?why 为什么会这样来实现?有没有更好的方案?一般来说,我们看代码,基本顺序是what how why,能去翻源码理解how的不多,真正做到why的少的可怜 。如果你想提升技术成为主力,那至少,你得多去理解how,试图去解释why 。5,一个优秀的系统架构师要具体哪些能力 1 负责公司系统的架构设计、研发工作;2 承担从业务向技术转换的桥梁作用;3 协助项目经理制定项目计划和控制项目进度;4 负责辅助并指导 SA 开展设计工作;5 负责组织技术研究和攻关工作;6 负责组织和管理公司内部的技术培训工作;7 负责组织及带领公司内部员工研究与项目相关的新技术 。8 管理技术支撑团队并给项目、产品开发实施团队提供技术保障 。11 理解系统的业务需求,制定系统的整体框架(包括:技术框架和业系统架构务框架)12 对系统框架相关技术和业务进行培训,指导开发人员开发 。并解决系统开发、运行中出现的各种问题 。系统架构师的目的:13 对系统的重用、扩展、安全、性能、伸缩性、简洁等做系统级的把握 。————系统架构师的工作在于针对不同的情况筛选出最优的技术解决方案,而不是沉在具体实现细节上 。此外系统架构师是不可培养的,好的系统架构师也许不是一个优秀的程序员,但是不能不懂技术之间的差别,技术的发展趋势,采用该技术的当前成本和后继成本,该技术与具体应用的偶合程度,自己可以调配的资源状况,研发中可能会遇到的风险,如何回避风险 。这些才是架构师需要考虑的主要内容 。架构师是个承上起下的岗位 。所以必须具有统观全局的能力沟通能力(需要和客户或者分析人员沟通 。需要和设计人员一起探讨设计一图) 。决策判断和取舍的能力,如选择什么技术方案对于目前项目是最适合的 。架构师不是只关注功能需求的、很大程度上偏向于非功能需求的考虑 。比如:效率、可靠性、并发、负载等等因为架构设计出来是需要实践检验的 。如果只实现了功能,其它都做得很糟糕,客户是不会满意的,客户或许更关注这个 。架构师更是软件设计大师,优良的设计离不开他 。这是我的一点粗浅看法 。系统架构师负责设计系统整体架构,从需求到设计的每个细节都要考虑到,把握整个项目,使设计的项目尽量效率高,开发容易,维护方便,升级简单,等等 系统架构师的职责: 一、理解系统的业务需求,制定系统的整体框架(包括:技术框架和业务框架) 二、对系统框架相关技术和业务进行培训,指导开发人员开发 。并解决系统开发、运行中出现的各种问题 。系统架构师的目的: 对系统的重用、扩展、安全、性能、伸缩性、简洁等做系统级的把握 。系统架构师能力要求: 一、系统架构相关的知识和经验 。二、很强的自学能力、分析能力、解决问题的能力 。三、写作、沟通表达、培训 。角色 软件架构师software architect 定义 主导系统全局分析设计和实施、负责软件构架和关键技术决策的角色 职责 l、领导与协调整个项目中的技术活动(分析、设计和实施等) 2、推动主要的技术决策,并最终表达为软件构架 3、确定和文档化系统的相对构架而言意义重大的方面,包括系统的需求、设计、实施和部署等“视图” 4、确定设计元素的分组以及这些主要分组之间的接口 5、为技术决策提供规则,平衡各类涉众的不同关注点,化解技术风险,并保证相关决定被有效的传达和贯彻 6、理解、评价并接收系统需求 7、评价和确认软件架构的实现 专业技能 l、技术全面、成熟练达、洞察力强、经验丰富,具备在缺乏完整信息、众多问题交织一团、模糊和矛盾的情况下,迅速抓住问题要害,并做出合理的关键决定的能力 l、具备战略性和前瞻性思维能力,善于把握全局,能够在更高抽象级别上进行思考; l、对项目开发涉及的所有问题领域都有经验,包括彻底地理解项目需求,开展分析设计之类软件工程活动等 2、具备领导素质,以在各小组之间推进技术工作,并在项目压力下做出牢靠的关键决策 3、拥有优秀的沟通能力,用以进行说服、鼓励和指导等活动,并赢得项目成员的信任; 4、以目标导向和主动的方式来不带任何感情色彩地关注项目结果,构架师应当是项目背后的技术推动力,而非构想者或梦想家(追求完美) 5、精通构架设计的理论、实践和工具,并掌握多种参考构架、主要的可重用构架机制和模式(例如j2ee架构等); 6、具备系统设计员的所有技能,但涉及面更广、抽象级别更高; 活动 确定用例或需求的优先级、进行构架分析、创建构架的概念验证原型、评估构架的概念验证原型的可行性、组织系统实施模型、描述系统分布结构、描述运行时刻构架、确定设计机制、确定设计元素、合并已有设计元素 工件 软件构架文档、参考构架、分析模型、设计模型、实施模型、部署模型、构架概念验证原型、接口、事件、信号与协议 系统架构师6,架构师必看谈软件架构师如何做好架构设计 此文转载至:帐前卒1 前言软件架构设计是软件设计的一部分,相当于总体设计,是软件设计过程中一个决定性的环节,架构确定了,软件基本也就定型了 。而软件架构师则是软件项目的领军人物,是软件设计过程中最具挑战性的角色,从技术角度来讲,他承担了项目的成败责任 。EEEC给“架构师”的定义为“软件架构师是技术主管”,这就意味着他不仅要有高超的技术才能,还要有很好的领导才能,他的领导能力在团队中和软件质量控制中起着十分重要的作用 。作为一个架构师,他要掌握整个软件项目的前景,调节各小组间关系,要让所有的项目组成成员了解大家共同的目的和目标,并发布标准和章程;要能正确理解软件过程,要在宏观上拥有专业知识,应该拥有很好的设计技巧;要是一个很好的沟通员和谈判代表,要能做出正确的决策等,除此,还有许多他要具备的其它素质 。2. 做好需求调研和分析为保证软件的可用性,要从需求出发设计架构,即:做软件先做需求,这是软件业内人士的共识,但这项工作做得好的却很少 。根据调查,属于需求分析和软件设计错误与缺陷的约占软件错误与缺陷的64%;而属于程序代码错误的仅占36%;而因软件错误积累与放大效应,造成整个软件项目拖延或失败情况的高达20%~60% 。这些数据表明,搞好需求调研和分析是软件设计和开发的第一步 。架构师必须要在需求调研的初期就介入,以保证需求获取的及时、可靠、准确,并对下步工作起指导作用 。进行需求调研,不能就事论事,对用户的需求调研要全面、细致 。需求要进行全局性的分析,需要有全局的观点,而不是分散地、根据具体的应用开发而进行的调研,这样才能系统地、本质地、概括地把握软件的功能结构 。在调研过程中,自始至终都要有用户方的业务人员参加,尤其是强调高层管理人员的重视和亲自参与,架构师及其相应的工作小组要有足够的沟通和理解能力,要能使业务人员在需求调研阶段起主导作用,架构师仅起协助和引导作用,并提供需求调研的科学方法和过程 。2.1 熟悉建设单位,定义职能域在需求调研阶段,架构师首先要全面了解用户中所有人员的需求,首先要了解建设单位的组织机构、业务关系,并根据建设单位中的一些主要业务活动领域,研究定义职能域,这是第一重要任务 。职能域是用户功能规划的抽象,应符合建设单位内部各种业务的逻辑关系,而不是现行机构部门的翻版,一经识别,就要保持相对稳定 。研制职能域模型时,需要特别注意,要自顶向下规划,并把握好设计职能域的数目;注意用户需求的主次关系,按照重要性、优先级进行权衡取舍 。2.2 详细调研各项业务过程及其功能分解每个职能域都包括一定数目的业务过程,业务过程可以继续分解为业务活动(对应于未来的软件功能),每个功能再分解为更低层的功能,逐级向下分解,直到产生最基本的、不可再分的最小功能单元 。职能域和业务过程都要独立于当前的组织机构,因为组织机构可能变化,部门的分工也会变化,但整个单位的基本职能和业务相对稳定 。职能域或业务过程可能横跨两个或多个业务部门 。业务过程的确定可以对照组织机构中各部门负责人的职责来考虑,这样,也可能获得未来软件的操作权限、数据权限的分配和功能模块的划分,这些业务过程是一个单位运作的基本工作,不受报告层次和具体负责人变动的影响 。调研前,架构师要对调研的内容事先准备,针对不同管理层的用户询问不同的问题,列出问题清单,将操作层、管理层、决策层的需求既联系又区分开来,形成一个金字塔,使下层满足上层的需求 。调研时,要收集用户工作中涉及的所有内容,如各种单据、报表、处理规则,再将其串成流程图,以流程图为主线,同时把握以下方面: (1)该流程中是否存在不必要的环节; (2)流程是否可以简化,是否可以省略一些环节; (3)流程中的每个处理环节是否起到了增值提效的作用; (4)哪些流程可以并行处理 。2.3 在调研具体业务时工作小组要把握的重点(1)平均频度 业务发生的频繁程度称为频度,这个数字可以是一个平均值或统计值 。频度越高,数据量越大,对响应时间、易操作性等要求就越高 。在数据存储时,对大频度的业务或单据要进行充分的考虑 。(2)高峰期的频度 必须保证软件在高峰期的响应时间,对软件进行测试时,要模拟高峰期的业务频度 。(3)单据要求 单据上的内容也就是单据的属性,它是进行数据结构设计的最基本依据 。数据的精度是定义数据库中字段长度的依据;计算生成方法是设计算法的依据;取值范围与计算生成方法是数据完整性检测的依据 。(4)利于减轻工作量 减轻人员的工作量是采用新软件的一个目的,花费时间最多、处理方法最复杂的地方往往是软件最关键的地方,也是用户将来验收时最关心的地方 。实际上有很多报表由于工作量相当大,用户没有足够的人力与时间来进行处理,这时他便想到了计算机 。(5)单据报表流程 要了解单据或报表的来源、单据联数、每联用途、送交单位、送交时间,对来源与去向的追踪可以调查出各个业务、各个单据、各个报表及各个部门之间的联系 。(6)特殊情况的处理与纠错 对于特殊情况的处理,体现了软件灵活性,但这其中也隐含着安全危机 。用户领域中有很多“合理但不合法,不合理也不合法”的特殊情况,它们出现的机会比较少,在调研时要将这些易遗漏的问题挖掘出来,这些特殊情况有时是软件必须要处理的 。当用户在某个作业环节出现失误时,手工软件有的采用正规的手续进行纠错,有的则相当随便,这些情况出现的概率也很小,在调研时,可采用穷举的方法,假定在每一个环节都出现失误,逐个环节询问用户的处理方法,防止遗漏 。这些细节如果不调研清楚,往往会对软件产生深远的影响 。(7)考虑长远 将来用户需求的变化是很正常的现象,如果仅仅着眼于现在,而不对将来有所考虑,软件的寿命便不会长久,要将以后可能的变化考虑在内 。需求获取后,务必要将调研的成果编制为文档,可视化需求调研,提供不同的图给不同层次的用户进行确认 。对高层领导,可提供总体职能域图或业务流程图,对业务管理人员可提供业务流程图或业务活动图,甚至可以画出用户界面的草图 。3 需求分析与设计架构师所带领的团队做出的关于软件体系结构的决策,将直接影响软件开发的难度和软件维护的难易度,最终决定软件开发的成败 。作为一个架构师,在进行架构设计时,必须具备以下基本能力: (1)他要把整个团队组织在架构周围,并积极地投入到计划活动上,要把架构转化完成任务的先后顺序,这样才能及时地确定在什么位置用什么技术 。(2)架构师要在技术上做宏观决策,不必关心细节化的事情,由于技术的变化过于频繁,架构师要时与这些变化同步;架构师必须至少能对各种技术有一个整体上的了解,能够熟知每种技术特点及优缺点,只有这样,架构设计师才能在特定的应用场景下,正确地选择各种技术来设计软件架构 。(3)架构师要能预测最小化项目中可能出现的风险,因为这直接影响到软件架构的稳定性 。(4)架构师要能与开发人员保持良好的沟通,确保软件设计的实现 。这个还真是不知道啊7,请问系统架构设计师的职责是什么 系统架构师的职责主要有如下4条:1、确认需求在项目开发过程中,架构师是在需求规格说明书完成后介入的,需求规格说明书必须得到架构师的认可 。架构师需要和分析人员反复交流,以保证自己完整并准确地理解用户需求 。2、系统分解依据用户需求,架构师将系统整体分解为更小的子系统和组件,从而形成不同的逻辑层或服务 。随后,架构师会确定各层的接口,层与层相互之间的关系 。架构师不仅要对整个系统分层,进行“纵向”分解,还要对同一逻辑层分块,进行“横向”分解 。软件架构师的功力基本体现于此,这是一项相对复杂的工作 。3、技术选型架构师通过对系统的一系列的分解,最终形成了软件的整体架构 。技术选择主要取决于软件架构 。Web Server运行在Windows上还是Linux上?数据库采用MSSql、Oracle还是Mysql?需要不需要采用MVC或者Spring等轻量级的框架?前端采用富客户端还是瘦客户端方式?类似的工作,都需要在这个阶段提出,并进行评估 。架构师对产品和技术的选型仅仅限于评估,没有决定权,最终的决定权归项目经理 。架构师提出的技术方案为项目经理提供了重要的参考信息,项目经理会从项目预算、人力资源、时间进度等实际情况进行权衡,最终进行确认 。4、制定技术规格说明架构师在项目开发过程中,是技术权威 。他需要协调所有的开发人员,与开发人员一直保持沟通,始终保证开发者依照它的架构意图去实现各项功能 。架构师不仅要保持与开发者的沟通,也需要与项目经理、需求分析员,甚至与最终用户保持沟通 。所以,对于架构师来讲,不仅有技术方面的要求,还有人际交流方面的要求 。【职业名称】系统架构师(system architecture)【职业定位】系统构架,是对已确定的需求的技术实现构架、作好规划,运用成套、完整的工具,在规划的步骤下去完成任务 。相应地,系统架构师(又称企业架构师或者系统设计师)是一个最终确认和评估系统需求,给出开发规范,搭建系统实现的核心构架,并澄清技术细节、扫清主要难点的技术人员 。他/她主要着眼于系统的“技术实现” 。因此他/她应该是特定的开发平台、语言、工具的大师,对常见应用场景能马上给出最恰当的解决方案,同时要对所属的开发团队有足够的了解,能够评估自己的团队实现特定的功能需求需要的代价 。系统架构师负责设计系统整体架构,从需求到设计的每个细节都要考虑到,把握整个项目,使设计的项目尽量效率高,开发容易,维护方便,升级简单,等等 。【工作职责】系统构架师的职责系统架构师的职责就是设计一个公司的基础架构,并提供关于怎样建立和维护系统的指导方针 。具体来讲,系统架构师的职责主要体现在以下几方面:1 负责公司系统的架构设计、研发工作;2 承担从业务向技术转换的桥梁作用;3 协助项目经理制定项目计划和控制项目进度;4 负责辅助并指导 sa 开展设计工作;5 负责组织技术研究和攻关工作;6 负责组织和管理公司内部的技术培训工作;7 负责组织及带领公司内部员工研究与项目相关的新技术 。8 管理技术支撑团队并给项目、产品开发实施团队提供技术保障 。11 理解系统的业务需求,制定系统的整体框架(包括:技术框架和业务框架)12 对系统框架相关技术和业务进行培训,指导开发人员开发 。并解决系统开发、运行中出现的各种问题 。系统架构师的目的:13 对系统的重用、扩展、安全、性能、伸缩性、简洁等做系统级的把握 。————系统架构师的工作在于针对不同的情况筛选出最优的技术解决方案,而不是沉在具体实现细节上 。此外系统架构师是不可培养的,好的系统架构师也许不是一个优秀的程序员,但是不能不懂技术之间的差别,技术的发展趋势,采用该技术的当前成本和后继成本,该技术与具体应用的偶合程度,自己可以调配的资源状况,研发中可能会遇到的风险,如何回避风险 。这些才是架构师需要考虑的主要内容 。另外,还必须注意,架构分为两种,第一种是基础架构的设计规划,例如:os,硬件,网络,各种应用服务器等等 。第二种是软件开发设计的架构师,他们负责规划程序的运行模式,层次结构,调用关系,规划具体的实现技术类型,甚至配合整个团队做好软件开发中的项目管理 。【能力要求】一、系统架构相关的知识和经验 。二、很强的自学能力、分析能力、解决问题的能力 。三、写作、沟通表达、培训 。【职业概述】系统构架师是近几年来在国内外迅速成长并发展良好的一个职位,它的重要性及给 it业所带来的影响是不言而喻的 。在我国虽然还存在一定的争论性、不可预测性、不理解性,不确定性,但它确实是时代发展的需要 。it 业各公司为了让他们现有的 it 系统实现更大的价值,纷纷进行了重大的技术变革,这样一来,对高水平的架构师的需求激增 。对负责架构的管理人员的需求不断增大,其增长速度比对 cio 的需求还要快,这是因为,架构师会给一个组织带来大量专门技术 。公司需要一些在架构方面有真才实学,而且学得深且广的人才 。在比尔? 盖茨的众多称谓中,据说他更偏爱“首席软件架构师” 。同样,在网易创始人丁磊名字前,也有“首席架构师”这样的称谓 。由次可见,对于企业来说,架构师就是灵魂的创造者 。【系统构架师的作用】系统架构师该怎么来实现其“架构”企业的职能呢?尤其在设计企业 it 策略时,该怎样体现架构师的价值?这里以实例说明:摩托罗拉的副总裁 toby redshaw 说,架构师是“it 策略中的中枢”,而且这一角色对公司的影响确实非常大 。当 toby reshaw 在 2001 年进入摩托罗拉并担任其策略暨架构副总裁时,他俨然一位购房者对一套摇摇欲坠的公寓进行估价一样 。他并不是仅仅只作些表面上的修改,而是拟定了一个重建摩托罗拉整个基础结构的计划,这个计划可以彻底修整公司的基础建设 。就像一个建筑师设计一幢房子一样,redshaw 拟出了一张技术构架蓝图,一座技术性的建筑,以便使被他称作“如意大利面条般错乱的应用程序,机器和管线”那些东西变得井然有序 。他说,只要选择了正确的架构策略并用对了人,摩托就可以用比以前更快的速度生产出大量应用软件,而且可以减少维持重叠系统的费用 。redshaw 说:“如果你连建筑架构都搞不好,就算你的石匠技术再高明,又有什么用?架构师是 it 策略中的中枢 。” 像 redshaw 这样的系统架构师们在企业内部的影响力非常大 。很久以来,虽然他们一直在信息技术部门担任重要职务,但是他们经常受委托提供全面概况分析,并提出一些关于如何遵照标准执行这些任务的建议,而这些对日常运作的影响极其有限 。今天,随着各公司都在寻找重建他们的 it 系统,使其更能有效节省成本,更灵活的方法,架构师愈来愈被看作是至关重要的因素 。一个定义明确的架构的目标在于降低运行复杂的运算系统的费用 。一个公司可以采用一种特定的数据库配置,如微软的数据库,进而将系统标准化,而不需要让公司的每个部门安装它们自己所需要的数据库服务器 。express 的技术架构副总裁 andy miller 说:“如果你没有一项强有力的架构策略,人人各行其是,最后以得到六种服务器和软件平台而告终,你的系统变成了大杂烩,而那将使你的费用激增 。”把架构师独立出来有很多好处,比如系统的整体把握,质量上的保障,技术上的先进性,架构的灵活性,高效性,还可有效地降低成本 。试想,1 个月薪 1w 的架构师+10 个月薪5k 的工程师,肯定比 11 个月薪 6k 的高级工程师效果要好 。一般来说,级别越高的架构师,经验更丰富,争相聘请的人也多,他们也是与公司全部的 it 策略密切相关的专业人员 。【系统构架师应具备的能力】作为软件开发的设计架构师,那么必须拥有一定的编程技能,同时有高超的学习新的架构设计、程序设计技能 。另外,我觉得作为软件架构师,还必须了解一定的硬件、网络、服务器的基本知识 。要不然,你都不知道有些什么材料可以用,你怎么去根据实际情况去规划你的软件架构呢?忽视程序设计能力的持续跟新,是永远不能够成为一个成功的系统架构师 。一般来讲,系统架构师应该拥有以下几方面的能力:1:具备 8 年以上软件行业工作经验;2:具备 4 年以上 c/s 或 b/s 体系结构软件产品开发及架构和设计经验;3:具备 3 年以上的代码编写工作经验;4:具备丰富的大中型开发项目的总体规划、方案设计及技术队伍管理经验;5:对相关的技术标准有深刻的认识,对软件工程标准规范有良好的把握;6:对 .net/java 技 术 及 整 个 解 决 方 案 有 深 刻 的 理 解 及 熟 练 的 应 用 , 并 且 精 通webservice/j2ee 架构和设计模式,并在此基础上设计产品框架;7:具有面向对象分析、设计、开发能力(ooa、ood、oop),精通 uml 和 rose,熟练使用 rational rose、powerdesigner 等工具进行设计开发;8:精通大型数据库如 oracle、sql server 等的开发;9:对计算机系统、网络和安全、应用系统架构等有全面的认识,熟悉项目管理理论,并有实践基础;10:在应用系统开发平台和项目管理上有深厚的基础,有大中型应用系统开发和实施的成功案例;11:良好的团队意识和协作精神,有较强的内外沟通能力 。【系统构架师与其他角色的区别】系统构架师与产品经理的关系及区别产品经理通常是指负责产品设计的“专人” 。一个优秀的理想的产品经理,应同时具备较高的商业素质和较强的技术背景 。产品经理要有深厚的领域经验,也就是说,对该软件系统要应用到的业务领域非常之熟悉 。比如,开发房地产销售软件的产品经理,应该对房地产公司的标准销售流程了如指掌,甚至比大多数销售人员还要清楚 。如果开发的是通用产品,他/她还具备对市场、潜在客户需求的深刻洞察力 。那么,系统架构师与产品经理有什么不同呢?我们不应该把二者混为一谈,这是不少论述和实践常犯的错误 。我看来,如果把开发软件比作摄制电影,产品经理之于系统架构师,就正像编剧之于导演 。产品经理虽然要有一定技术背景,但仍应属于“商业人士(business people)”,而系统架构师则肯定是一个技术专家 。二者看待问题的立场、角度和出发点完全不同 。系统构架师与项目经理的关系及区别软件项目经理是指对项目控制/管理,关注项目本身的进度、质量,分配、调动、协调、管理好人、财、物等资源的负责人 。对于软件项目经理来讲,包括项目计划、进度跟踪/监控、质量保证、配置/发布/版本/变更管理、人员绩效评估等方面 。优秀的项目经理需要的素质,并不仅在于会使用几种软件或是了解若干抽象的方法论原则,更重要的在于从大量项目实践中获得的宝贵经验,以及交流、协调、激励的能力,甚至还应具备某种个性魅力或领袖气质(charisma) 。由此可见,项目经理和系统架构师在职责上有很大差异 。混同这两个角色,往往也会导致低效、无序的开发 。特别是,从性格因素上讲,单纯的技术人员倾向于忽视“人”的因素,而这正是管理活动的一个主要方面 。另外,就像战争中的空军掩护(air cover)一样,专职的项目经理能够应付开发过程中大量的偶发事件和杂务,对于一个规模稍大的项目,这些杂务本身就能占用一个全职工作者的几乎全部时间 。在一个项目中,推动项目发展的是系统构架师,而不是项目经理 。项目经理的职责只是配合系统构架师,提供各个方面的支持 。主要职责是与内外部沟通和管理资源(包括人) 。系统构架师提出系统的总体构架,给出开发指导 。一个项目中,项目经理的角色什么?如果他即使管理人员又是设计人员,则必须比别人强,能够有让别人服的东西 。如果他只是项目管理人员,系统构架师有专门人员,就可以不用精通或者说了解 it 各个方面的知识,如果了解更好 。另外,如果在一个项目没有人在技术构架上和开发指导上负全部责任,而是每个人都负责一快的架构、分析、设计、代码和实施等,最后肯定会失去管理 。系统构架师与系统分析员的关系及区别系统分析员(system analyst)是指对系统开发中进行分析、设计和领导实施的人 。一般意思上讲,系统分析员的水平将影响系统开发的质量,甚至成败 。但在一个完善的系统开发队伍中,还需要有业务专家,技术专家和其他辅助人员 。所以,系统分析员只是其中的角色之一 。但我国许多的 it 公司,一般只有系统分析员而没有技术专家 。系统分析员固然是对特定系统进行分析、设计 。所以他的任务、目标是明确的 。他只是去执行任务,完成系统的最终设计 。系统架构师应该和系统分析员分开,但架构师必须具备系统分析员的所有能力,同时还应该具备设计员所没有的很多能力 。系统架构师是指导、检督系统分析员的工作,要求系统分析员按什么标准,什么工具,什么模式,什么技术去设计系统的 。同时,系统架构师应该对系统分析员所提出的问题,碰到的难题及时地提出解决的方法 。并检查、评审系统分析员的工作 。【如何评估系统构架师的工作成绩】优秀的系统架构师是保证软件系统强大生命力的核心人物 。专业架构师能够帮助公司全面研究现有架构和设计模式、评估系统设计的优缺点和可能存在的风险,通过一系列的专题指导和具体案例帮助公司掌握先进的、成熟的设计模式,简化复杂的业务逻辑和需求,确定系统最适合法人方案 。在必要的情况下,还可就特定领域或课题,为开发人员提供定制指导 。通过上面的介绍,我们对系统构架师有了的较深刻的认识,我们明白了系统构架师的地位,作用,工作职责及任职条件,同时还区别出与其他角色的不同,那么如何评估系统构架师的工作成绩,如何识别一个合格的优秀的系统构架师是不难的 。具体来讲,我们可以通过以下几方面来评估系统构架师的工作成绩:1:系统构架师是否是某一技术领域的专家;2:系统构架师能否指导分析员的设计工作,发现并指出设计存在的问题并提出解决方法,评审他们的工作;3:系统构架师能否指导软件工程师进行开发工作,发现并指出编码存在的问题并提出解决方法,评审他们的工作;4:系统构架师能否协助好项目经理制定项目计划和控制项目进度;5:系统构架师能否及时有效地解决设计、开发人员所提出的问题,解决技术上的难题;6:系统构架师能否制订并规范系统设计和开发文档、工具、模型;能否让其他人员容易理解;7:系统构架师能否经常组织并带领公司内部员工研究、学习与项目相关的新技术;8:系统构架师能否组织和管理好公司内部的技术培训工作,技术研究和攻关工作;9:系统构架师能否组织和管理好公司内部的技术培训工作,技术研究和攻关工作;10:系统构架师是否有良好的团队意识和协作精神,有较强的内外沟通能力;11:系统构架师是否能管理好技术支撑团队并给项目、产品开发实施团队提供技术保障;12:系统构架师所设计的系统架构是否合理,技术是否先进,能否满足客户的要求;13:系统构架是否有扩展性,安全性,能否经受压力测试,网络流量在超用户数下如何14:控制;系统边界如何处理,瓶颈问题如何解决等;15:系统设计前期、中期、后期所要解决的问题,是否有阶段性,里程碑的标识;16:是否有分析、识别并尽可能地回避风险,降低风险所引发问题成本的能力;17:能否给公司降低开发成本,提高效率;

推荐阅读