Click here to load reader

Becoming a Software Architect

  • View
    217

  • Download
    0

Embed Size (px)

DESCRIPTION

Good ppt

Text of Becoming a Software Architect

  • Becoming a Good Software ArchitectBy Terry Cheng ()[email protected] Technology Officerhttp://www.maveosystems.comSession 1: Introduction to Software ArchitectureSession 2: What it takes to become Software Architect

    Copyright Maveo Systems Shanghai

  • Session 1Introduction to Software Architecture

    Copyright Maveo Systems Shanghai

  • Software Architect is Someone Who Can Make Sub-optimal Decision in Total Darkness

    Copyright Maveo Systems Shanghai

  • 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

    Copyright Maveo Systems Shanghai

  • 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

    Copyright Maveo Systems Shanghai

  • Definition of Software ArchitectureFrancis 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

    Copyright Maveo Systems Shanghai

  • Definition of Software ArchitectureSoftware Architecture for Product FamiliesSoftware 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.

    Copyright Maveo Systems Shanghai

  • Definition of Software ArchitectureUML 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.

    Copyright Maveo Systems Shanghai

  • 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

    Copyright Maveo Systems Shanghai

  • Over View of System ArchitectureEnterprise ArchitectureBusiness ArchitectureApplication ArchitectureTechnical ArchitectureProduct Architecture

    Copyright Maveo Systems Shanghai

  • 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

    Copyright Maveo Systems Shanghai

  • Example of Software ArchitectureTech View

    Copyright Maveo Systems Shanghai

  • Example of Software Architecture Tech View

    Copyright Maveo Systems Shanghai

  • Example of Software ArchitectureTech View

    Copyright Maveo Systems Shanghai

  • Example of Software Architecture Tech

    Copyright Maveo Systems Shanghai

    JSP

    HTML / XSL / css / js / images etc.

    EJB

    Database

    Servlet Controller

    getter/setterParameter Validation

    Servlet Actions

    JSP Mapping

    ContentDisplay

    xml (from Asynchronous Information Request)

    Browser

    AsynchronousInformation Request

    URL Request

    html

    xml (from Servlet Request)

    utility classescom.maveo.util package

    Client Side

    Server Side

    xml

    AgntApplet

    ActionForm

    Action

    ActionMapping

    struts framework

    ActionServlet (struts-config.xml)

    XSLTProcessor(Microsoft DOM)

    struts taglibsmaveo taglibs

    Content Caching(JavaScriptObject Pool)

    MAVEO UI FrameworkDiagram By: Patrick LaiLast Updated: 2 July 2002Version: 2.0

    Servlet Request(Form Submission)

    xsl

    xsl

  • Example of Software ArchitectureBusiness/Function

    Copyright Maveo Systems Shanghai

  • Components of Software Architecture Business model Platform Layer/Network Model Domain Framework Technical Framework Deployment Model

    Copyright Maveo Systems Shanghai

  • Components of Software Architecture

    Copyright Maveo Systems Shanghai

  • Principles of Good Architecture Scalable Flexible Extensible Reusable Open Common semantics Secure

    Copyright Maveo Systems Shanghai

  • 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

    Copyright Maveo Systems Shanghai

  • Software Architecture Processeshttp://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

    Copyright Maveo Systems Shanghai

  • Whats Next Pattern Product line Architecture Documenting Software Architecture Evaluate Software Architecture

    Copyright Maveo Systems Shanghai

  • 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

    Copyright Maveo Systems Shanghai

  • Q&AQ&A&Break

    Copyright Maveo Systems Shanghai

  • Session 2What it takes to become a Software Architect

    Copyright Maveo Systems Shanghai

  • 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

    Copyright Maveo Systems Shanghai

  • What is Software ArchitectThe 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.

    Copyright Maveo Systems Shanghai

  • 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.

    Copyright Maveo Systems Shanghai

  • 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.

    Copyright Maveo Systems Shanghai

  • Job DescriptionSenior 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 devel

Search related