prj566 project planning & management software architecture

36
PRJ566 Project Planning & Management Software Architecture

Upload: bertina-imogen-richard

Post on 14-Jan-2016

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PRJ566 Project Planning & Management Software Architecture

PRJ566 Project Planning & Management

Software Architecture

Page 2: PRJ566 Project Planning & Management Software Architecture

Systems Development Lifecycle (SDLC)

Projects are developed according to a definite methodology called the SDLC

Three major activities Analysis: understanding business needs Design: conceptualizing computer-system

solution Implementation: construction, testing, and

installation

Page 3: PRJ566 Project Planning & Management Software Architecture

Systems Development Lifecycle (SDLC)

Two additional phases: Project planning Support

Page 4: PRJ566 Project Planning & Management Software Architecture

Aids to Assist in Analysis and Design

Methodologies Comprehensive guidelines to follow for completing every SDLC

activity Collection of techniques Examples: Structured, OO

Models Representation of an important aspect of the real world Diagrams and charts Project planning aids

Page 5: PRJ566 Project Planning & Management Software Architecture

Software Architecture

Page 6: PRJ566 Project Planning & Management Software Architecture

Architectural Design Focuses on the overall structure of the system, the

relationships among its major components and their interactions

Is divided into sections or views

Page 7: PRJ566 Project Planning & Management Software Architecture

Models and Views Models are complete representations of the

system: use case models, class diagrams Architectural views focus only on what is

architecturally significant

Page 8: PRJ566 Project Planning & Management Software Architecture

The Architect The person responsible for the overall

structure and design of the system In a small system the architect may serve the role

of the analyst and the software designer, Programmer/Analyst

Should be the most senior and responsible person on the technical team

Page 9: PRJ566 Project Planning & Management Software Architecture

The Architect Becomes the owner of the technical vision

and his/her understanding of the overall system, coupled with his/her ability to to design a model of the system, is critical to the success of the project

Page 10: PRJ566 Project Planning & Management Software Architecture

The Architecture Document Designed to establish the overall structure of

the entire project by describing various architectural views

Page 11: PRJ566 Project Planning & Management Software Architecture

Architectural Views A view is a specific perspective or focus.

Typically an architectural view is a subset of the entire architecture.

Page 12: PRJ566 Project Planning & Management Software Architecture

Architectural Views The 4 + 1 View Model developed by Philippe

Krutchen

The 4 + 1 View Model developed by Philippe Krutchen

Page 13: PRJ566 Project Planning & Management Software Architecture

Use Case View Has precedence over the other views, because

the use case view--the collected use cases from the requirements analysis--drives and motivates the rest of the design.

Page 14: PRJ566 Project Planning & Management Software Architecture

Use Case View It is the job of the architecture and ultimately

the implementation to realize the use case requirements

Focus is on the interaction of the classes and how these interactions serve to implement the use cases we analyzed previously

Page 15: PRJ566 Project Planning & Management Software Architecture

Logical View Represents the organization of the most

significant classes and how they relate to one another

The class design is integrated into the logical view, creating an integrated perspective of the entire system

Page 16: PRJ566 Project Planning & Management Software Architecture

Logical View Most comprehensive architectural view Incorporates the most significant aspects of

all other views Provides an overview of the entire

architecture, and in conjunction with the code itself, provides a guide to the software

Page 17: PRJ566 Project Planning & Management Software Architecture

Process View Focuses on how, in a system with

multithreading or multiple processes, the concurrent tasks interact

Page 18: PRJ566 Project Planning & Management Software Architecture

Copyright © 1997 by Rational Software Corporation

The Physical World

Component diagrams illustrate the organizations and dependencies among software components

A component may be A source code component A run time components or An executable component

Page 19: PRJ566 Project Planning & Management Software Architecture

Copyright © 1997 by Rational Software Corporation

Course CourseOffering

Student Professor

Component Diagram

Course.dll

People.dll

Course

User

Register.exeBilling.exe

BillingSystem

Page 20: PRJ566 Project Planning & Management Software Architecture

Copyright © 1997 by Rational Software Corporation

Deploying the System

The deployment diagram shows the configuration of run-time processing elements and the software processes living on them

The deployment diagram visualizes the distribution of components across the enterprise.

Page 21: PRJ566 Project Planning & Management Software Architecture

Deployment View Focuses on the physical allocation of

resources and the allocation of tasks among those resources in a distributed system

Page 22: PRJ566 Project Planning & Management Software Architecture

Copyright © 1997 by Rational Software Corporation

Deployment Diagram

Registration Database

Library

Dorm

Main Building

Page 23: PRJ566 Project Planning & Management Software Architecture

Implementation View Embodied in the code with its supporting

documentation

Page 24: PRJ566 Project Planning & Management Software Architecture

How are architectural goals to be achieved?

Model software objects after problem domain objects

Build software systems like hardware systems, i.e. more pluggable

View programming as assembling parts

Page 25: PRJ566 Project Planning & Management Software Architecture

How are architectural goals to be achieved?

Build new software parts by extension “Grow” software systems through iterative

development Achieve large-grain interoperability across

heterogeneous systems and networks

Page 26: PRJ566 Project Planning & Management Software Architecture

Iteration Across Life Cycle Phases

Page 27: PRJ566 Project Planning & Management Software Architecture

The Spiral Life Cycle Model

Phases can be broken into smaller pieces, each with a different type of risk

Page 28: PRJ566 Project Planning & Management Software Architecture

Copyright © 1997 by Rational Software Corporation

Inception Elaboration Construction Transition

Iteration 1 Iteration 2 Iteration 3

Iteration PlanningRqmts Capture

Analysis & DesignImplementation

Test Prepare Release

“Mini-Waterfall” Process

Use Cases Drive the Iteration Process

Page 29: PRJ566 Project Planning & Management Software Architecture

Copyright © 1997 by Rational Software Corporation

Work Allocation Within an Iteration

Work to be accomplished within an iteration is determined by The (new) use cases to be implemented The rework to be done

Packages make convenient work packages for developers High-level packages can be assigned to teams Lower-level packages can be assigned to individual

developers Use Cases make convenient work packages for test and

assessment teams

Page 30: PRJ566 Project Planning & Management Software Architecture

Copyright © 1997 by Rational Software Corporation

The Iteration Life Cycle: A Mini-Waterfall

• Results of previous iterations• Up-to-date risk assessment• Controlled libraries of models,

code, and tests

Release descriptionUpdated risk assessmentControlled libraries

Iteration Planning

Requirements Capture

Analysis & Design

Implementation

Test

Prepare Release

Selected scenarios

Page 31: PRJ566 Project Planning & Management Software Architecture

Copyright © 1997 by Rational Software Corporation

Detailed Iteration Life Cycle Activities

Analysis & Design Determine the classes to be developed or updated in this iteration Update the object model to reflect additional design classes and

associations discovered Update the architecture document if needed Begin development of test procedures

Implementation Automatically generate code from the design model Manually generate code for operations Complete test procedures Conduct unit and integration tests

Page 32: PRJ566 Project Planning & Management Software Architecture

Copyright © 1997 by Rational Software Corporation

Detailed Iteration Life Cycle Activities

Test Integrate and test the developed code with the rest of the

system (previous releases) Capture and review test results Evaluate test results relative to the evaluation criteria Conduct an iteration assessment

Prepare the release description Synchronize code and design models Place products of the iteration in controlled libraries

Page 33: PRJ566 Project Planning & Management Software Architecture

Copyright © 1997 by Rational Software Corporation

Iteration Assessment

Assess iteration results relative to the evaluation criteria established during iteration planning: Functionality Performance Capacity Quality measures

Consider external changes that have occurred during this iteration For example, changes to requirements, user needs, competitor’s

plans Determine what rework, if any, is required and assign it to the

remaining iterations

Page 34: PRJ566 Project Planning & Management Software Architecture

Copyright © 1997 by Rational Software Corporation

Initial Project RisksInitial Project Scope

Revise Overall Project Plan• Cost• Schedule• Scope/Content

Plan Iteration N• Cost• Schedule

Assess Iteration N

Risks EliminatedRevise Project Risks• Reprioritize

Develop Iteration N• Collect cost and quality metrics

Define scenarios to address highest risks

Iteration N

Risk Reduction Drives Iterations

Page 35: PRJ566 Project Planning & Management Software Architecture

Copyright © 1997 by Rational Software Corporation

Three Important Features of the Iterative Approach

Continuous integration Not done in one lump near the delivery date

Frequent, executable releases Some internal; some delivered

Attack risks through demonstrable progress Progress measured in products, not documentation or engineering

estimates

Page 36: PRJ566 Project Planning & Management Software Architecture

Copyright © 1997 by Rational Software Corporation

Resulting Benefits

Releases are a forcing function that drives the development team to closure at regular intervals Cannot have the “90% done with 90% remaining”

phenomenon Can incorporate problems/issues/changes into future

iterations rather than disrupting ongoing production The project’s supporting elements (testers, writers,

toolsmiths, CM, QA, etc.) can better schedule their work