copyright maveo systems shanghai1 becoming a good software architect by terry cheng (郑书玄 )...

38
Copyright Maveo Systems S hanghai 1 Becoming a Good Software Architect By Terry Cheng ( 郑 ) [email protected] m Chief Technology Officer 郑郑郑 郑郑 郑郑郑 郑郑郑郑 () http:// www.maveosystems.com Session 1: Introduction to Software Architecture Session 2: What it takes to become Software Architect

Upload: amy-peyton

Post on 31-Mar-2015

262 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Copyright Maveo Systems Shanghai1 Becoming a Good Software Architect By Terry Cheng (郑书玄 ) terrycheng@maveosystems.com Chief Technology Officer 万域系统软件(上海)有限公司

Copyright Maveo Systems Shanghai 1

Becoming a Good Software Architect

By

Terry Cheng (郑书玄 )

[email protected]

Chief Technology Officer

万域系统软件(上海)有限公司

http://www.maveosystems.com

Session 1: Introduction to Software Architecture

Session 2: What it takes to become Software Architect

Page 2: Copyright Maveo Systems Shanghai1 Becoming a Good Software Architect By Terry Cheng (郑书玄 ) terrycheng@maveosystems.com Chief Technology Officer 万域系统软件(上海)有限公司

Copyright Maveo Systems Shanghai 2

Session 1

Introduction to

Software Architecture

Page 3: Copyright Maveo Systems Shanghai1 Becoming a Good Software Architect By Terry Cheng (郑书玄 ) terrycheng@maveosystems.com Chief Technology Officer 万域系统软件(上海)有限公司

Copyright Maveo Systems Shanghai 3

Software Architect is

Someone Who Can Make

Sub-optimal Decision in

Total Darkness

Page 4: Copyright Maveo Systems Shanghai1 Becoming a Good Software Architect By Terry Cheng (郑书玄 ) terrycheng@maveosystems.com Chief Technology Officer 万域系统软件(上海)有限公司

Copyright Maveo Systems Shanghai 4

Objectives of this talk

• Give a sense of what is Software architecture

• Example of Software Architecture

• Principle of good Software Architecture

• How to prepare to become a good Software Architect

• Do not have to make Sub-optimal Decision anymore

Page 5: Copyright Maveo Systems Shanghai1 Becoming a Good Software Architect By Terry Cheng (郑书玄 ) terrycheng@maveosystems.com Chief Technology Officer 万域系统软件(上海)有限公司

Copyright Maveo Systems Shanghai 5

Intro. to Software Architecture

• Definition of Software Architecture

• History/evolution of Software Architecture

• Overview of System Architecture

• How Software Architecture fit into System Architecture

• A Typical Software architecture

• Components of a typical Software architecture

• What to consider -- internal/external constrains

Page 6: Copyright Maveo Systems Shanghai1 Becoming a Good Software Architect By Terry Cheng (郑书玄 ) terrycheng@maveosystems.com Chief Technology Officer 万域系统软件(上海)有限公司

Copyright Maveo Systems Shanghai 6

Definition of Software Architecture

Francis Anderson (Chief Object Architect, ClearSystems): A set of solution frameworks to which all aspects of the problem domain are mapped.

Brahim Djoudi (Software developer, GIAT Industries, Toulouse, France): The software architecture is the set of all the concepts (software components, frameworks, DB, paradigm, programming language, ...) used to "view" an entire software before it's designed.

SEI:A software architecture is an abstract view of a software system distinct from the details of implementation, algorithms, and data representation. Architecture is, increasingly, a crucial part of a software organization's business strategy

Page 7: Copyright Maveo Systems Shanghai1 Becoming a Good Software Architect By Terry Cheng (郑书玄 ) terrycheng@maveosystems.com Chief Technology Officer 万域系统软件(上海)有限公司

Copyright Maveo Systems Shanghai 7

Definition of Software Architecture

Software Architecture for Product Families

Software architecture is a set of concepts and design decisions about the structure and texture of software that must be made prior to concurrent engineering to enable effective satisfaction of architecturally significant explicit functional and quality requirements and implicit requirements of the product family, the problem, and the solution domains.

Page 8: Copyright Maveo Systems Shanghai1 Becoming a Good Software Architect By Terry Cheng (郑书玄 ) terrycheng@maveosystems.com Chief Technology Officer 万域系统软件(上海)有限公司

Copyright Maveo Systems Shanghai 8

Definition of Software Architecture

UML 1.3:

Architecture is the organizational structure of a system. An architecture can be recursively decomposed into parts that interact through interfaces, relationships that connect parts, and constraints for assembling parts. Parts that interact through interfaces include classes, components and subsystems.

Page 9: Copyright Maveo Systems Shanghai1 Becoming a Good Software Architect By Terry Cheng (郑书玄 ) terrycheng@maveosystems.com Chief Technology Officer 万域系统软件(上海)有限公司

Copyright Maveo Systems Shanghai 9

History/Evolution• Driven by business need

• Cost cutting• Increase Revenue • Strategic Advantage

• Driven by new technology• Main Frame/Batch• PC/interactive Real time• LAN/WAN• Internet

• Driven by Software Engineering principle, methodology

• Functional decomposition, sub routines• Information Engineering• Object Oriented Methodology

Page 10: Copyright Maveo Systems Shanghai1 Becoming a Good Software Architect By Terry Cheng (郑书玄 ) terrycheng@maveosystems.com Chief Technology Officer 万域系统软件(上海)有限公司

Copyright Maveo Systems Shanghai 10

Over View of System Architecture

Enterprise Architecture

Business Architecture

Application Architecture

Technical Architecture

Product Architecture

Page 11: Copyright Maveo Systems Shanghai1 Becoming a Good Software Architect By Terry Cheng (郑书玄 ) terrycheng@maveosystems.com Chief Technology Officer 万域系统软件(上海)有限公司

Copyright Maveo Systems Shanghai 11

How Software Architecture fit in Enterprise

Architecture

• Software Architecture transforms Business Architecture into an set of designs and guidelines to realize business process in an information systems

• Software Architecture relays on Technical Architecture to provide an efficient/scalable/secure environment to

Page 12: Copyright Maveo Systems Shanghai1 Becoming a Good Software Architect By Terry Cheng (郑书玄 ) terrycheng@maveosystems.com Chief Technology Officer 万域系统软件(上海)有限公司

Copyright Maveo Systems Shanghai 12

Example of Software ArchitectureTech View

Page 13: Copyright Maveo Systems Shanghai1 Becoming a Good Software Architect By Terry Cheng (郑书玄 ) terrycheng@maveosystems.com Chief Technology Officer 万域系统软件(上海)有限公司

Copyright Maveo Systems Shanghai 13

Example of Software Architecture Tech View

Page 14: Copyright Maveo Systems Shanghai1 Becoming a Good Software Architect By Terry Cheng (郑书玄 ) terrycheng@maveosystems.com Chief Technology Officer 万域系统软件(上海)有限公司

Copyright Maveo Systems Shanghai 14

Example of Software ArchitectureTech View

Page 15: Copyright Maveo Systems Shanghai1 Becoming a Good Software Architect By Terry Cheng (郑书玄 ) terrycheng@maveosystems.com Chief Technology Officer 万域系统软件(上海)有限公司

Copyright Maveo Systems Shanghai 15

Example of Software Architecture Tech

JSP

HTML / XSL /css / js /

images etc.

EJB

Database

Servlet Controller

getter/setter

ParameterValidation

ServletActions

JSPMapping

xml (from Asynchronous Information Request)

utility classescom.maveo.util

package

Client Side Server Side

AgntApplet

ActionForm Action

ActionMapping

strutsframeworkActionServlet

(struts-config.xml)

struts taglibsmaveotaglibs

MAVEO UI FrameworkDiagram By: Patrick Lai

Last Updated: 2 July 2002Version: 2.0

ContentDisplay

Browser

AsynchronousInformation Request

URL Request

html

xml (from Servlet Request)

xml

ContentCaching

(JavaScriptObject Pool)

XSLTProcessor

(Microsoft DOM)

Servlet Request(Form Submission)

xsl

xsl

Page 16: Copyright Maveo Systems Shanghai1 Becoming a Good Software Architect By Terry Cheng (郑书玄 ) terrycheng@maveosystems.com Chief Technology Officer 万域系统软件(上海)有限公司

Copyright Maveo Systems Shanghai 16

Example of Software Architecture

Business/FunctionEA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

EA 3.5

0 - U

nreg

ister

ed T

RIAL

Versio

n

Colaterral

# currency: # AdvanceRatio: float# Value: double

DynamicCollateral

StaticCollateral

# Location: address*- NextEvaluationDate: date

AR

- AdjForInventory: double = 0

Inv entory

- ReportFreq: ReportFreqType- GrossMargin: float

RawMaterial

- AdvanceRatio: float

WIP

- AdvanceRatio: floatFinishedGoods

- AdvanceRatio: float

Debtor EligibilityCriteria

- TimeBasedRule:

Owner

- OwnerType:

RealEstate

- OutStanding: double- RealEstateType: int

Equipment

- Supplier: Company

CashDeposite

- Bank: char- DateDeposited: date- DateExpire: date- Amount: double- Currency: int

Priv atePublicCoShare

IntellectualProperties

BankGuaranties

- DateExpire: date

StandByLOC

- DateExpire: date

ReportFreqType

PhysicalStaticCollateral

- PurchaseCost: double- PurchaseDate: date- CurrentMarketValue: double- appraisedby: company- AppraisedDate: date

Address

Company

RealEstateTypeAvailabil ityCalculation

Ev aluateationFreq

Located AtIs a type of

+0..n

OweBy+1

Owned By

Appraised by

Page 17: Copyright Maveo Systems Shanghai1 Becoming a Good Software Architect By Terry Cheng (郑书玄 ) terrycheng@maveosystems.com Chief Technology Officer 万域系统软件(上海)有限公司

Copyright Maveo Systems Shanghai 17

Components of Software Architecture

• Business model

• Platform

• Layer/Network Model

• Domain Framework

• Technical Framework

• Deployment Model

Page 18: Copyright Maveo Systems Shanghai1 Becoming a Good Software Architect By Terry Cheng (郑书玄 ) terrycheng@maveosystems.com Chief Technology Officer 万域系统软件(上海)有限公司

Copyright Maveo Systems Shanghai 18

Components of Software Architecture

Logical View

Allocates classes and responsibilities to packages and subsystems.

Development View

Allocates packages and subsystems to layers and components. Also defines the development structure.

Process View

Allocates components to processes.

Physical View

Allocates processes to processors, nodes, networks.

Use Case View

(The Plus One) Captures requirements used to develop and validate each of the other views.

Page 19: Copyright Maveo Systems Shanghai1 Becoming a Good Software Architect By Terry Cheng (郑书玄 ) terrycheng@maveosystems.com Chief Technology Officer 万域系统软件(上海)有限公司

Copyright Maveo Systems Shanghai 19

Principles of Good Architecture

• Scalable

• Flexible

• Extensible

• Reusable

• Open

• Common semantics

• Secure

Page 20: Copyright Maveo Systems Shanghai1 Becoming a Good Software Architect By Terry Cheng (郑书玄 ) terrycheng@maveosystems.com Chief Technology Officer 万域系统软件(上海)有限公司

Copyright Maveo Systems Shanghai 20

What others to consider

• Business objectives

• Skill of development team and local market of team

• Cost to build and Maintain

• Materiality of Technology

• Current System constrain

• Migration, migration, migration

Page 21: Copyright Maveo Systems Shanghai1 Becoming a Good Software Architect By Terry Cheng (郑书玄 ) terrycheng@maveosystems.com Chief Technology Officer 万域系统软件(上海)有限公司

Copyright Maveo Systems Shanghai 21

Software Architecture Processes

http://www.bredemeyer.com/

• Business High Level Req High Level Architecture Decision

• Market/Technical Consideration Network Model/Platform Decision

• Business Modeling Class/Data modeling Data architecture decision

• Use case, process/flow modeling UI decision

• Domain Framework from above two

• Implementation analysis Technical implementation decision Technical Framework

• Implementation Language Tool decision

• Platform specific implementation architecture

• Sample/framework development

Page 22: Copyright Maveo Systems Shanghai1 Becoming a Good Software Architect By Terry Cheng (郑书玄 ) terrycheng@maveosystems.com Chief Technology Officer 万域系统软件(上海)有限公司

Copyright Maveo Systems Shanghai 22

What’s Next

• Pattern

• Product line Architecture

• Documenting Software Architecture

• Evaluate Software Architecture

Page 23: Copyright Maveo Systems Shanghai1 Becoming a Good Software Architect By Terry Cheng (郑书玄 ) terrycheng@maveosystems.com Chief Technology Officer 万域系统软件(上海)有限公司

Copyright Maveo Systems Shanghai 23

Summary

• Software Architecture need to consider from both technical point of view as well as business point of view

• There are different ways to communicate architecture design

• There is no THE best architecture for any one software system

• Always need consider

• external constrain, such cost, infrastructure,…

• Maturity of IT organization, not only development, but also operations

• Architecture is a live entity, therefore, ability to grow, migrate is very important

Page 24: Copyright Maveo Systems Shanghai1 Becoming a Good Software Architect By Terry Cheng (郑书玄 ) terrycheng@maveosystems.com Chief Technology Officer 万域系统软件(上海)有限公司

Copyright Maveo Systems Shanghai 24

Q&A

Q&A&

Break

Page 25: Copyright Maveo Systems Shanghai1 Becoming a Good Software Architect By Terry Cheng (郑书玄 ) terrycheng@maveosystems.com Chief Technology Officer 万域系统软件(上海)有限公司

Copyright Maveo Systems Shanghai 25

Session 2

What it takes to become a Software

Architect

Page 26: Copyright Maveo Systems Shanghai1 Becoming a Good Software Architect By Terry Cheng (郑书玄 ) terrycheng@maveosystems.com Chief Technology Officer 万域系统软件(上海)有限公司

Copyright Maveo Systems Shanghai 26

What it takes to become Software Architect

• What an Software Architect do

• How to become a Software Architect

• Technical skill

• Non-Technical Skill

• Conclusion

• Q&A

Page 27: Copyright Maveo Systems Shanghai1 Becoming a Good Software Architect By Terry Cheng (郑书玄 ) terrycheng@maveosystems.com Chief Technology Officer 万域系统软件(上海)有限公司

Copyright Maveo Systems Shanghai 27

What is Software Architect

The Software Architect operates nearly as a peer to the project manager. While the project manager deals with budgets, plans, resources and tracking progress, the architect sets the technical vision for the project, mentors the technical staff, and monitors design and implementation artifacts for quality and compliance to standards.

Page 28: Copyright Maveo Systems Shanghai1 Becoming a Good Software Architect By Terry Cheng (郑书玄 ) terrycheng@maveosystems.com Chief Technology Officer 万域系统软件(上海)有限公司

Copyright Maveo Systems Shanghai 28

Job DescriptionThis position will be part of a team responsible for improving the quality of internally developed Mutual Fund Customer Service applications. Specific assignments may include large projects as well as small enhancements with both prioritized by business needs. Development takes place in a highly collaborative environment that places value on effective communication skills. Under minimal supervision, the position plans, coordinates and analyses new and existing application designs/techniques to meet current and future needs. The position works with users and developers to analyze, design, and implement application systems and/or enhancements to existing systems and may include leading a team for a specific project. This position provides deep technology expertise in a variety of areas.

Page 29: Copyright Maveo Systems Shanghai1 Becoming a Good Software Architect By Terry Cheng (郑书玄 ) terrycheng@maveosystems.com Chief Technology Officer 万域系统软件(上海)有限公司

Copyright Maveo Systems Shanghai 29

Job Requirements Advanced knowledge of programming language(s), software development tools and environment(s) and systems analysis and functional design is required.

In addition, thorough knowledge of database concepts, database design, data modeling and system architectures is also required.

• Expert knowledge of application design principles, practices, system development methodologies, (preferably OO), and software life cycles is required.

• The ideal candidate possesses expert knowledge in one or more highly specialized areas of application development.

• Experience in application development with the design and programming of multi-tier applications utilizing J2EE technology coupled with strong server programming abilities including Servlets, EJBs, and JSPs is required.

• Experience with programming in Smalltalk is highly desired.

• Experience with Envy,Rational Rose, .NET, and/or HTML is helpful.

Page 30: Copyright Maveo Systems Shanghai1 Becoming a Good Software Architect By Terry Cheng (郑书玄 ) terrycheng@maveosystems.com Chief Technology Officer 万域系统软件(上海)有限公司

Copyright Maveo Systems Shanghai 30

Job Description

Senior position with a heavy emphasis on .NET technologies. This position has sales support as well as hands-on responsibilities. Collaborates with customers, designers, and database programmers to construct an optimal web solution using Microsoft tools. Understands the aims of development customers and works with business analysts to ensure those needs are met with the software.

Page 31: Copyright Maveo Systems Shanghai1 Becoming a Good Software Architect By Terry Cheng (郑书玄 ) terrycheng@maveosystems.com Chief Technology Officer 万域系统软件(上海)有限公司

Copyright Maveo Systems Shanghai 31

Responsibilities• Participate in complete software development lifecycle, including analysis, design, code and unit test, for applications based on Microsoft .NET technologies. • Act as "subject matter expert" in assigned area of responsibility. • Work with customers to formulate and define application scope and objectives. • Build relationships with customers to determine business requirements • Build relationships with business partners. • Provide technical consultation in new systems development, new package evaluations, and enhancement of existing systems; participate in structured walkthrough and technical reviews. • Prepare functional specifications from which programs will be written; design, code, test, debug, and document programs. • Keep technical, communications, and business skills current with an emphasis on understanding emerging Microsoft-based web/e-commerce technologies and their impact on Berbee's customers. • Plan, schedule, and conduct I-net (Inter/intra/extranet) system tests; monitor test results; and take required corrective action.

Page 32: Copyright Maveo Systems Shanghai1 Becoming a Good Software Architect By Terry Cheng (郑书玄 ) terrycheng@maveosystems.com Chief Technology Officer 万域系统软件(上海)有限公司

Copyright Maveo Systems Shanghai 32

Job Requirements• Broad awareness of basic Internet, intranet, and WWW technologies, including: Inter/intra/extranet tools; Web installation, configuration and performance management; Web navigation, content, linking, and browser tuning; Web security and encryption • Experience with .NET servers and tools required • Web site design and development experience in a Microsoft environment • Working knowledge and skills in ASP, JavaScript, VBScript, and XML as well as upcoming .NET technologies such as ASP.NET and Visual Studio.NET • Experience with the Microsoft family of .NET servers including Content Management Server, BizTalk Server, Application Center Server, Sharepoint Portal Server, etc. • Working knowledge of SQL Server 2000 with database/Web connectivity familiarity, plus database management and file access methods • Strong communications and interpersonal skills • Strong problem solving/analysis skills • Ability to work well both in teams and independently

Page 33: Copyright Maveo Systems Shanghai1 Becoming a Good Software Architect By Terry Cheng (郑书玄 ) terrycheng@maveosystems.com Chief Technology Officer 万域系统软件(上海)有限公司

Copyright Maveo Systems Shanghai 33

Technical Skills

• Requirement gathering/Management

• Modeling and analysis methodology

• Full Software Development Life Cycle

• Modern architectural technologies, such as J2EE and .NET

• In depth knowledge of programming languages

• Network, Security, hardware platforms

• Database

Page 34: Copyright Maveo Systems Shanghai1 Becoming a Good Software Architect By Terry Cheng (郑书玄 ) terrycheng@maveosystems.com Chief Technology Officer 万域系统软件(上海)有限公司

Copyright Maveo Systems Shanghai 34

None Technical Skills

• Facilitation

• Communication/Presentation/Sales Skill

• Mentoring

• Domain Knowledge of area you working on

• Leadership

• Business acumen

Page 35: Copyright Maveo Systems Shanghai1 Becoming a Good Software Architect By Terry Cheng (郑书玄 ) terrycheng@maveosystems.com Chief Technology Officer 万域系统软件(上海)有限公司

Copyright Maveo Systems Shanghai 35

Conclusion 1

How do I startHow do I start

• Become an excellent developer who Become an excellent developer who knows why not just howknows why not just how

• Understand the relationship of Understand the relationship of underline technical architecture and underline technical architecture and software systemssoftware systems

• Understand current platform specific Understand current platform specific architecture, J2EE and .NETarchitecture, J2EE and .NET

• Know the domain you are working on, Know the domain you are working on, become an expertbecome an expert

• Read, read, read, think think thinkRead, read, read, think think think

Page 36: Copyright Maveo Systems Shanghai1 Becoming a Good Software Architect By Terry Cheng (郑书玄 ) terrycheng@maveosystems.com Chief Technology Officer 万域系统软件(上海)有限公司

Copyright Maveo Systems Shanghai 36

Conclusion 2

Technical Ability Technical Ability

alone alone

is never enoughis never enough

Page 37: Copyright Maveo Systems Shanghai1 Becoming a Good Software Architect By Terry Cheng (郑书玄 ) terrycheng@maveosystems.com Chief Technology Officer 万域系统软件(上海)有限公司

Copyright Maveo Systems Shanghai 37

Q&A

Q&A

Page 38: Copyright Maveo Systems Shanghai1 Becoming a Good Software Architect By Terry Cheng (郑书玄 ) terrycheng@maveosystems.com Chief Technology Officer 万域系统软件(上海)有限公司

Copyright Maveo Systems Shanghai 38