The Role of the Software Architect



Similar documents
Software Development in the Large!

Background: Business Value of Enterprise Architecture TOGAF Architectures and the Business Services Architecture

Chap 1. Introduction to Software Architecture

Introduction to software architecture

Non-Functional Requirements

Introduction to software architecture

Web Application Architectures

Applying 4+1 View Architecture with UML 2. White Paper

Software Engineering UNIT -1 OVERVIEW

Enterprise Architecture Review

Aerospace Software Engineering

Viewpoint Modeling. Agenda. 1. Viewpoint Modeling 2. ODS, Enterprise Architecture, Viewpoints, Models 3. Modeling approaches and standards

Software Engineering Reference Framework

Design Specification for IEEE Std 1471 Recommended Practice for Architectural Description IEEE Architecture Working Group 0 Motivation

What is Automotive Software Engineering? What is Automotive Software Engineering? What is Automotive Software Engineering?

A Software Development Platform for SOA

SOA: The missing link between Enterprise Architecture and Solution Architecture

Developing SOA solutions using IBM SOA Foundation

Architecture Definitions

A Case Study of the Systems Engineering Process in Healthcare Informatics Quality Improvement. Systems Engineering. Ali M. Hodroj

What is a life cycle model?

Questions? Assignment. Techniques for Gathering Requirements. Gathering and Analysing Requirements

Five best practices for deploying a successful service-oriented architecture

Software Architecture. New wine in old bottles? (i.e., software architecture global design?, architect designer)

What it Takes to be Great in the Role of Enterprise Architect

INTERNATIONAL STANDARD

CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.

1.1 The Nature of Software... Object-Oriented Software Engineering Practical Software Development using UML and Java. The Nature of Software...

RUP Design. Purpose of Analysis & Design. Analysis & Design Workflow. Define Candidate Architecture. Create Initial Architecture Sketch

An Approach to Software Architecture Description Using UML

Basic Unified Process: A Process for Small and Agile Projects

Time Monitoring Tool Software Development Plan. Version <1.1>

How To Be An Architect

How To Understand The Role Of Enterprise Architecture In The Context Of Organizational Strategy

Conceptual Model for Enterprise Governance. Walter L Wilson

CS 6361, SPRING 2010 Advanced Requirements Engineering Web Based Meeting Scheduler- Project Plan

Software Architecture. Schahram Dustdar Distributed Systems Group TU Wien

A Comparison of SOA Methodologies Analysis & Design Phases

Best-Practice Software Engineering: Software Processes to Support Project Success. Dietmar Winkler

3SL. Requirements Definition and Management Using Cradle

Component-based Development Process and Component Lifecycle Ivica Crnkovic 1, Stig Larsson 2, Michel Chaudron 3

SOMA, RUP and RMC: the right combination for Service Oriented Architecture

An Overview of Enterprise Architecture Framework Deliverables

Increasing Development Knowledge with EPFC

Your Software Quality is Our Business. INDEPENDENT VERIFICATION AND VALIDATION (IV&V) WHITE PAPER Prepared by Adnet, Inc.

An MDA Approach for the Development of Web applications

Appendix 2-A. Application and System Development Requirements

NASCIO EA Development Tool-Kit Solution Architecture. Version 3.0

06 - Role of the Software Architect. Prof. Peter Sommerlad IFS Institute for Software HSR Rapperswil

Architecture Design & Sequence Diagram. Week 7

Qlik UKI Consulting Services Catalogue

Developing Business Architecture with TOGAF

Requirement Management with the Rational Unified Process RUP practices to support Business Analyst s activities and links with BABoK

11 Tips to make the requirements definition process more effective and results more usable

Rational Unified Process for Systems Engineering RUP SE1.1. A Rational Software White Paper TP 165A, 5/02

Chapter 10. Practical Database Design Methodology. The Role of Information Systems in Organizations. Practical Database Design Methodology

SOFTWARE ARCHITECTURE QUALITY EVALUATION

Software Architecture Document

Using MDA in Web Software Architectures

Extend the value of your core business systems.

White Paper What Solutions Architects Should Know About The TOGAF ADM

Introduction to OpenUP (Open Unified Process)

Enterprise Architecture (Re)Charter Template

A COMPARISON OF ENTERPRISE ARCHITECTURE FRAMEWORKS

TOGAF usage in outsourcing of software development

Plan-Driven Methodologies

Basic Testing Concepts and Terminology

Managing the Services Lifecycle SOA & BPM

Business Modeling with UML

Performance Modeling for Web based J2EE and.net Applications

Realizing business flexibility through integrated SOA policy management.

IBM Rational DOORS Next Generation

<name of project> Software Project Management Plan

System Architecture Review Glossary

a new generation software test automation framework - CIVIM

METHOD & TOOLS TO SECURE AND SUPPORT COLLABORATIVE ARCHITECTING OF CONSTRAINED SYSTEMS

Web Content Management System, Migration and Maintenance Services for ECDC Web Portal

JOURNAL OF OBJECT TECHNOLOGY

Establish and maintain Center of Excellence (CoE) around Data Architecture

Basic Trends of Modern Software Development

An Integrated Quality Assurance Framework for Specifying Business Information Systems

Dr. Pat Mirenda. Software Design Specification Document

SOA Governance and the Service Lifecycle

Standard Glossary of Terms Used in Software Testing. Version 3.01

IBM IT Architect Certification Overview

Document Engineering: Analyzing and Designing the Semantics of Business Service Networks

Asset Based Development

BCS THE CHARTERED INSTITUTE FOR IT. BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 6 Professional Graduate Diploma in IT SOFTWARE ENGINEERING 2

Requirements engineering

Planning a Project with the Rational Unified Process Author: David West

E-vote 2011 Version: 1.0 Testing and Approval Date: 26/10/2009. E-vote SSA-U Appendix 5 Testing and Approval Project: E-vote 2011

Developing the Architectural Framework for SOA Adoption

Lecture Slides for Managing and Leading Software Projects. Chapter 1: Introduction

Transcription:

IBM Software Group The Role of the Software Architect Peter Eeles peter.eeles@uk.ibm.com 2004 IBM Corporation

Agenda Architecture Architect Architecting Requirements Analysis and design Implementation Test Project management Configuration and change management Environment Summary 2

Architecture, Architect, Architecting 3

Architecture IBM Software Group Rational software Architecture is the fundamental organization of a system embodied in its components, their relationships to each other, and to the environment, and the principles guiding its design and evolution. [IEEE 1471] The software architecture of a program or computing system is the structure or structures of the system, which comprise software elements, the externally visible properties of those elements, and the relationships among them. [Bass] [Architecture is] the organizational structure and associated behavior 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. [UML 1.5] 4

An architecture defines structure 5

An architecture defines behaviour 6

An architecture is concerned with significant elements The element relates to some critical functionality of the system E.g. monetary transactions The element relates to some critical property of the system E.g. reliability The element relates to a particular architectural challenge E.g. external system integration The element is associated with a particular technical risk The element relates to a capability that is considered to be unstable The element relates to some key element of the solution E.g. login mechanism 7

An architecture meets stakeholder needs The end user is concerned with intuitive and correct behavior, performance, reliability, usability, availability and security The system administrator is concerned with intuitive behavior, administration and tools to aid monitoring The marketer is concerned with competitive features, time to market, positioning with other products, and cost The customer is concerned with cost, stability and schedule The developer is concerned with clear requirements, and a simple and consistent design approach The project manager is concerned with predictability in the tracking of the project, schedule, productive use of resources and cost The maintainer is concerned with a comprehensible, consistent and documented design approach, and the ease with which modifications can be made 8

An architecture comes in many forms Enterprise Architecture System Architecture Software Architecture Application Architecture Technical Architecture Hardware Architecture Organizational Architecture 9

And IBM Software Group Rational software An architecture is part of a broader system An architecture embodies decisions based on rationale An architecture conforms to an architectural style An architecture is influenced by its environment An architecture influences organizational structure An architecture is present in every system 10

Agenda Architecture Architect Architecting Requirements Analysis and design Implementation Test Project management Configuration and change management Environment Summary 11

Architect IBM Software Group Rational software The architect is a technical leader The architect understands the software development process The architect has knowledge of the business domain The architect has technology knowledge The architect has design skills The architect has programming skills The architect is a good communicator The architect makes decisions The architect is a mentor The architect is aware of organizational politics The architect is a negotiator The architect role may be fulfilled by a team The life of a software architect is a long and rapid succession of suboptimal design decisions taken partly in the dark. [Kruchten] 12

Agenda Architecture Architect Architecting Requirements Analysis and design Implementation Test Project management Configuration and change management Environment Summary 13

Architecting IBM Software Group Rational software 14

Architecting IBM Software Group Rational software Architecting is a science Architecting is an art Architecting spans many disciplines Architecting changes emphasis over time Architecting involves many stakeholders Architecting is involved in tradeoffs Architecting considers reusable assets Architecting is both top-down and bottom-up 15

The benefits of architecting Architecting addresses system qualities Architecting drives consensus Architecting ensures architectural integrity Architecting helps manage complexity Architecting provides a basis for reuse Architecting reduces maintenance costs Architecting supports impact analysis Architecting supports the planning process 16

Documenting a software architecture 17

Architecture description Kruchten 4+1 views 18

Architecture description Siemens Conceptual View Module View Execution View Code View 19

Architecture description RM-ODP Information Viewpoint Computational Viewpoint Engineering Viewpoint Enterprise Viewpoint Technical Viewpoint 20

Architecture description Zachman framework Abstractions Perspectives Scope Planner contextual Enterprise Model Owner System Model Designer conceptual logical Technology Constrained Model Builder physical Detailed Representations Subcontractor out-of-context Functioning Enterprise Data Function Network People Time Motivation 21

Agenda Architecture Architect Architecting Requirements Analysis and design Implementation Test Project management Configuration and change management Environment Summary 22

Requirements Concepts IBM Software Group Rational software Functional requirements Non-functional requirements Qualities Constraints Work products (i.e. artifacts, deliverables) Stakeholder requests Use-case model System-wide requirements Changes cases Prioritized requirement list Software architecture document 23

System-wide requirements example Category Functionality Reliability Performance Supportability Constraint Requirement Online help Availability Response time Scalability Error management Description The system shall provide online help that can be downloaded from the auction site and installed locally, or accessed via a browser. The system shall be 99.9% available. Backup and maintenance operations shall not require system shutdown. The response time for any query shall be less than 3 seconds when measured on a 100Mb local-area connection. The response time for all transactions, such as creation of an auction, shall be less than 5 seconds, where response time represents the time from submitting the transaction data to the time transaction results are reported to the user. The system shall support 100,000 users and 5,000 concurrent users. All errors shall be time-stamped and logged in the system error file. Exception messages should identify the system element that threw the caught exceptions. 24

Analysis and Design Concepts Architectural style Design elements Layers Components / services Reusable elements Reference architectures Patterns Requirement realizations (functional and non-functional) Architectural proof-of-concept Work products Design model Deployment model Data model Software architecture document 25

J2EE Architecture 26

J2EE Patterns Presentation Layer 27

J2EE Patterns Business Layer 28

Implementation Concepts IBM Software Group Rational software Implementation structure Programming language constructs Integration of implementation subsystems Work products Implementation model Software architecture document 29

Test Concepts Unit testing Integration testing System testing Acceptance testing Work products Test suite Test cases Test scripts The architecture must be both testable and tested 30

Project management Concepts Schedule Cost Effort Risk Work products Project plan Risk list 31

Configuration and change management Concepts CM structures Workspaces Releases Work products CM plan 32

Environment Concepts Standards Guidelines Process Work products IBM Software Group Rational software Development process Standards and guidelines 33

Summary IBM Software Group Rational software The role of the architect is both broad and deep (in places ) Successful software architects treat architecting as an engineering discipline The role of the architect is more than high-level design Fulfilling the role of the architect is one of the most challenging and rewarding roles in the software industry 34

35