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

Slides:



Advertisements
Similar presentations
Whos the Architect? Credential Provisioning Network Access Directory Services Authentication, Authorization and Accounting Federation Single.
Advertisements

TriZetto Transformation Services TriZetto Web Development.
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Information Systems Analysis and Design
Free Mini Course: Applying UML 2.0 with MagicDraw.
Building Enterprise Applications Using Visual Studio ®.NET Enterprise Architect.
1 SYS366 Week 1 - Lecture 2 How Businesses Work. 2 Today How Businesses Work What is a System Types of Systems The Role of the Systems Analyst The Programmer/Analyst.
Copyright 2002 Prentice-Hall, Inc. Chapter 1 The Systems Development Environment 1.1 Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer.
Chapter 2 Succeeding as a Systems Analyst
Software Factory Assembling Applications with Models, Patterns, Frameworks and Tools Anna Liu Senior Architect Advisor Microsoft Australia.
Chapter 1 The Systems Development Environment 1.1 Modern Systems Analysis and Design Third Edition.
Software Architecture in Practice
Copyright 2004 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Second Edition Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Chapter.
Business Intelligence Dr. Mahdi Esmaeili 1. Technical Infrastructure Evaluation Hardware Network Middleware Database Management Systems Tools and Standards.
Effort in hours Duration Over Weeks Or Months Inception Launch Web Lifecycle Methodology Maintenance Phases Copyright Wonderlane Studios.
Object Oriented Analysis and Design Using the UML
Software Developer Career. ◦ Desktop Program development ◦ Web Program Development ◦ Mobile Program Development.
Software Architecture in Practice (3rd Ed) Introduction
Copyright 2001 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Chapter 1 The Systems.
MDC Open Information Model West Virginia University CS486 Presentation Feb 18, 2000 Lijian Liu (OIM:
UML - Development Process 1 Software Development Process Using UML (2)
Roles and Responsibilities
2Object-Oriented Analysis and Design with the Unified Process Objectives  Explain the purpose and various phases of the traditional systems development.
1 Systems Analysis and Design in a Changing World, Fourth Edition.
Copyright 2002 Prentice-Hall, Inc. Chapter 1 The Systems Development Environment 1.1 Modern Systems Analysis and Design.
Bring The Best to VeriSign. 2 Team Authentication- Senior Engineer – T5 Req (344) Position : Senior Engineer Job Description : The candidate should be.
An Introduction to Software Architecture
Copyright 2002 Prentice-Hall, Inc. Chapter 1 The Systems Development Environment 1.1 Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer.
Bring The Best to VeriSign. 2 VM3:Software Engineer –Network Operations Req # : 175,183 Position : Software Engineer - Network Operations Job Description.
Requirements To Design--Iteratively Chapter 12 Applying UML and Patterns Craig Larman.
Basic of Project and Project Management Presentation.
OBJECT ORIENTED SYSTEM ANALYSIS AND DESIGN. COURSE OUTLINE The world of the Information Systems Analyst Approaches to System Development The Analyst as.
Information System Development Courses Figure: ISD Course Structure.
Project 2003 Presentation Ben Howard 15 th July 2003.
Copyright 2002 Prentice-Hall, Inc. 1.1 Modern Systems Analysis and Design Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 1 The Systems Development.
1 ISA&D29-Oct ISA&D29-Oct-13 Systems Analyst: problem solver IT and Strategic Planning.
Unified Modeling Language* Keng Siau University of Nebraska-Lincoln *Adapted from “Software Architecture and the UML” by Grady Booch.
Software Product Line Material based on slides and chapter by Linda M. Northrop, SEI.
9 Systems Analysis and Design in a Changing World, Fourth Edition.
Object-Oriented Software Engineering using Java, Patterns &UML. Presented by: E.S. Mbokane Department of System Development Faculty of ICT Tshwane University.
PRJ566 Project Planning & Management Software Architecture.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
SOFTWARE ENGINEERING. Objectives Have a basic understanding of the origins of Software development, in particular the problems faced in the Software Crisis.
Stages of design  High level design  High level data structure  Architecture  Low level design-code design  Algorithms  Low level data structures.
 Has computer technology knowledge and programming expertise  Understands business problems  Uses logical methods for solving problems  Has fundamental.
Introduction to Software Engineering 1. Software Engineering Failures – Complexity – Change 2. What is Software Engineering? – Using engineering approaches.
LECTURE 5 Nangwonvuma M/ Byansi D. Components, interfaces and integration Infrastructure, Middleware and Platforms Techniques – Data warehouses, extending.
Business Applications– Using Java _____ Presented by Priya Saha.
Advanced Software Engineering Dr. Cheng
Building Enterprise Applications Using Visual Studio®
Chapter 1 The Systems Development Environment
Roles and Responsibilities
EI Architecture Overview/Current Assessment/Technical Architecture
Chapter 1 The Systems Development Environment
Chapter 1: Introduction to Systems Analysis and Design
CIM Modeling for E&U - (Short Version)
Chapter 1 The Systems Development Environment
Becoming a Good Software Architect
Chapter 1 The Systems Development Environment
Description of Revision
Chapter 1 The Systems Development Environment
Chapter 1 (pages 4-9); Overview of SDLC
Enterprise Program Management Office
An Introduction to Software Architecture
Introduction to Systems Analysis and Design Stefano Moshi Memorial University College System Analysis & Design BIT
Design Yaodong Bi.
Chapter 1 The Systems Development Environment
The Database Environment
{Project Name} Organizational Chart, Roles and Responsibilities
Presentation transcript:

Copyright Maveo Systems Shanghai1 Becoming a Good Software Architect By Terry Cheng (郑书玄 ) Chief Technology Officer 万域系统软件(上海)有限公司 Session 1: Introduction to Software Architecture Session 2: What it takes to become Software Architect

Copyright Maveo Systems Shanghai2 Session 1 Introduction to Software Architecture

Copyright Maveo Systems Shanghai3 Software Architect is Someone Who Can Make Sub-optimal Decision in Total Darkness

Copyright Maveo Systems Shanghai4 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 Shanghai5 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 Shanghai6 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

Copyright Maveo Systems Shanghai7 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.

Copyright Maveo Systems Shanghai8 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.

Copyright Maveo Systems Shanghai9 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 Shanghai10 Over View of System Architecture Enterprise Architecture Business Architecture Application Architecture Technical Architecture Product Architecture

Copyright Maveo Systems Shanghai11 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 Shanghai12 Example of Software Architecture Tech View

Copyright Maveo Systems Shanghai13 Example of Software Architecture Tech View

Copyright Maveo Systems Shanghai14 Example of Software Architecture Tech View

Copyright Maveo Systems Shanghai15 Example of Software Architecture Tech

Copyright Maveo Systems Shanghai16 Example of Software Architecture Business/Function

Copyright Maveo Systems Shanghai17 Components of Software Architecture Business model Platform Layer/Network Model Domain Framework Technical Framework Deployment Model

Copyright Maveo Systems Shanghai18 Components of Software Architecture Logical View Allocates classes and responsibilities to packages and subsystems. Develop ment 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.

Copyright Maveo Systems Shanghai19 Principles of Good Architecture Scalable Flexible Extensible Reusable Open Common semantics Secure

Copyright Maveo Systems Shanghai20 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 Shanghai21 Software Architecture Processes 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 Shanghai22 What’s Next Pattern Product line Architecture Documenting Software Architecture Evaluate Software Architecture

Copyright Maveo Systems Shanghai23 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 Shanghai24 Q&A & Break

Copyright Maveo Systems Shanghai25 Session 2 What it takes to become a Software Architect

Copyright Maveo Systems Shanghai26 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 Shanghai27 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.

Copyright Maveo Systems Shanghai28 Job Description This 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 Shanghai29 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 Shanghai30 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.

Copyright Maveo Systems Shanghai31 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.

Copyright Maveo Systems Shanghai32 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

Copyright Maveo Systems Shanghai33 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

Copyright Maveo Systems Shanghai34 None Technical Skills Facilitation Communication/Presentation/Sales Skill Mentoring Domain Knowledge of area you working on Leadership Business acumen

Copyright Maveo Systems Shanghai35 Conclusion 1 How do I start Become an excellent developer who knows why not just how Become an excellent developer who knows why not just how Understand the relationship of underline technical architecture and software systems Understand the relationship of underline technical architecture and software systems Understand current platform specific architecture, J2EE and.NET Understand current platform specific architecture, J2EE and.NET Know the domain you are working on, become an expert Know the domain you are working on, become an expert Read, read, read, think think think Read, read, read, think think think

Copyright Maveo Systems Shanghai36 Conclusion 2 Technical Ability alone is never enough

Copyright Maveo Systems Shanghai37 Q&A

Copyright Maveo Systems Shanghai38