一. 架构师
1.1 架构设计涉及范围图
如图所示架构设计说涉及到的范围,首先是对架构支撑的底层平台选择,目前业界流行和通用的就是.Net平台和Java平台(J2EE);然后在平台支持之上做技术相关架构设计(主要会采用面向对象OO,面向方面编程AOP以及面向服务架构设计SOA等思想),在SOA推广上IBM和SUN两家公司尤为突出;在业务不断的变化中、架构的更新中,找到变化中不变的东西,并针对服务、架构制定一系列规范对架构进行有效的管理和成为架构设计的原则;当然,最上层就是善变的业务架构层。
1.2 一个优秀的架构师需要了解的知识
- 操作系统OS:能对操作系统内核有很好的了解和认识,从中吸取设计理念;推荐可以找一个小的linux版本代码阅读内核的实现,去理解“简单”的代码怎样去完成不简单的事情
- 虚拟机技术:去了解虚拟机的实行原理和它所做的工作,如Java的JVM、和.Net的CLR, CLR提交到欧洲标志组织可以阅读文档ECMA-335-CLI
- 计算机语言:一个好的架构师对计算机语言应该有深刻的认识,建议熟悉过程路径:C -> C++ -> C# ,Java
- 开源资源:当然多研究开源架构是提高的必要途径,理解开源架构中设计的思想以什么样的设计思想为出发点,比较它们每个版本升级中的设计变化;资源:JBoss、Spring等Java开源框架,.net方面有5大实用案例架构、以及ASP.NET Starter Kit等,和MS:Enterprise library;
JBOSS 4.0:包括web服务器(servlet/JSP容器,HTML服务器)、EJB2.0容器。完整的纯Java的数据库引擎,(Java消息服务)JMS,JavaMail,和Java事务处理API/Java事务处理服务(JTA/JTS)支持,但是他的面向方面设计(AOP)是它真正突出的部分。JBOSS的AOP架构负责处理AOP,使用了一组命名概念,比如"interceptor," "pointcut," 和“introduction”。一个interceptors编码“拦截器”(intercepts),它把一个对象放到一个被拦截的类中等。
Spring是一个轻量级容器,非侵入式,ioc容器,它所带的包装器使许多不同的服务和框架更易于使用。轻量级容器接受任何JavaBean,而不是只接受特定类型的组件。要了解Spring同时就应该了解Eclipse、Struts、Hibernate之间的衔接应用 Spring: A Developer's Notebook
ASP.NET Starter Kit: 是ASP.NET官方网站推出的一整套ASP.NET解决方案的Demo;是提供给ASP.NET初学入门者的教材!包括了门户、商业站点、社区站点、报表、时间跟踪排程、问题跟踪这6套系统。 在这里,随便也提一下WSS/SPS,具有微软官方支持,是成熟的产品,是通过Web Part扩展的,Web Part将会是ASP.NET发展的一个领域,使用Web Part进行页面的定制是更加人性化的,拖拉的所见即所得效果是Portal Start Kit无法达到了。WSS\SPS是扩展性非常好的系统平台,WSS\SPS的工作区可以无限向下添加,集成Office 2003、Exchange、Biztalk、Content Manager Server......而Portal Starter Kit仅仅是一个单纯的网站演示,虽然也能够布局定制,但仅此而已。
二. 还是需求
万水千山始于脚下,需求始终是一切的第一步!
从两种软件类型入手分别谈一谈,其中采集需求的方法和注意点
2.1 企业信息化软件
企业信息化软件,及软件的最终用户是一个企业,企业希望通过软件项目的采购来达到企业内部管理等流程的信息化;采集这类需求通常有两种情况,其一:
2.1.1 甲方驱动
如ERP,甲方非常了解要他们需要一个什么样的软件,或者通过软件来达到一个什么样的效果。其中从甲方采集需求的采集点注意一下不能遗漏:
- 中层领导:--> 从他们这采集业务的流程,因为他们是对甲方公司业务流程最熟练的
- 现场人员:--> 从他们这采集业务规则
- 高层领导:--> 这个很重要,从他们这采取决策规则,及可以让软件实现知识发现,即以后可成为软件的一个亮点即对公司决策的支持
- 信息人员:--> 操作规范,可以提供易用性
乙方需要参加的人员:
架构师(实力所服,让对方放心),需求分析师,开放人员(实现需求的原型化),
UI原型需求化:有三个好处, 需求固化、设计规则明确、开放复用
2.1.2 乙方强势论
由于甲方需求不明确,而乙方在此行业中资历深厚,了解行业标准,这种非常好做事就不多说了。
2.2 需要采集中注意项
1.需求采集的起点:
2.需求管理, 这个是必不可少的;
需求稳定化,乙方提供需求详细规格说明书
同时,制定词汇表,如图
3.掌握中间语言,及快速得了解行业规范
2.3 商业化软件
需求采集为行业商用软件,要做到:
收集行业中所有企业得需求
行业规范,最好就是成为行业的领头人成为标准的制定者--> 业务原型
同时要考虑到市场因素,以及竞争对手、市场亮点(有必要时可能采用保存亮点的方式)
也要考虑环境因素,硬件、社会等
三. 领域分析
通过领域分析,获得领域模型;这节内容涉及到UML建模、建模流程、用例切片归包、DSL规范定义领域语言等等一些比较晕的内容!!
领域模型: 切词(名词实体)
实体关系 -->类图 、E-R
实体约束规则(要求精确度)
其中涉及到工作流分析, 以及工作流所涉及到的技术,建议研究工作流: 其一,Vista平台的WWF,其二,开源框架OsWorkflow; 其下图有利于我们理解工作流设计:visual studio 2005中插件DSL支持
3.1 最小建模技术
对于大多数问题而言,只需要20%的UML就可以完成80%的建模工作,所以只需要以下建模中的关键三个元素:
四. 少不了的设计模式
具体的这个就不多说了,应该是不是的对设计模式进行温习、多阅读一些设计模式论文及应用场景实践。使用时注意考虑以下重要几点:
4.1 设计模式应用场景
既是处理变化 --> 原构件基础上增加变化
--> 替代构件
4.2 设计模式的弱点
增加复杂度、 性能有损耗、 模式有可能选择不当、 装配不当、 增加测试难度
4.3 面向对象开放技术今天的核心基础
核心基础: 组件技术、 UML建模技术
组件技术: 大型项目和系统的必经之路
-》需要支持多平台:SOA、 ESB-连接组件
-》拥有大量组件:重用、MDA(模型驱动开发)-快速、廉价组件
-》响应日益复杂的业务操作
-》框架: .net, Java
五. AOP面向方面编程
在架构设计中也要引用AOP设计思想,在整个架构设计过程中横切关注点来达到面向方面编程,现实框架某些功能的统一处理,减少重复。AOP强调通过面向方面的思维方式来进行有效的架构设计,所以AOP设计 ≠ AOP技术, AOP技术是面向方面设计AOP的最佳实现。开源AOP架构研究推荐: JBoss4.0
架构师进行架构设计,要心中有此轴向图从而做到不同纬度对架构进行充分的设计考虑。
六. 架构设计
6.1 主要架构模式
流程处理模式: 以算法和数据结构为中心,由一系列处理步骤、相邻步骤用数据流管道连接。主要用于批处理系统软件
、C/S模式、MVC模式、分层模式
七. SOA
SOA(Service Oriented Architecture 服务导向架构),是一种应用程式架构的概念,将应用程式及资源以重复使用的服务方式呈现,使用标准化的借变相互沟通,借此提供更高弹性、更高效率、及资讯整合的IT环境。SOA是一种用于建构分散式系统的方法,它可以将应用程序以服务的方式提供给终端使用者,也能建构成其他的服务。透过SOA,我们可以将单一的软件开发成为可提供其他应用系统使用的基本元件。
要理解SOA,更重要的得研究ESB(Enterprise Service Bus)企业服务总线,请看另一篇文档的详细介:SOA-ESB企业服务总线概念; 这里就不熬述了
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1543851
分享到:
相关推荐
强化团队协作则需要架构师了解团队成员的技能和优势,并加以合理分配任务。同时,作为项目的核心人物,架构师应保证与各方沟通的有效性,确保信息的准确传达和接收。 再次,软件架构师应关注的不仅仅是技术层面,还...
《架构师成长之路》这本书是为那些志在成为优秀架构师的IT专业人士量身打造的指南。它深入探讨了架构师的角色、职责以及如何在职业生涯中逐步提升自己的技能和视野,以适应快速变化的IT环境。 一、架构师的角色与...
系统架构师是负责设计和指导整个软件系统架构的关键角色,他们需要...随着学习的深入,架构师还需要对信息安全、系统安全、系统可靠性等领域有所了解,能够在实际工作中,对业务需求和技术实现进行合理的平衡和决策。
"架构师能力模型解析" 架构师是一个职业名称,而不是一个技术高下的职位名称。要想成为一个优秀的架构师,需要具备“个人特性”和“技术技能”两个方面的能力。“个人特性”包括人际关系的能力和业务能力,而“技术...
全国计算机技术与软件专业技术资格(水平)考试是...最后,除了上述技术方面的知识点外,系统架构师还应当了解行业趋势、技术发展动态和市场环境,这样可以更好地帮助组织把握技术发展方向,对企业的长期战略做出贡献。
5. **数据存储与处理**:数据是现代应用的核心,架构师需要了解各种数据存储解决方案,如关系型数据库、NoSQL、大数据处理框架等,并能根据业务需求选择合适的技术。 6. **安全与隐私**:网络安全和用户隐私是不容...
10. **项目管理与沟通**:架构师需要具备良好的团队协作和沟通能力,了解项目管理方法如瀑布模型、敏捷开发等。 通过对历年高级系统架构师真题的深度学习,考生不仅可以熟悉考试形式和难度,更能提升自己在实际工作...
《系统架构师官方教材》是一份详尽的资源包,专为那些致力于成为或已经在担任系统架构师的专业人士设计。这份教材涵盖了系统架构师所需掌握的广泛知识领域,旨在帮助学习者深入理解如何设计、构建和优化复杂的技术...
架构师需要了解各种框架的优缺点,如Spring、Hibernate、Django等,并能够灵活应用,以提高开发效率和系统性能。此外,还提到了微服务架构,这是近年来越来越受欢迎的一种架构模式,它通过将大型系统拆分为小而独立...
6. **法律法规与标准规范**:系统架构师需要了解相关的信息安全法规、行业标准,如GB/T、ISO/IEC等,以便在设计中合规操作。 7. **案例研究与实战演练**:提供实际项目案例,让考生通过分析和解决问题,提升解决...
此外,报告中的“薪酬指南”部分可能包含了关于行业趋势、晋升路径、技能需求等方面的信息,这有助于架构师了解如何提升自身价值,以便在职业生涯中获得更高的薪酬回报。例如,具备特定技术专长(如云计算、大数据、...
《软考架构师配套讲义》是一份针对国家软考(即全国计算机技术与软件专业技术资格(水平)考试)中的架构设计师级别的学习资料。这份压缩包包含了一个名为“软考架构师配套讲义.pdf”的文件,是为准备参加该考试的...
《软件架构师:构建高效系统的关键》 在信息化社会中,软件架构师的角色日益凸显,他们不仅是...这些资料将帮助学习者全面了解软件架构师的工作内容,提升他们的专业素养,为成为一名合格的软件架构师打下坚实的基础。
在IT行业中,从一名程序员成功转型为架构师是许多技术人员的职业发展目标。...通过阅读"系统架构设计程序员向架构师转型之路.pdf"这本书,读者可以更深入地了解这个过程,获取实用的转型策略和技巧。
通过本次云计算架构师培训,学员不仅能够掌握云计算的基本理论,还能够了解到云计算的技术发展史,从而对云计算有一个全面的认识。培训的内容涵盖了云计算的定义、虚拟化技术特性、云计算架构设计以及云计算的未来...
了解调度器的工作原理以及如何优化资源分配对于全栈架构师来说至关重要。调度器使用了多种策略和算法来完成任务分发,例如优先级优先分配、公平共享等。 四、高级应用 掌握Kubernetes的高级应用是成为云原生...
通过深入阅读这些PDF文档,读者可以系统地了解到作为一个架构师所需掌握的关键知识和技能。 首先,我们来看看"架构师"这个角色的核心职责。架构师是信息技术团队中的关键人物,他们负责规划、设计和指导软件系统的...
这样的经历有助于架构师了解不同行业的业务需求和技术挑战,从而更好地构建适应性强的架构。 在成为架构师的过程中,通常会经历三个主要阶段: 1. **打基础**:在这个阶段,重点是理解公司的技术体系和团队成熟度...
《软考系统架构师真题解析》 软考系统架构师考试是中国计算机技术与软件专业技术资格(水平)考试中的高级别认证,旨在测试考生在信息系统设计、架构规划、技术选型、项目管理等方面的能力。历年真题是备考的重要...