【软件工程】如何打造成稀有的软件架构师

如果把需求和最终的代码,看成描述同一事物的一体两面,那么设计始终是要架起这两者间的桥梁。而架桥的时候,怎么可能只知道一端而不知道另一端。

                                                                                                                                                                            --------来自CSDN理想流博主leezy_2000的一句话,感谢其给了我很大的启发


工欲善其事,必先利其器。

   不想成为敏于事讷于言的程序员? 想把自己打造成稀有的软件架构师?

      首先以下是关于软件架构的几条定义:


(来自维基百科)   

                   软件体系结构是构建计算机软件实践的基础。与建筑师设定建筑项目的设计原则和目标,作为绘图员画图的基础一样,一个软件                    架构师或者系统架构师陈述软件架构以作为满足不同客户需求的实际系统设计方案的基础。从和目的、主题、材料和结构的联系                    上来说,软件架构可以和建筑物的架构相比拟。一个软件架构师需要有广泛的软件理论知识和相应的经验来实施和管理软件产品                    的高级设计。软件架构师定义和设计软件的模块化,模块之间的交互,用户界面风格,对外接口方法,创新的设计特性,以及高                    层事物的对象操作、逻辑和流程。

                   软件架构师与客户商谈概念上的事情,与经理商谈广泛的设计问题,与软件工程师商谈创新的结构特性,与程序员商谈实现技                      巧,外观和风格。

                   软件架构是一个系统的草图。软件架构描述的对象是直接构成系统的抽象组件。各个组件之间的连接则明确和相对细致地描述组                    件之间的通讯。在实现阶段,这些抽象组件被细化为实际的组件,比如具体某个类或者对象。在面向对象领域中,组件之间的连                    接通常用接口来实现。


(来自ISO国际标准)

                                 systems in the spirit of ISO 15288: “that are man-made and may be configured with one or more of the following: hardware,                                       software, data, humans, processes (e.g. processes for providing service to users), procedures (e.g. operator instructions),                                       facilities, materials and naturally occurring entities”;


(译自Software Architecture in Practice, Second Edition)

                                  现代的软件开发方法识别系统模型和提供各种反馈回路从设计师到分析师,作出这样的设计是一个系统的技术要求产品隐含的假                                   设期。

                                  软件工程的设计和系统的概念是抽象的,提取了实施的细节,算法、数据表示和集中的行为和相互作用的“黑盒子”,软件体系结                                     构是对系统收集了所需的性能设计的第一步。

                                  有趣的是,不同的建筑群落变化的重点在这些地方。软件体系结构一直专注于软件构成要素及其相互关系的一个关键。系统架构                                   强调子系统的结构和关系如分配,企业架构强调原则。该定义意识到,所有这些可能在架构的一部分。

                                  请注意,它的设计原理和演变可以由建筑师制定“逆向工程”,从现有的系统,甚至发现的性质取决于系统。而人造系统的工程往                                     往反映了一种意向,这个意图不是定义的一部分。


推荐一套比较系统全面且搭配实践的JAVA企业架构师学习流程

来自Oracle培训班

就业岗位:Java系统架构师、Java EE架构师、软件项目经理、业务分析师

                                                                                        课程内容:

课程名称

课程及实训内容

C1 SunTone架构方法学实战

主题

主要知识点

软件开发过程简介

软件开发方法学对软件项目的意义;面向对象的软件开发过程OOSD。

使用SunTone/UP方法学

SunTone AM /UP方法学、软件开发工作流需求收集-需求分析-构架-设计-实现-测试-部署;阶段、工作流、增量与迭代;编写软件项目计划书。

需求收集-愿景和SRS文档

编写愿景文档、SRS文档。

需求收集-用例图场景文档

设计并绘制UML图及UML工作软件的使用。

需求分析-细化用例图

介绍需求分析工作流;细化用例图。

需求分析-用例表和UI原型

创建用例表、活动图和UI原型;UI原型的设计规则及UI原型制作软件。

需求分析-创建域模型

CRC分析法;绘制UML类图;创建域模型。

设计-创建设计模型

创建设计工作流、协作图;健壮性分析法Robust Analysis;基于序列图的设计模型。

构架-创建架构模型

构架工作流;构架工作流的产物;实现向架构的转换;使用FC/AC/BD/StW/BD/SF/TO等Java EE模式。

设计-创建解决方案模型

创建解决方案模型;细化与模型的属性;细化方法和构造器;将域实体映射到数据库表。

实现、测试和部署

开发过程中的实现、测试和部署工作流。

W1 项目研讨

名称

项目描述

软件项目管理实战

基于真实的项目案例,完成项目的需求收集、分析、构架和设计等前期过程,以形成完整的软件项目管理流程。此间创建思维模型、需求模型、设计模型和架构模型,绘制相关的UML图,并完成模型之间的转换。

C2 JVM与开源框架原理分析

主题

主要知识点

JVM基本原理

JVM内存的结构模型、堆与堆栈原理、对象在内存中的结构;类加载与Class对象的内部结构、常量池;对象实例与性能的考虑;对象与内存理解的常见误区;类的属性、方法、构造器在继承体系中的原理、静态成员内存布局和原理;抽象类、接口的原理以及适用的OO法则;枚举的单例模式应用、嵌套类/内部类的原理与编程规则;异常的处理方式分析及最佳实践;异常与日志的合理结合;异常使用的常见误区。

Java EE标准架构

多态引用和多态参数、instanceof运算符与对象的强制类型转换;Web容器(如Tomcat)的工作原理、Java EE标准五层架构、组件与容器协调工作原理;Java EE架构中的主要服务(如JNDI、JTA、RMI、JMS等);三层与四层物理架构的区别与场景。

Web容器标准组件

Servlet/Filter工作原理与生命周期;JSP工作原理与生命周期;Web应用程序的生命周期与事件机制原理。

实现Model 2架构

Model2架构与MVC原理;结构良好的Web应用程序;MVC应用的常见的误区。

Web应用的基本技术

JDBC的内部实现原理、三通道的原理、连接池的工作原理及对性能的影响、DataSource的工作机制、JNDI与Web容器资源的访问;可复用的Web表示片段的规划与管理、页面布局的设计思想、动态嵌入与静态嵌入的原理与使用决策。

使用Struts框架

Struts1.x/2.x框架内部设计原理、Struts1容器工作原理、Struts1.x应用的常见误区。

使用Spring框架

Spring框架IoC原理、Spring容器工作原理、AOP原理与事务处理、动态代理的实现与原理。

使用ORM框架

Hibernate、iB, , atis框架ORM原理、Hiberna, te容器的工作原理、缓存的原理与使用决策、Hibernate二级缓存原理;iBatis容器的工作原理;SSH架构的整合原理、SSI架构的整合原理。

W2项目研讨

名称

项目描述

A. 良好的设计结构与框架选择

基于真实的项目案例,选择适合框架,对主要用例进行分析和设计;研讨框架选择的正确性,以及设计结构的合理性和最佳实践

C3 EJB与大型企业应用程序

主题

主要知识点

开发会话Bean组件(一)

企业会话Bean组件的原理,创建会话Bean。

开发会话Bean组件(二)

有状态会话Bean和无状态会话Bean的运行特征及生命周期;创建会话Bean客户端;实现会话Bean组;NetBeans IDE中开发会话Bean。

开发JPA实体组件(一)

Java持久化规范;定义实体类。

开发JPA实体组件(二)

实体实例的生命周期;JPA实体生命周期及访问;在NetBeans中开发JPA实体;使用实体与数据库交互;持久化单元;实现和管理JPA实体;对象-关系映射的概念及原理。

使用JP查询语言(一)

Java 持久化查询语言(JPQL),使用查询对象实现实体数据查询。

使用JP查询语言(二)

实体持久化状态的查询;创建和使用查询对象;在NetBeans中开发JPA实体查询。

为数据的关联关系建模(一)

为数据的关联关系建模,包括一对一、一对多/多对一、多对多的单向/双向关系。

为数据的关联关系建模(二)

定义和使用合成主键;实现一对多/多对一双向关联;实现多对多双向关联;设置获取和级联模式;实现关联关系实体;在NetBeans中开发关联关系实体。

实现事务处理(一)

事务的概念和原理;EJB事务的ACID特性;使用CMT实现事务边界管理。

实现事务处理(二)

编程与CMT事务交互;Java EE平台的异常;在EJB组件中实现CMT事务;在NetBeans中开发CMT事务。

实现消息处理(一)

组件异步通讯的特点;JMS 点对点消息架构和发行-订阅消息架构;开发消息生产者客户端。

实现消息处理(二)

消息驱动Bean组件的运行特征及生命周期;开发消息驱动Bean 组件;

使用定时器服务

定时器的原理和定时类型;开发定时器组件;

Java Web Service的SOA

Web Service和SOA架构的基本概念;使用JAX-WS API开发Web Service端点和客户端。

C4 GoF与Java EE模式

主题

主要知识点

OO设计法则与设计模式

面向对象设计的基本概念;面向对象设计的基本法则;设计模式的特性。

使用GoF行为型模式

行为型模式的基本特点;GoF行为型设计模式,包括策略模式、命令模式、迭代器模式、观察器模式。

使用GoF创建型模式

创建型模式的基本特点;GoF创建型设计模式,包括工厂方法模式、抽象工厂模式、单体模式等。

使用GoF结构型模式

结构型模式的基本特点;GoF结构型设计模式,包括外观模式、代理模式、适配器模式、合成体模式、装饰器模式、状态模式、模板方法模式等。

介绍Java EE模式

Java EE模式的思想体系;JavaEE模式目录中的JavaEE模式与层(tier)。

使用整合层模式

整合层模式的特征和用途;使用整合层模式,包括  Service Activator、Data Access Object、Web Service Broker。

使用表示层-业务层模式

Java EE 业务层模式推动与表示层通讯的基本特点;业务层模式:Service Locator、Session Facade、Business Delegate、Transfer Object。

使用业务层内部模式

业务层内部模式的基本特点;使用业务层模式,包括Application Service、Business Object、Transfer Object Assembler、Composite Entity。

使用表示层模式

Java EE 表示层模式的基本特点;Model 2 架构;使用表示层模式,包括Intercepting Filter、Front Controller、Application Controller、Context Object。

更多的表示层模式

使用表示层模式:View Helper、Composite View、Dispatcher View、Service to Worker。

W3项目研讨

名称

项目描述

书籍库存登记系统

仿真实现一个基于B/S的《书籍库存登记系统》。该系统提供书籍入库登记和库存列表功能,并实现列出库存书籍详细信息。系统以增量方式开发,循序渐进完成,目的在于掌握Web应用程序编程和调试技巧。主要涉及以下主要知识点:Model 2架构的实现、使用Servlet实现控制器,JSP实现视图、表单的各种组件的处理、使用DAO模式,通过DataSource访问数据、在Web应用程序中整合MySQL数据库。

C5 Java企业项目的架构与性能优化

主题

主要知识点

架构的基本概念 

架构的基本概念和必要性,架构师的功能;架构与风险管理;架构的五个基本方面;描述UML图。

软件开发方法学

开发方法学的最佳实践,使用SunTone AM方法学;开发方法学工作流和四个阶段;编写项目计划书;怎样提高项目成功的可能性。

创建系统架构原型

用组件表示系统;创建架构模型;建立架构原型。

系统性质量的评估

评估影响系统性质量的因素;规划可升级性以支持预期的增长;提升QoS的常规指南。

描述Java EE技术

表示层的设计指导;业务层的设计指导;常见的Java EE架构。 

系统架构的经验和指南

系统的灵活性;网络的通讯与布局;事务的规划与管理;成本管理。

企业应用的安全性

企业应用的安全风险;企业架构的安全规划;分布式系统的主要风险因素及开发的经验指南;

完善架构原型

规划网络模型;规划事务模型;规划安全模型;Java EE 资源服务器的整合技术;完善架构模型,完善应用程序网络通讯、事务及安全; 

影响Java EE应用性能的因素

影响Java EE应用性能的因素;

Tier的性能优化

垂直层 (Tier)影响性能的因素;Tier的性能优化,包括资源层的优化、业务层和整合层的优化、表示层的优化、客户端并发访问的优化; 

Layer的性能优化

Layer的性能优化,包括硬件层的优化、OS层的优化、中间件层的优化、JVM的架构及垃圾回收机制、JVM的性能调优;水平层(layer)影响性能的方面;应用层的优化;复制策略及选择标准,规划系统容量以支持需求负荷;关于性能调优的思考。

W4项目研讨

名称

项目描述

企业应用程序的架构和设计

基于真实的项目案例,研讨项目的架构和设计,对所有系统性质量逐一分析,调整架构以逐一满足系统性质量,提交合格的架构原型。

 

 


(持续更新中...)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值