CSPC 464 Fall 2014 Son Nguyen. 1. The Process of Software Architecting, Peter Eeles, Peter Cripss 2....
-
Upload
alexia-welch -
Category
Documents
-
view
215 -
download
3
Transcript of CSPC 464 Fall 2014 Son Nguyen. 1. The Process of Software Architecting, Peter Eeles, Peter Cripss 2....
Process of Architecting
CSPC 464 Fall 2014Son Nguyen
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
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
Review What is an architecture? What is software architecture? What is the role of the architect? What is architecting?
Review: Core Concepts
5
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
Key Method Concepts and Their Relationship
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
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
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
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
The Process The application of the method content in
terms of sequence in which they are applied Three types of process:
◦ Waterfall◦ Iterative◦ Agile
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
Classic Waterfall Model
15
Requirements
Design
Code & Unit Test
Integration
Test (Validation & Verification)
Maintenance
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.
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
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
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
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
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
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]
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
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?