Chap 1. Introduction to Software Architecture



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

Modellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico

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

The Role of the Software Architect

Classical Software Life Cycle Models

Basic Unified Process: A Process for Small and Agile Projects

Software Development in the Large!

Software Development Methodologies

A UML Introduction Tutorial

Implementation Workflow

Software Engineering. Software Processes. Based on Software Engineering, 7 th Edition by Ian Sommerville

A Review of an MVC Framework based Software Development

Development Methodologies

Plan-Driven Methodologies

How To Understand The Software Process

To introduce software process models To describe three generic process models and when they may be used

Software Design Models, Tools & Processes *

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

Supporting Workflow Overview. CSC532 Fall06

Developing SOA solutions using IBM SOA Foundation

An Introduction to the UML and the Unified Process

In this Lecture you will Learn: Systems Development Methodologies. Why Methodology? Why Methodology?

TOGAF usage in outsourcing of software development

CS4507 Advanced Software Engineering

3C05: Unified Software Development Process

Modeling Web Applications Using Java And XML Related Technologies

An Approach to Software Architecture Description Using UML

Data Modeling Basics

JOURNAL OF OBJECT TECHNOLOGY

Development models. 1 Introduction. 2 Analyzing development models. R. Kuiper and E.J. Luit

The Software Process. The Unified Process (Cont.) The Unified Process (Cont.)

What is a life cycle model?

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

SE464/CS446/ECE452 Software Life-Cycle and Process Models. Instructor: Krzysztof Czarnecki

In this Lecture you will Learn: Development Process. Unified Software Development Process. Best Practice

Software Lifecycles Models

Software Process and Models

Architecture Definitions

Developing Business Architecture with TOGAF

Research Topics in Software Engineering

Chapter 3. Technology review Introduction

Software Development Life Cycle (SDLC)

What Is the Rational Unified Process?

Surveying and evaluating tools for managing processes for software intensive systems

Chapter 3 The Integrated Requirements Management Framework (IREQM)

Managing Small Software Projects - An Integrated Guide Based on PMBOK, RUP, and CMMI

Analysis and Design with UML

VAIL-Plant Asset Integrity Management System. Software Development Process

Abstract. 1 Introduction

Reaching CMM Levels 2 and 3 with the Rational Unified Process

Software Project Management using an Iterative Lifecycle Model

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

CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS)

Business Modeling with UML

The Unified Software Development Process

How To Develop A Telelogic Harmony/Esw Project

White Paper What Solutions Architects Should Know About The TOGAF ADM

Elite: A New Component-Based Software Development Model

Appendix 2-A. Application and System Development Requirements

Requirements Management Practice Description

Software Engineering Reference Framework

Leveraging RUP, OpenUP, and the PMBOK. Arthur English, GreenLine Systems

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

Agile Unified Process

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

Life Cycle Activity Areas for Component-Based Software Engineering Processes

CS 487. Week 8. Reference: 1. Software engineering, roger s. pressman. Reading: 1. Ian Sommerville, Chapter 3. Objective:

An MDA Approach for the Development of Web applications

Unit 1 Learning Objectives

Systems Engineering with RUP: Process Adoption in the Aerospace/ Defense Industry

The role of integrated requirements management in software delivery.

3SL. Requirements Definition and Management Using Cradle

Sistemi ICT per il Business Networking

Systematization of Requirements Definition for Software Development Processes with a Business Modeling Architecture

Information systems modelling UML and service description languages

Menouer Boubekeur, Gregory Provan

How To Design An Information System

i. Node Y Represented by a block or part. SysML::Block,

Chapter 4 Software Lifecycle and Performance Analysis

Software Development Process Models and their Impacts on Requirements Engineering Organizational Requirements Engineering

Universiti Teknologi MARA. Requirement Analysis Using UML Approach for Research Management System (RMS)

Design methods. List of possible design methods. Functional decomposition. Data flow design. Functional decomposition. Data Flow Design (SA/SD)

SOFTWARE PROCESS MODELS

Lecture 9: Requirements Modelling

Designing a Semantic Repository

I219 Software Design Methodology

Increasing Development Knowledge with EPFC

Introduction to OpenUP (Open Unified Process)

Announcements. SE 1: Software Requirements Specification and Analysis. Review: Use Case Descriptions

2. Analysis, Design and Implementation

Using UML Part One Structural Modeling Diagrams

Object-Oriented Systems Analysis and Design

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

A Capability Maturity Model (CMM)

A Software Development Platform for SOA

Transcription:

Chap 1. Introduction to Software Architecture 1. Introduction 2. IEEE Recommended Practice for Architecture Modeling 3. Architecture Description Language: the UML 4. The Rational Unified Process (RUP) 1

1. Introduction Preamble Conventional wisdom has been to use terms like software architecture, software architectural design, or coarse-grained design for the high-level structural subdivision of a system, and design or detailed design for more detailed planning we denote the whole activity of constructing a software system as software design and the resulting artifacts as software architecture. Many developers nowadays prefer the term software architecture to software design for denoting all the artifacts that result from design activities. In doing so, they want to express the fact that they do not just decompose the functionality of a system into a set of cooperating components, but rather that they construct a software architecture They no longer agree that high-level design decisions can be made independently of lower-level decisions. From Pattern-Oriented Software Architecture, A System of Patterns By F. Buschmann, R. Meunier, H. Rohnert, P. Sommerlad, M. Stal 2

Software Architecture as a Design Plan Software architecture provides a design plan, a blueprint of a system, an abstraction to help manage the complexity of a system, and also a communication medium between stakeholders. Critical factor for a product s success: good software architecture that is understood by the stakeholders and by the developers. Structural plan that describes the elements of the system, how they fit together, and how they work together to fulfill the system s requirements. Used to negotiate system requirements, and to set expectations with customers, marketing and management personnel. Used as a blueprint during the development process Guides the implementation tasks, including detailed design, coding, integration, and testing. 3

Comes after the domain analysis, requirements analysis, and risk analysis, and before detailed design, coding, integration and testing. Domain Analysis, Requirements Analysis, Risk Analysis requirements, desired qualities Software Architecture Design hardware architecture Hardware Architecture Design modifications to requirements modifications to hardware architecture software architecture implementation constraints Detailed Design, Coding, Integration, Testing feed forward feedback Key inputs to software architecture design: The requirements produced by the analysis tasks The hardware architecture (the software architect in turn provides requirements to the system architect, who configures the hardware architecture) 4

2. IEEE Recommended Practice Unfortunately, software architecture is still an emerging discipline within software engineering; limitations: lack of standardized ways to represent architecture lack of analysis methods to predict whether an architecture will result in an implementation that meets the requirements. So far, the most advanced efforts towards the development of a standard have been made by the IEEE Working Group on Software Architecture, giving rise to the IEEE Recommended Practice for Software Architecture Development. The IEEE Recommended practice for Software Architecture Development: Define a conceptual framework for architecture development. Goal: evolve into a standard 5

Conceptual Framework -Every system has an inherent architecture. The concrete document that is associated with the architecture actually provides a specific description of the architecture, also referred to as an architectural description (AD). -An architectural description consists of a collection of views: each view describes one or more concerns involved in the system. -A viewpoint defines the modeling and analysis techniques and conventions used to create a view that describes the concerns addressed by the viewpoint. Viewpoint definitions may be provided either as starting point of the AD or by reusing existing viewpoints also referred to as library viewpoints. A view may be associated to exactly one viewpoint within the same AD, and consists of one or more architectural models. -Every stakeholder's concerns must be addressed by at least one viewpoint Viewpoints may be overlapping, in which case potential inconsistencies must be analyzed and recorded. 6

Examples: Viewpoints and Views in Structured Analysis (SA) Note: -DFD: Data Flow Diagram -ERD: Entity-Relation Diagram -STD: State Transition Diagram Viewpoints and Views in Object-Oriented Analysis (OOA) 7

Conceptual Model of Architectural Description 8

Conformance An architecture description that conforms to the IEEE guidelines encompasses at least six different kinds of information: -Architectural documentation provides reference and overview information about the AD: version number, issue date, issuing organization, summary, scope and context of the AD etc. -Identification of system stakeholders and their concerns. -Specification of the viewpoints selected to represent the AD and the motivation for the choice of these viewpoints. -Architectural views derived from the viewpoints. A view is associated to exactly one viewpoint, to which it must conform. -Potential inconsistencies among the views and the underlying models must be analyzed, recorded and if necessary resolved. -The rationale behind the architectural concepts selected. 9

3. Architect. Description Language: the UML -The UML is a language for visualizing, specifying, constructing and documenting the artifacts of a software-intensive system. -Creating the UML public feedback OMG Acceptance, Nov 1997 Final submission to OMG, Sep 97 First submission to OMG, Jan 97 UML partners UML 1.0 UML 1.1 UML 1.3 UML 2.0 UML 1.4 Web - June 96 UML 0.9 OOPSLA 95 Unified Method 0.8 Other methods Booch method OMT OOSE 10

Views, Models, and -A diagram is a model in a view; a view consists of one or more models -A view is an instance of a viewpoint for a particular system: presented from the aspect of particular stakeholders provides a partial representation of the system is semantically consistent with other views -In the UML, there are thirteen standard diagrams: Structure diagrams: class, object, component, deployment, composite structure, package diagrams Behavior diagrams: activity, state machine, use case, and interaction diagrams - Interaction diagrams: sequence, communication, interaction overview, and timing diagrams Use Case Interaction Use Case Overview Use Case Communication Use Case Use Use Case Case Sequence Scenario Scenario Use Case Scenario Scenario Statechart Use Use Case Case Timing Use Use Case Case Package Models Activity State State Class Component Component Deployment Use Case Composite Use Case Structure State State Object State State Component 11

4. The Rational Unified Process (RUP) Process -Software engineering process: A set of partially ordered steps intended to reach a goal, which is to build a software product or to enhance an existing one. The Rational Unified Process -Extensive set of guidelines supporting an iterative and incremental life cycle and focusing on requirements analysis and design. Development proceeds as a series of iterations that evolve into the final system. Each iteration consists of one or more of the following steps: requirements capture, analysis, design, implementation, and test. 12

Risk-mitigating process: technical risks are assessed and prioritized early in the life cycle and are revised during each iteration. Releases are scheduled to ensure that the highest risks are tackled first. Initial risks Initial project scope Revise project plan Define iteration to address the highest risks Iteration N Plan and develop the iteration Assess the iteration Revise risk assessment Risks eliminated 13

Phases of the Rational Unified Process -Structured along two dimensions: time division of the life cycle into phases and iterations process components consisting of the production of a specific set of artifacts with well-defined activities -Each activity of the process component dimension typically is applied to each phase of time-based dimension, but at a varying degree dependent upon the specific phase. 14

Lifecycle Phases (Time Dimension) Inception Elaboration Construction Transition time Inception Elaboration Construction Define the scope of the project and develop business case Plan project, specify features, and baseline the architecture Build the product Transition Transition the product to its users 15

Phases and Iterations (Process Component Dimension) Inception Elaboration Construction Transition Prelim Iteration... Arch Iteration... Dev Iteration Dev Iteration... Trans Iteration... The process component dimension includes: Requirements capture: a narration of what the system should do Release Release Release Release Release Release Release Release Analysis and design: a description of how the system will be realized in the implementation phase Implementation: the production of the code that will result in an executable system Test: the verification of the entire system 16

Unified Process Structure Phases Process Workflows Inception Elaboration Construction Transition Business Modeling Requirements Analysis & Design Implementation Test Deployment Supporting Workflows Configuration Mgmt Management Environment Preliminary Iteration(s) Iter. #1 Iter. #2 Iter. #n Iter. #n+1 Iter. #n+2 Iter. #m Iter. #m+1 Iterations 17

Architecture Modeling The 4+1 Views of Architecture -RUP advocates the use of multiple perspectives to describe the various concerns. RUP suggests a five views approach: Logical View Process View Classes, interfaces, collaborations Use cases Use Case View Process,Threads Implementation View Deployment View Source, binary, executable components Organization Package, subsystem Dynamics Interaction, State machine Nodes 18

-Use case view: consists of a set of key use cases or scenarios, which guide the design of the architecture during the inception and elaboration phases and are used later to validate the other views. -Logical view: addresses the functional requirements of the system; provides an abstraction of the design model and defines main design subsystems and classes. -Process view: defines the system s concurrency and synchronization mechanisms at run-time (tasks, threads, processes etc.). -Deployment view: defines the hardware topology on which the system is executed. -Implementation view: defines the parts used to assemble and release the physical system (source code, data files, executables etc.). 19

Simple Monolithic App. Use Case View Use case diagrams Logical View Class diagrams Interaction diagrams Process View None required Implementation View None required Deployment View None required Complex Distributed App. Use Case View Use case diagrams Activity diagrams Logical View Class diagrams Interaction diagrams Statechart diagrams Process View Class diagrams Interaction diagrams Implementation View Component diagrams Deployment View Deployment diagrams 20