+ All Categories
Home > Documents > CSPC 464 Fall 2014 Son Nguyen. 1. The Process of Software Architecting, Peter Eeles, Peter Cripss 2....

CSPC 464 Fall 2014 Son Nguyen. 1. The Process of Software Architecting, Peter Eeles, Peter Cripss 2....

Date post: 19-Jan-2016
Category:
Upload: alexia-welch
View: 216 times
Download: 3 times
Share this document with a friend
24
Process of Architecting CSPC 464 Fall 2014 Son Nguyen
Transcript
Page 1: CSPC 464 Fall 2014 Son Nguyen. 1. The Process of Software Architecting, Peter Eeles, Peter Cripss 2. Software Architecture for Developers, Simon Brown.

Process of Architecting

CSPC 464 Fall 2014Son Nguyen

Page 2: CSPC 464 Fall 2014 Son Nguyen. 1. The Process of Software Architecting, Peter Eeles, Peter Cripss 2. Software Architecture for Developers, Simon Brown.

References

1. The Process of Software Architecting, Peter Eeles, Peter Cripss

2. Software Architecture for Developers, Simon Brown

3. An Introduction to Software Architecture, David Garlan and Mary Shaw

4. Software Architecture, A. Bijlsma, B.J. Heerendr., E.E> Roubtovair, S. Stuurman

2

Page 3: CSPC 464 Fall 2014 Son Nguyen. 1. The Process of Software Architecting, Peter Eeles, Peter Cripss 2. Software Architecture for Developers, Simon Brown.

Agenda Attendance/Roster Review Tuesday’s topics Today’s topics: Process of Architecting

◦ Method Content Work products Tasks Roles

◦ Types of Process Waterfall Iterative Agile

Page 4: CSPC 464 Fall 2014 Son Nguyen. 1. The Process of Software Architecting, Peter Eeles, Peter Cripss 2. Software Architecture for Developers, Simon Brown.

Review What is an architecture? What is software architecture? What is the role of the architect? What is architecting?

Page 5: CSPC 464 Fall 2014 Son Nguyen. 1. The Process of Software Architecting, Peter Eeles, Peter Cripss 2. Software Architecture for Developers, Simon Brown.

Review: Core Concepts

5

Page 6: CSPC 464 Fall 2014 Son Nguyen. 1. The Process of Software Architecting, Peter Eeles, Peter Cripss 2. Software Architecture for Developers, Simon Brown.

Key Method Concepts Use SW and Systems Process Engineering

Metal Model Specification (SPEM) standard An effective SW development method

should describe who does what, how, and when◦ Roles: The Who◦ Work products: The What◦ Tasks: The How◦ Phases, iterations, and activities: The When

Page 7: CSPC 464 Fall 2014 Son Nguyen. 1. The Process of Software Architecting, Peter Eeles, Peter Cripss 2. Software Architecture for Developers, Simon Brown.

Key Method Concepts and Their Relationship

Page 8: CSPC 464 Fall 2014 Son Nguyen. 1. The Process of Software Architecting, Peter Eeles, Peter Cripss 2. Software Architecture for Developers, Simon Brown.

Key Method Concepts and Their Relationship A SW development project typically moves

through several phases Each phase is divided into several iterations Within each iteration, there are various

activities that reference◦ Tasks

performed by roles Produces work product

Page 9: CSPC 464 Fall 2014 Son Nguyen. 1. The Process of Software Architecting, Peter Eeles, Peter Cripss 2. Software Architecture for Developers, Simon Brown.

Method Content - Role Defines the responsibilities of an individual

or a set of individuals working together as a team

Responsible for one or more work products and performs a set of tasks ◦ Requirement Analyst◦ Project manager◦ Lead architect◦ Application architect◦ Infrastructure architect◦ Data Architect

Page 10: CSPC 464 Fall 2014 Son Nguyen. 1. The Process of Software Architecting, Peter Eeles, Peter Cripss 2. Software Architecture for Developers, Simon Brown.

Method Content - Work Product A piece of information or physical entity

that is produced/used during execution of the process

The SPEM defines three types:◦ Artifact: document, model, source code, executable◦ Deliverable: content packaged for delivery to a

stakeholder◦ Outcome: a result or state as the result of task execution

Page 11: CSPC 464 Fall 2014 Son Nguyen. 1. The Process of Software Architecting, Peter Eeles, Peter Cripss 2. Software Architecture for Developers, Simon Brown.

Method Content - Activity An activity represents a group of tasks The architect performs tasks within the activities:

creating logical architecture (chapter 8) and creating physical architecture (chapter 9)

A task is a unit of work that provides a meaningful result ◦ Has a clear purpose (e.g., document architecture decisions)◦ Performed by appropriate roles◦ May be repeated several times, especially when an iterative development approach is taken

Page 12: CSPC 464 Fall 2014 Son Nguyen. 1. The Process of Software Architecting, Peter Eeles, Peter Cripss 2. Software Architecture for Developers, Simon Brown.
Page 13: CSPC 464 Fall 2014 Son Nguyen. 1. The Process of Software Architecting, Peter Eeles, Peter Cripss 2. Software Architecture for Developers, Simon Brown.

The Process The application of the method content in

terms of sequence in which they are applied Three types of process:

◦ Waterfall◦ Iterative◦ Agile

Page 14: CSPC 464 Fall 2014 Son Nguyen. 1. The Process of Software Architecting, Peter Eeles, Peter Cripss 2. Software Architecture for Developers, Simon Brown.

Waterfall Process Each discipline is deemed to be complete when

all the appropriate work products for that discipline have been created and signed off on

The requirements discipline considered to be complete when all the requirements have been identified in detail, and reviewed. Then the outputs from requirements flows into the architecture discipline

Page 15: CSPC 464 Fall 2014 Son Nguyen. 1. The Process of Software Architecting, Peter Eeles, Peter Cripss 2. Software Architecture for Developers, Simon Brown.

Classic Waterfall Model

15

Requirements

Design

Code & Unit Test

Integration

Test (Validation & Verification)

Maintenance

Page 16: CSPC 464 Fall 2014 Son Nguyen. 1. The Process of Software Architecting, Peter Eeles, Peter Cripss 2. Software Architecture for Developers, Simon Brown.

Waterfall Process (cont.) This approach is widely used in:

◦ the development of a system involves a relative small amount of risk

◦ projects represent minor enhancements of an existing system

This approach can be problematic for◦ Greenfield projects where architect starts from a

scratch◦ Projects are changing extensively

for several reasons.

Page 17: CSPC 464 Fall 2014 Son Nguyen. 1. The Process of Software Architecting, Peter Eeles, Peter Cripss 2. Software Architecture for Developers, Simon Brown.

Waterfall Process (cont.) Major Problems:

◦ Project progress cannot be measured accurately Focus on creation of work products, not achievement of

results Completing requirements without doing any architecture,

development, or testing will NOT give you an accurate indication of how long project would take

◦ User feedback cannot obtained until late in the project – when the system is available for use

◦ Resolution of certain risks (e.g., activity identifies flaws in design or requirements) is deferred until late in the project – after the system is built, integrated, and tested

◦ Project that follow a waterfall approach are prone to schedule slippage

Page 18: CSPC 464 Fall 2014 Son Nguyen. 1. The Process of Software Architecting, Peter Eeles, Peter Cripss 2. Software Architecture for Developers, Simon Brown.

Iterative Process Iteration:

◦ A short and set duration of a project◦ Allow to demonstrate incremental value◦ Obtain early and continuous feedback

A pass is made through each of disciplines Each iteration results in

◦ Better understanding of requirements◦ A more robust architecture◦ A more experienced development org◦ A more complete implementation

More productive and successful

Page 19: CSPC 464 Fall 2014 Son Nguyen. 1. The Process of Software Architecting, Peter Eeles, Peter Cripss 2. Software Architecture for Developers, Simon Brown.

Iterative Process Phases – OpenUP defines four sequential phases:

◦ Inception Phase: Where the business case and objectives for project is established Where the focus is on ensuring project is valuable and feasible

◦ Elaboration phase: Where the architecture is established Where the architect expends the most effort

◦ Construction Phase: Where the remaining requirements are clarified Where development of the system is completed on the baselined

architecture◦ Transition Phase:

Where the system is deployed in user’s environment for acceptance testing

Where project should be to closed out by the end

Page 20: CSPC 464 Fall 2014 Son Nguyen. 1. The Process of Software Architecting, Peter Eeles, Peter Cripss 2. Software Architecture for Developers, Simon Brown.

Iterative Process Phases and iterations together provide foundation for an

iterative development process Objectives of each phase are achieved by executing one or

more iterations within the phase Each phase concludes with a major milestone Successful assessment allows the project to move to the

next phase

Page 21: CSPC 464 Fall 2014 Son Nguyen. 1. The Process of Software Architecting, Peter Eeles, Peter Cripss 2. Software Architecture for Developers, Simon Brown.

Waterfall vs. Iterative An iterative development process is result-

driven (vs. work-product driven), providing more accurate measures of project progress

An iterative approach:◦ allows early user feedback through execution of

incremental releases◦ Integration and testing occur within each iteration

and executable release is produced◦ Risks are detected early on

Page 22: CSPC 464 Fall 2014 Son Nguyen. 1. The Process of Software Architecting, Peter Eeles, Peter Cripss 2. Software Architecture for Developers, Simon Brown.

Agile Process Agile Manifesto (2009) states the following

values:◦ 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 2002]

Page 23: CSPC 464 Fall 2014 Son Nguyen. 1. The Process of Software Architecting, Peter Eeles, Peter Cripss 2. Software Architecture for Developers, Simon Brown.

Agile Process - Scrum Scrum focuses on:

◦ Content of an iteration (Sprint)◦ Prioritized requirements to be considered in

iteration (Sprint Backlog)◦ A Short daily meeting (a Scrum)

Scrum methodology will be discussed in more detail later in Oct 9 lecture

Page 24: CSPC 464 Fall 2014 Son Nguyen. 1. The Process of Software Architecting, Peter Eeles, Peter Cripss 2. Software Architecture for Developers, Simon Brown.

24

Coming Next… Next week, we will take a look at

◦ Elements of Software Architecture ◦ Architectural Design Process

Homework assignments this week – read chapter 1, 2, and 3 in The Process of Software Architecting

Any questions?


Recommended