The Process of Software Architecting

Similar documents
Architecture of Business Systems Architecture and the Role of the Architect

Vendor: The Open Group. Exam Code: OG Exam Name: TOGAF 9 Part 1. Version: Demo

Requirements and Design Overview

What is a software architecture?

The ATCP Modeling Framework

Activities Common to Software Projects. Software Life Cycle. Activities Common to Software Projects. Activities Common to Software Projects

Software Life Cycle. Main issues: Discussion of different life cycle models Maintenance or evolution

index_ qxd 7/18/02 11:48 AM Page 259 Index

Best Practices for Collecting User Requirements

Software Architecture and Design I

Requirements and User-Centered Design in an Agile Context

ADD 3.0: Rethinking Drivers and Decisions in the Design Process

Testing in the Agile World

SA Analysis and Design

Systems Analysis and Design in a Changing World, Fourth Edition

Quality-Driven Architecture Design Method

WHAT IS SOFTWARE ARCHITECTURE?

Lecture 7: Software Processes. Refresher: Software Always Evolves

Dimensions for the Separation of Concerns in Describing Software Development Processes

Designing Component-Based Architectures with Rational Rose RealTime

Index. brief description section (Use Case Specification documents), 138 Browser window (Rational Rose), 257 Business Rules document, 212

Architectural Blueprint

Chapter 6 Architectural Design. Chapter 6 Architectural design

UNIT-I Introduction of Object Oriented Modeling

Architecture and Design Evolution

Building the User Interface: The Case for Continuous Development in an Iterative Project Environment

Rational Software White paper

CSC Advanced Object Oriented Programming, Spring Overview

White Paper. Rose PowerBuilder Link

Optimize tomorrow today.

Evolutionary Architecture and Design

Test Driven Development. René Barto SES Agile Development - Test Driven Development

Unit 1 Introduction to Software Engineering

An Overview of TOGAF Version 9.1

Requirements to models: goals and methods

Experiment no 4 Study of Class Diagram in Rational Rose

CS487 Midterm Exam Summer 2005

Introduction - SENG 330. Object-Oriented Analysis and Design

Test Architect A Key Role defined by Siemens

Unified Modeling Language (UML)

Best Practices for Final Year Projects

Lecture 13 Introduction to Software Architecture

OG0-091 Q&As TOGAF 9 Part 1

Klocwork Architecture Excavation Methodology. Nikolai Mansurov Chief Scientist & Architect

How Can a Tester Cope With the Fast Paced Iterative/Incremental Process?

QoS-aware model-driven SOA using SoaML

Pattern for Structuring UML-Compatible Software Project Repositories

Incremental development A.Y. 2018/2019

Topic 01. Software Engineering, Web Engineering, agile methodologies.

ITEC420: Software Engineering Lecture 3: Recap OO/UML Requirement Workflow

History of object-oriented approaches

Software Architecture

Klocwork Architecture Excavation Methodology. Nikolai Mansurov Chief Scientist & Architect

Unit Wise Questions. Unit-1 Concepts

RUP for Systems Z and other Legacy Systems

CHAPTER 1. Topic: UML Overview. CHAPTER 1: Topic 1. Topic: UML Overview

DOMAIN ENGINEERING OF COMPONENTS

INTRODUCING A MULTIVIEW SOFTWARE ARCHITECTURE PROCESS BY EXAMPLE Ahmad K heir 1, Hala Naja 1 and Mourad Oussalah 2

Outline of UML and Unified Process. Object Oriented Analysis/Design/Programming UML1.5. Koichiro Ochimizu, JAIST. UML&UP outline 1.

TOGAF Enterprise Edition Version 8.1

UML Modeling. Sumantra Sarkar. 29 th June CIS 8090 Managing Enterprise Architecture

Topic : Object Oriented Design Principles

Agile Certifications. Dr. Vijay Kanabar Boston University

Model-based Transition from Requirements to High-level Software Design

F-16 Modular Mission Computer Application Software

Oliopäivät Modelling Now and in the Future, with Acronyms or without = RSA

Presenter: Dong hyun Park

Using the UML for Architectural Description Rich Hilliard

Enterprise Architecture Layers

Examples. Object Orientated Analysis and Design. Benjamin Kenwright

SOFTWARE ARCHITECTURE & DESIGN INTRODUCTION

Ch 1: The Architecture Business Cycle

Standard SOA Reference Models and Architectures

OG The Open Group OG TOGAF 9 Combined Part 1 and Part 2

Software Engineering I (02161)

S1 Informatic Engineering

Testing Agile Projects Stuart Reid

02291: System Integration

Conceptual Framework

Module 3. Overview of TOGAF 9.1 Architecture Development Method (ADM)

INTERACTION ARCHITECTURAL MODELING. Lecture 9 Interaction Architectureal Modeling

Mensch-Maschine-Interaktion 1

Agile Project Management with Primavera

Topics. Software Process. Agile. Requirements. Basic Design. Modular Design. Design Patterns. Testing. Quality. Refactoring.

Domain Engineering And Variability In The Reuse-Driven Software Engineering Business.

An Intro to Scrum. Agile (Iterative) Project Development. Written in 2001 Can be read in its entirety at:

Disciplined Agile Delivery The Foundation for Scaling Agile

Data Virtualization Implementation Methodology and Best Practices

The Kony Mobility Platform

Software Quality in a Modern Development Team. Presented by Timothy Bauguess and Marty Lewis

Module B1 An Introduction to TOGAF 9.1 for those familiar with TOGAF 8

Disciplined Agile Delivery The Foundation for Scaling Agile

OO Analysis and Design with UML 2 and UP

Software Development Methodologies

Spemmet - A Tool for Modeling Software Processes with SPEM

Software Architecture

defined. defined. defined. defined. defined. defined. defined. defined. defined.

OBJECT ORIENTED SYSTEM DEVELOPMENT Software Development Dynamic System Development Information system solution Steps in System Development Analysis

Object-Oriented Systems Development: Using the Unified Modeling Language

Software Engineering 2 A practical course in software engineering. Ekkart Kindler

Transcription:

IBM Software Group The Process of Software Architecting Peter Eeles Executive IT Architect IBM UK peter.eeles@uk.ibm.com 2009 IBM Corporation

Agenda IBM Software Group Rational software Introduction Architecture, Architect, Architecting Method fundamentals Documenting a software architecture Reusable architecture assets A day in the life Summary 2

Coming Soon! IBM Software Group Rational software 3

IBM Software Group Rational software Inspiration If I have seen further it is only by standing on the shoulders of Giants Sir Isaac Newton, letter to Robert Hooke, 15th February 1676 www.booch.com/architecture www.handbookofsoftwarearchitecture.com 4

Agenda IBM Software Group Rational software Introduction Architecture, Architect, Architecting Method fundamentals Documenting a software architecture Reusable architecture assets A day in the life Summary 5

Core Concepts IBM Software Group Rational software 6

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] 7

Architecture versus Design All architecture is design but not all design is architecture. Architecture represents the significant design decisions that shape a system, where significant is measured by cost of change. - Grady Booch 8

An architecture has a particular scope 9

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

Agenda IBM Software Group Rational software Introduction Architecture, Architect, Architecting Method fundamentals Documenting a software architecture Reusable architecture assets A day in the life Summary 11

Key Method Concepts 12

A Waterfall Process 13

An Iterative Process 14

Agile Agile Manifesto Individuals and interactions over processes and tools. Working software over comprehensive documentation. Customer collaboration over contract negotiation. Responding to change over following a plan. Scrum is a management and control process that cuts through complexity to focus on building software to meet business needs. Scrum is superimposed on top of and wraps existing engineering practices, development methodologies and standards. [Schwaber] 15

Agenda IBM Software Group Rational software Introduction Architecture, Architect, Architecting Method fundamentals Documenting a software architecture Reusable architecture assets A day in the life Summary 16

Views, Diagrams and Models 17

Basic Views and Cross-Cutting Views 18

Views, Models and Levels of Realization 19

Agenda IBM Software Group Rational software Introduction Architecture, Architect, Architecting Method fundamentals Documenting a software architecture Reusable architecture assets A day in the life Summary 20

A Metamodel of Architecture Assets 21

Agenda IBM Software Group Rational software Introduction Architecture, Architect, Architecting Method fundamentals Documenting a software architecture Reusable architecture assets A day in the life Summary 22

Inputs IBM Software Group Rational software Business Entity Model Business Process Model Business Rules Existing IT Environment Vision 23

Types of Requirements Functional requirements Describe the behaviors (functions or services) of the [IT] system that support user goals, tasks or activities. [Malan] Non-functional requirements Non-functional requirements include constraints and qualities. [Malan] Constraint A constraint is a restriction on the degree of freedom we have in providing a solution. [Leffingwell] Quality [System] qualities are properties or characteristics of the system that its stakeholders care about and hence will affect their degree of satisfaction with the system. [Malan] 24

Define Requirements 25

Task: Collect Stakeholder Requests Pitfall: Treating Requests as Requirements Pitfall: The Shopping Cart Mentality Pitfall: The Questions are too Technical Pitfall: Requests Are Too General Pitfall: Requests Are Not Measurable Pitfall: Talking with the Wrong People Pitfall: All Requests Are Equal 26

Task: Define System Context 27

Task: Outline Functional Requirements 28

Task: Outline Non-Functional Requirements Usability Requirements Reliability Requirements Performance Requirements Supportability Requirements Constraints Business Constraints Architecture Constraints Development Constraints Physical Constraints Brownfield sites are those in which redevelopment or reuse of the site is complicated by existing contaminants. Greenfield sites are clean, previously undeveloped land. [Hopkins] 29

Task: Prioritize Requirements 30

Create Logical Architecture 31

From Requirements to Solution 32

Approaches IBM Software Group Rational software Attribute Driven Design (ADD) Method Developed at the Software Engineering Institute Quality attributes drive the derivation of the architecture Underpinned by architectural tactics and patterns Siemens 4 Views (S4V) method Developed at Siemens Corporate Research Starts with a global analysis of the factors that influence the architecture Iteratively addresses challenges across four views (conceptual, execution, module and code architecture) The Rational Unified Process (RUP) Developed at Rational Software (now IBM Rational) Driven by architecturally-significant requirements Each iteration considers the key architectural elements of the solution, before realizing the requirements using these solution elements 33

How Much Logical Architecture? Minimizing Logical Architecture The logical architecture is simply a means of getting to a physical architecture as quickly as possible In some cases, no logical architecture may be required at all E.g. The requirements for the system are similar to those of an existing system E.g. We are using a packaged application or integrating with an existing system Logical Architecture as an Investment A valuable asset if a technology change is anticipated at some point in the future 34

Task: Define Architecture Overview 35

Task: Outline Functional Elements Component identification Business Entity Model Clustering of related entities Functional requirements Boundary, control and entity components Non-functional requirements Constraints Components that address specific technical challenges (e.g. security) Business rules Business rules component(s) Architecture decisions Use of particular assets (e.g. packages, patterns) 36

Task: Outline Functional Elements 37

Task: Outline Functional Elements 38

Assigning NFRs to Components 39

Task: Outline Deployment Elements 40

Task: Outline Deployment Elements 41

Task: Outline Deployment Elements 42

Summary IBM Software Group Rational software The process of architecting Spans software engineering disciplines Applies across the project lifecycle Draws upon proven experience (practices, standards and other assets) Is built upon solid engineering principles 43

44

45