133
Corsica - USA Corsica - USA IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA Tel 775-881-3436 [email protected] Software Engineering University of Corsica March-April 2002 by Robert L. Straitt Organizational Performance Architect 8362 Tamarack Village 119-145, Woodbury, MN 551125, USA Tel 612-747-6300 [email protected]

Software Engineering Course

Embed Size (px)

Citation preview

Corsica - USA

Corsica - USA

IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

Software Engineering

University of Corsica

March-April 2002 by

Robert L. Straitt Organizational Performance Architect

8362 Tamarack Village 119-145, Woodbury, MN 551125, USA

Tel 612-747-6300 [email protected]

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

1

Introduction

Overview

This course is designed to give students a basic understanding of the

management demands that a software project creates within an organization,

from its conception to retirement. It provides for hands on experience to the

students through the development and implementation of a mini software

project by the students. The students will be exposed to some of the pressures

of the software industry work environment by having to cope with formal

planning documents, estimating, project reviews and delivery of the product

on a very tight schedule. The course emphasizes the formal principles of

software engineering over the technical activities of programming to give the

students a better understanding of how successful software projects are

managed and implemented.

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

2

Lesson #1 Introduction to Software Engineering

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

3

Lesson #1 Introduction

Topics for this Class

•Distinction between Programming and Software engineering

•Knowledge Requirements for Software Engineering

•A history of Software Engineering

•Introduction of the Life Cycle Concept

•Present the Class Project

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

4

Lesson #1 Introduction

What is the difference between

Software Engineering and

Application Development (Programming)?

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

5

Lesson #1 Introduction

Engineering

Programming

Vs.

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

6

Lesson #1 Introduction

Engineering

•Understanding the problem

– Business Goals

– Operational Issues

– Business Environment

•Understanding the Technology

– Tools Available

– Methodologies

– Impacts of Choices

•Architecting a solutions

– Technical approaches

– Cultural change management

– Business and Financial Drivers

Programming

• Understanding the requirements

– Product purpose

– Functional Usage

– End result

• Understanding the Software

– Fluent in Language Syntax

– Command Structure

– Programming Techniques

• Building the Solution

– Code only functions specified

– Verify functional value

– Fix and maintain

Programming vs. Engineering

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

7

Lesson #1 Introduction

Software Engineering

• The science of understanding and translating real world

challenges into detailed technical issues, product

descriptions, and implementation strategies.

• It begins with the knowledge and understanding of the

processes involved in gathering the user needs (not just

desires), assessing the operational environment, and

defining the cultural impacts that will result from the

engineered change.

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

8

Lesson #1 Introduction

Software Engineering (cont.)

• It Transitions through the application of technical processes to

implement the engineered solutions and modify work planned to

adapt to ongoing changes in the operational environment.

• It ends when a product has been brought out of the production

environment and will no longer be used.

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

9

Lesson #1 Introduction

Software Engineering Processes

Broad-basedTQM

Philosophy

ProceduresTrainingPeople

Methods

CaseTools

- Measurement/metrics- Analysis- Design -- data design -- architectural design -- procedural design- Coding- Testing- Re-engineering (Maintenance) -- restructuring -- reverse engineering -- forward engineering- Reuse

- Project management tools- System support tools- Methods support tools- Coding support tools- Architecture tools- Reuse repository

- Project plan and process framework documented and followed- Measurement program- Reuse program- Software quality assurance (SQA)- Change control (configuration management)- Size/cost/schedule est imation and tracking- Requirements established and controlled- Peer inspections of process and product- Activities coordinated by functional group- Project-specific training program- Dedicated process improvement group

Guidelines for Successful Acquisition and Management of Software Intensive Systems, 1996

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

10

Lesson #1 Introduction

Software Engineering Processes

• Iteration between formal and analysis and design

• Heavy use of earlier designs

• Trade-offs between alternatives

• Handbooks and manuals

• A pragmatic approach to cost-effectiveness, and

• Attention to economic concerns.

[MOSEMANN92]

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

11

Lesson #1 Introduction

History of Software Engineering

• Software development began as an ad-hoc effort

performed by software artist.

• Software development transitions into a an art from

accomplished by skilled artisans.

• Software development reaches a level of complexity that

requires the emergence of a formal engineering

discipline.

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

12

Lesson #1 Introduction

History of Software Engineering (cont.)

25

Software Engineering is Different ThanSoftware-as-Art or -Craft

ART CRAFT ENGINEERING

Fido

Guidelines for Successful Acquisition and Management of Software Intensive Systems, 1996

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

13

Lesson #1 Introduction

History of Software Engineering (cont.)

• 1950’s Software development was like the early airplane development, trial and error with more error then success.

• 1960’s Software development was like an art form with each project being built uniquely and no two software products even similar.

• 1970’s Software products became larger and more complex early engineering concepts tried.

• 1980’s Software products were so large and complex that engineering methods became a necessity.

• 1990’s Software technology had advanced beyond the engineering methods in use and new formal processes were required to complete software projects.

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

14

Lesson #1 Introduction

Product Life Cycles

• The Product Life Cycle is the natural ordered sequence of activities

performed to develop and maintain a product.

• The Product life cycle begins with a customer recognizing a

business needs and progresses through development, fielding,

operation, and eventual retirement of the product.

Guidelines for Successful Acquisition and Management of Software Intensive Systems, 1996

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

15

Lesson #1 Introduction

Formulate

Need

Define

Concept

Demonstrate

& Validate

Requirements

Analysis

System

Architecture

Detailed

Design

Build

System

Migrate

System

Operated

System

Maintain

System

Phase 0 Phase I Phase II Phase III Phase IV

Decision

Point 1

Decision

Point 2

Decision

Point 3

Identify Needs

Gather User Requirements

Project Activation Funding Point

Validate Concept

Refine Requirements & Complete Project Documentation

Develop Funding Documentation

FUNDING POINT: Approval for System Development

Preliminary Design (high level)

Detailed Design

FUNDING POINT: Design Review and Approval to Build

Build or Acquire System

Installation and System Migration

CHECK POINT: Physical Audit

Installation and System Migration

CHECK POINT: Post Project Review

System Maintenance

CHECK POINT: Post Project Review

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

16

Lesson #1 Introduction

Class Project Overview

• The class project will help introduce you to the realities faced by software engineers

and developers in the commercial world.

• The project will help to demonstrate the differences between engineering and

development. It will high-light the challenges and obstacles faced by developers

when asked to perform engineering tasks.

• The project will also show the technical and schedule challenges faced by

engineering teams as the design a software application.

Guidelines for Successful Acquisition and Management of Software Intensive Systems, 1996

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

17

Lesson #1 Introduction

Class Project Content

• The project will involve the design and implementation of a simple application using

one of the MS-Office Suite applications. (Excel)

• Focus will be on Engineering activities (Requirements, Design, Architecture,

Quality, Configuration, and Documentation)

• We will build at least one Excel application to demonstrate the processes of software

engineering discussed in class.

Guidelines for Successful Acquisition and Management of Software Intensive Systems, 1996

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

18

Lesson #1 Introduction

Class Project

Create an activity tracking application in Excel

• Gather the Need for this from customer (instructor)

• You must define the requirements

• You must document the plan to complete the project

• You must document the design

• You must estimate how long it will take to do each task in the design

• You must have a project review with the class to discuss the plan and design

• Project must be designed in individual sheets that will be built by separate people.

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

19

Lesson #2

Project Organization

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

20

Lesson #2 Project Organization

Organizational

Issues

Engineering

Issues

People

Issues

GOAL

Through an integrated management process address the key

elements of a software systems engineering environment.

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

21

Lesson #2 Project Organization

Organizational

Issues

Engineering

Issues

People

Issues

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

22

Lesson #2 Project Organization

Engineering Issues

•Structured development Environment

•Standard engineering methods

•Formal processes and procedures

•Reusable engineering and development tools

•Common (tailored) core components.

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

23

Lesson #2 Project Organization

Organizational

Issues

Engineering

Issues

People

Issues

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

24

Lesson #2 Project Organization

Organizational Issues

• Management that sets Business Goals

• Process Based management methods

• Open Communications environment

• Provide the Right Tools at the Right Time

• Management Incentives that match business goals

• Ongoing Training that is up to date

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

25

Lesson #2 Project Organization

Organizational

Issues

Engineering

Issues

People

Issues

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

26

Lesson #2 Project Organization

People Issues

• Defined roles, responsibilities, and accountability.

• Open Communications with all levels

• Professional domain structure/ladder

• Individual improvement goals

• Recognition of disciplined and creative anticipation.

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

27

Lesson #2 Project Organization

ow do you turn

this…

Into this?

Organizational Process Management

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

28

Lesson #2 Project Organization

Organizational Process Management

Process based management methods allow for software

organizations to benefit from the efficiencies of management

control ……..

……while maintaining the advantages of the dynamic and

diversified expertise base that they have fought to establish.

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

29

Lesson #2 Project Organization

Organizational Process Management

Traditional software organizations are organized and

managed through the use of a hierarchical management

structure that operates much like a bureaucracy.

The emphasis usually being on how do I not upset the status

quo, rather then how do I get things done.

The result inter-group oriented initiatives are usually quashed

before they can prove themselves and highly skilled experts

are silenced by inexperienced bureaucrats.

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

30

Lesson #2 Project Organization

Requirements

Design

Acquisition

Testing

Quality

Assurance

Audit

Business

Support

Operations Users

Maintenance Production

Business

Goals

User

Needs Methods

Tools

Technology

Internal

Build

Vendors

Outsource

Admin Contracting

Legal

Seamless

Flow of

Information

Software System Engineering Environment

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

31

Lesson #2 Project Organization

S/W

Engineers

Quality

Engineers

S/W

Developers

Project

Control

Projec Manager

Group

Manager

S/W

Engineers

Quality

Engineers

S/W

Developers

Project

Control

Project Manager

Group

Manager

Director

VP

Software Development

Recruiters

Department

Manager

Human Resources

Manager

Accountants

Finance

Manager

Accountants

Purchasing

Manager

Director

Operations

VP

Operations

CIO

Traditional Organizational Structure

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

32

Lesson #2 Project Organization

S/W

Engineers

Quality

Engineers

S/W

Developers

Project

Control

Projec Manager

Group

Manager

S/W

Engineers

Quality

Engineers

S/W

Developers

Project

Control

Project Manager

Group

Manager

Director

VP

Software Development

Recruiters

Department

Manager

Human Resources

Manager

Accountants

Finance

Manager

Buyers

Purchasing

Manager

Director

Operations

VP

Operations

CIO

Traditional Communications Flow

Typical

Communications

Path

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

33

Lesson #2 Project Organization

Traditional Communications Flow

Safe? or Inefficient?

What facilitators for effective communication flow exists in

this organization?

What barriers to effective communication flow exists in

this organization?

Can Communication be effective in this organization?

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

34

Lesson #2 Project Organization

Quality

Manager

Process

Manager

S/W

Engineers

S/W

Developers

Projec Manager

Group

Manager

S/W

Engineers

S/W

Developers

Project Manager

Group

Manager

Director

VP

Software Development

Configuration

Manager

Project Control

Manager

Group

Manager

Director

Support Engineering

Recruiters

Department

Manager

Human Resources

Manager

Accountants

Finance

Manager

Buyers

Purchasing

Manager

Director

Operations

VP

Operations

CIO

Organizational Process Management

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

35

Lesson #2 Project Organization

Process Management Communications Flow

Anarchy? or Effective?

What facilitators for effective communication flow exists in

this organization?

What barriers to effective communication flow exists in

this organization?

Can Communication be effective in this organization?

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

36

Lesson #2 Project Organization

Integrated Product Teams

(IPTs)

Integrated product teams are project level teams that are

staffed by software development experts and by individuals

from other organizations within company with the authority

to complete the tasks assigned.

Integrated product teams have a manager that is directly

responsible to upper management for the performance of the

project and who is the single point of contact for the

customer for total product quality.

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

37

Lesson #2 Project Organization

Integrated Product Teams

(IPTs)

Customer

Organization

Integrated

Product

Team Customer

Representative

Project

Manager

Management

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

38

Lesson #2 Project Organization

To IPT or Not To IPT?

A Bunch of People trying to do

something!

Working harder and acting independently, struggling to

achieve a goal without process.

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

39

Lesson #2 Project Organization

To IPT or Not To IPT?

A Team with Focus!

Coordinated effort emphasizing individual

strengths. A process that provides new

ways of reaching a goal.

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

40

Lesson #2 Project Organization

Integrated Product Teams Succeed!

Successfully applies skills and

technology, resulting in more

effective solutions.

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

41

Lesson #2 Project Organization

Sample IPT Structure

Integrated

Product

Team

Contracting

Sourcing

Workspace Provisioning

Contract Management

Acquisition Support

Management

Budgeting

ROI Analysis

Cost Controlling

Human Resources

Architecture and Engineering

System Requirements

System Architecture and Design

Functional and Technical

Analysis

Implementation

Testing

Enterprise Systems

Infrastructure supportability

Installation

Operation

Maintenance

Process Engineering

Project Development Process

Coaching and Mentoring

Standards Development

Process Improvement

Quality Assurance

Auditing

Inspections

Defect Monitoring

Process Assessments

Technical Support

Program Control

Data Management

Configuration Management

Reliability and Maintainability

Customer Representatives

Business Requirements

User Interface Requirements

Customer Satisfaction

Assurance Migration

Support

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

42

Lesson #3 Project Management

Project Management

•What is Project Management?

• How is performed?

• Are there alternative?

• What works and what doesn’t?

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

43

Lesson #3 Project Management

What is Project Management?

Project Management is the execution of the total business

responsibility for an entire project.

A project is lead by a project manager who is the single

person within the organization who directs, controls,

administers and regulates all the activities of the project for

an organization.

A project manager is the individual who is ultimately

responsible to the customer and senior management and has

been given the authority to initiate required activities.

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

44

Lesson #3 Project Management

What is Project Management is NOT?

Project management is not just the collection of dates and

milestones and preparation of schedules.

Project management is not just the collection of financial

information about the project.

Project management is not just the collection of effort applied to a

project.

These activities are part of Project Control which is an activity

that projects must perform to understand their status.

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

45

Lesson #3 Project Management

How is Project Management Performed?

Project Management is performed by applying systematic

management and technical process to the problem of

producing a product that meets the customer’s

expectations of quality, on time and on cost.

Project management by committee is ineffective.

A single manager with the responsibility and authority to carry out the

project is required.

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

46

Lesson #3 Project Management

Are there alternative?

Yes!

A very costly project that produces a less then optimum

product or is a complete failure!

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

47

Lesson #3 Project Management

What works and what doesn’t?

•Obtain commitment from senior management and customer for

the project. In WRITING!!!

•Commit to quality. Everyone must be committed to pre-agreed

upon quality standards to make the project proceed smoothly.

•Follow a written and proven process defined for producing the

product desired. Evaluate performance against the process

regularly.

•Provide sufficient time to complete the project by following the

agreed to process and ensure everyone evolved is trained.

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

48

Lesson #3 Project Management

What works and what doesn’t?

•Communicate regularly project objectives and status to all

effected groups.

•Document and report progress, changes in requirements or

objectives, and delivery dates.

•Make decisions! Project Managers must make and announce key

decisions affecting the project. Do not leave important matters to

chance.

•Measure, measure, measure! Continually measure the status of all

important activities and use the results to make decisions.

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

49

Lesson #3 Project Management

What works and what doesn’t?

•Plan because scheduling is not enough. A detailed plan with rational for each activity is needed for success.

•Assign roles and responsibilities for each planned task and make people accountable for each task.

•Develop a process for resolving problem and follow it. Remember a problem is when an individual thinks it is a problem and it should be resolved not ignored.

•Plan to prevent defect before they occur by insuring the right processes, resources, trained individuals and management methods are use.

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

50

Lesson #3 Project Management

What works and what doesn’t?

•Manage Change, change is a natural part of any project, whether

it is customer need, technology advancement, or some for of new

regulatory requirements imposed.

•Manage the schedule wisely. Watch for bunching up of items at

the beginning in the middle and especially at the end of the

schedule when there is no recovery time left.

•Commitments can only be made for resource under the projects

control. A manager cannot commit another departments resources,

staff, or equipment. Once an agreement to use resource, staff, or

equipment has been made then there is a quasi-ownership of them.

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

51

Lesson #3 Project Management

Project Reviews

•Reviews provide a means of risk reduction to ensure the delivered

product will perform the business function it was intended for.

•Reviews provide a forum to provide direction and feedback to the

project team.

•Reviews allow for the project team to demonstrate to the

customer and management their understanding of the product

requirements.

•Reviews allow for the project team to question customer needs

and present alternative solutions.

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

52

Lesson #3 Project Management

Risk Management

Risk is the probability of an undesired event occurring and

the effect of that event occurring.

Risk Management is conducting the process required to

prevent an undesired event from occurring and planning

alternative actions to minimize negative impacts to the

project if the undesired event does occur.

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

53

Lesson #3 Project Management

Risk Management

Remember!

A risk is an undesired event that may happen but has not yet

happen.

Once an undesired event (risk) occurs it is no longer a risk it

is a PROBLEM!

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

54

Lesson #3 Project Management

Risk Management

Three ways to experience risks

1. The product does not meet specified performance levels.

2. Actual costs are higher than budgeted.

3. Delivery of the product is too late.

Any of these may occur singularly or in combination!

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

55

Lesson #3 Project Management

Risk Management Five risk areas!

1. Technical risks

2. Supportability risks

3. Programmatic risks

4. Cost risks

5. Schedule risks

Any of these relate to one or more risk areas!

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

56

Lesson #3 Project Management

Risk Management

What to do!

1. Identify – Search for and locate risks before they become problems.

2. Analyze – Process risk data into decision making information.

3. Plan – Translate risk information decisions and actions (both present

and future) and implement those actions.

4. Track – Monitor the risk indicators and actions to take against risks.

5. Control – Correct for deviations from planned risk actions.

6. Communicate – Provide the visibility and feedback data internal and

external to the project on activates and current and emerging risks.

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

57

Lesson #3 Project Management

Risk Management

Methods!

While Risk Management methods are only limited by your

ability to imagine them. There are four categories of action.

1. Avoid Risk

2. Control Risk

3. Assume Risk

4. Transfer Risk

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

58

Lesson #3 Project Management

Risk Management

Avoid Risk!

Avoid Risk by selecting an alternative choice with lower risks

associated.

You may decided to use an older more proven technology or

to adapt the product design to meet capabilities provided by

commercially available modules.

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

59

Lesson #3 Project Management

Risk Management

Control Risk!

Control Risk by monitoring and correcting risky situations.

Develop a risk control plan and follow it.

You would identify those possible events that are Risks and

define acceptable parameters and thresholds of when action

must be taken to prevent an undesired event. Use reviews,

inspections , milestones, and backup plans as management

methods to control risk.

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

60

Lesson #3 Project Management

Risk Management

Assume Risk!

Assume Risk by making a conscious decision to accept the

consequences of the undesired event should it happen.

Some risk is always present within any project. It is up to the

manager to determine what level of risk is acceptable based on

the severity of any undesired events that the project could

incur.

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

61

Lesson #3 Project Management

Risk Management

Transfer Risk!

Transfer Risk by creating agreements were the avoidance and

consequences of an undesired event will be shared by others.

When we buy a product that comes with a warranty we are

sharing Risk with the manufacture. The manufacture is

sharing the risk of lower quality with us in return for profits.

While we are sharing the risk of product failure while we use it

in return for lower costs.

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

62

Lesson #3 Project Management

Project Closure

Project Closure involves the systematic shut down of a project

after the product has been delivered or at an earlier time when

it has been determined that the delivery of the product is no

longer of value to the customer.

Project closure should be a management activity that captures

data about the why the project was managed, analysis the data

in the context of the project’s success and/or failures and

provides usable information in the for of lesson learned.

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

63

Lesson #4

Engineering Standards

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

64

Lesson #4 Engineering Standards

Engineering Standards

Standardization is a management function for the coordination of

individual decisions with the objective of optimizing diversity.1

Thus Engineering Standards as applied to Software Engineering is a

mechanism to ensure that a everyone working on or managing a software

activity are following a previously agreed upon set of activities that has

known, expected, and accepted outcome.

1 Robert B. Toth, Then Economics of Standardization, 1984

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

65

Lesson #4 Engineering Standards

Purpose of Engineering Standards

Most of us in the Information Technology industry usually

find ourselves speaking in technical terms. We find that most

of our managers are also speaking of technology when they

address software or hardware projects.

On the other hand executive management, our Directors,

Presidents, Vice-Presidents, CIOs, and CEOs are usually

talking about money. How much is that system is costing?

What is the Return on Investment (ROI) of your efforts.

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

66

Lesson #4 Engineering Standards

Standards Translate technical problems into terms

Management can understand!

Engineering standards serve as the conduit of translation from things to money. That

must take place for engineering teams and management teams to work together

effectively.

Requirements

Size

Complexity

Training

Technology

Cost

Effort

Time

Market

Profit

Risks

Software

Engineering

Standards

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

67

Lesson #4 Engineering Standards

Standards = The Bottom Line

Total Revenues

Total Investment Costs Return on Investment (ROI) =

Total Standardization Revenues

Total Standardization Investment Costs Standardization Gain =

Return on

Investment Profitability =

Standardization

Gain X

Standards can provide from a 10/1 to 20/1 ROI in Software Engineering

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

68

Lesson #4 Engineering Standards

Technical Staff

Management

Top

Management

Engineers speak

Top

Managers

Speak

Mid

Managers

Speak

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

69

Lesson #4 Engineering Standards

Setting Expectations

Engineering Standards are crucial in setting management and

customer expectations as to how and when a product will be

produced. Engineering standards can set the expectations for

and insure the realization of product quality.

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

70

Lesson #4 Engineering Standards

Common Expectations

• Lower costs and greater profits.

• Reduction in number of unique implementation styles.

• More reusable applications and modules.

• Higher quality, user acceptability, and adaptability.

• Lower maintenance and easier enhancement capability.

• Development time reduced and faster time to market.

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

71

Lesson #4 Engineering Standards

Justifying the need for standards.

How much is it costing us to use these standards?

Just start writing code!

It is not always easy to provide a direct economic analysis to

justify using standards because the standards effect processes

that often several levels of abstraction away from the

technical aspects of a project.

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

72

Lesson #4 Engineering Standards

Justifying the need for standards.

Sometimes the use of standards is based on reducing

potential costs rather the reducing actual costs.

•Product certification is based on process standards.

•Regulatory issues require process and product standards be utilized.

•Distributed design and implementation environments require process and

product standards.

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

73

Lesson #4 Engineering Standards

Can you go to far with Standardization?

An 19th century economist by the name of Vilfredo Pareto

identified a theorem know as the Pareto Principle. Which

identifies an upper limit of efficiency at about 80%.

Effort/Time Standardization

0.80%

0.20% 0.80%

0.20%

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

74

Lesson #4 Engineering Standards

Unified Modeling Language (UML)

•The Unified Modeling Language (UML) is a standard for specifying,

visualizing, constructing, and documenting a software system.

•UML also provides a standard method for business modeling and for

modeling other non-software system components.

• The UML represents a collection of standard engineering methods and

symbols for the modeling of large and complex systems.

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

75

Lesson #4 Engineering Standards

UML an open specification

•No industry standard modeling language.

•Prior modeling languages were similar with only minor difference in overall expressive power.

•Prior modeling languages shared a set of commonly accepted concepts and used different notations.

•Visual modeling was fragmented within the OO industry discouraging visual modeling methods by new OO users.

•Users demanded a standard for modeling language and modeling notation suitable for general-purpose usage.

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

76

Lesson #4 Engineering Standards

UML is based on best practices

•Languages such as OMT, Brooch, and OOSE, which were in use by

software architects formed the basis for UML.

•Experience users of these prior languages can use UML with little

training.

•Adoption of a new standard language by an organization may require

some initial investment in training and technology transition.

• The benefit of encapsulating modeling notations and methods into an

industry standard language will more than compensate for the time spent

learning it.

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

77

Lesson #4 Engineering Standards

Benefit of UML

• Improves project transition formerly concept phase to production and installation phases.

• UML is not a guarantee for project success but improves communication of project requirements and architecture.

• UML significantly lowers training and retooling cost when employees move on to new projects or organizations with in a company.

• Integration between tools, processes, and domains becomes not only possible but desirable and acceptable by all stakeholders.

• Creates a paradigm which encourages the focus on delivering business value to the customer by developers and management.

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

78

Lesson #4 Engineering Standards

UML is a new standard for a new e-world

• Vague specification have been a large problem in the design and and operation of concurrent, distributed systems that have extremely complex interactions and are hard to understand, never mind predict.

• Specifications for standalone systems only affected that single system, when id didn’t work the risk of world catastrophic failure was low.

• Distributed concurrent business systems may have to interoperate with other systems halfway around the world. Both systems having been developed by people who have never heard of each other. A failure to communicate accurately can introduce errors that propagate around the World in a matter of seconds.

• These systems, many of which are real-time systems must operate continually regardless of errors, software/hardware failures or data corruption. You cannot simply reboot a distributed system with backup snapshot of the system from a prior state or point in time.

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

79

Lesson #4 Engineering Standards

Standard Elements of UML

• Structural Diagrams

• Behavioral Diagrams

• Sequence Diagrams

• Collaboration Diagram

• State Notation

• Activity Diagrams

• Organizing Classes

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

80

Lesson #4 Engineering Standards

Standard Elements of UML

• Structural Diagrams

– These diagrams are help the engineer visualize, specify, construct, and

document those characteristics of the system that are generally

constant or static over time.

• Types of Structural Diagram can include:

– class diagrams

– package diagrams

– object diagrams

– component diagrams

– deployment diagrams

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

81

Lesson #4 Engineering Standards

Standard Elements of UML

• Behavioral Diagrams

– These diagrams are help the engineer visualize, specify, construct, and

document those characteristics of the system that are generally

changing, unstable, or dynamic over time.

• Types of Behavioral Diagrams can include:

– use case diagrams

– sequence diagrams

– collaboration diagrams

– state-chart diagrams

– activity diagrams

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

82

Lesson #4 Engineering Standards

Standard Elements of UML

• Collaboration Diagrams

– These diagrams are help the engineer model the organization of the

interactive objects for the model.

• Types of Collaboration Diagrams can include:

– State, Event, and Signal diagrams

– Entry and Exit Actions diagrams

– Activities diagrams

– Initial and Final States diagrams

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

83

Lesson #4 Engineering Standards

Standard Elements of UML

• Activity Diagrams

– These diagrams are help the engineer model the workflow or activity flow of the system and provide a visualization of detailed operations of the system.

• Types of Activity Diagrams can include:

– State diagrams

• activities

• actions

• transitions

• initial/final states

• guard conditions

– Flow diagrams

• branch and merge

• fork and join

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

84

Lesson #4 Engineering Standards

Standard Elements of UML

• Collaboration Diagrams

– These diagrams are help the engineer model the the relationship

between classes, use-cases, and operations of system.

• Types of Collaboration Diagram Elements can include:

– Analysis Class

– Boundary Class

– Control Class

– Entity Class

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

85

Lesson #5 Software Product Life Cycle

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

86

Lesson #5 Software Product Life Cycle

Overview

In these discussions we will explore the fundamentals of

planning and managing software system development,

operations, and maintenance through the use of the

Software Product Life Cycle.

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

87

Lesson #5 Software Product Life Cycle

Questions to Answer

• What is a Life Cycle?

• Why is it used?

• What are the significant components?

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

88

Lesson #5 Software Product Life Cycle

What is the Software Life Cycle?

• The software system life cycle is the natural ordered sequence of activities

performed, formally or informally, to develop and maintain a software

system.

• The life cycle begins with a customer recognizing a business needs and

progresses through development, fielding, operation, and eventual

retirement.

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

89

Lesson #5 Software Product Life Cycle

Formulate

Need

Define

Concept

Demonstrate

& Validate

Requirements

Analysis

System

Architecture

Detailed

Design

Build

System

Migrate

System

Operated

System

Maintain

System

Phase 0 Phase I Phase II Phase III Phase IV

Decision

Point 1

Decision

Point 2

Decision

Point 3

Identify Needs

Gather User Requirements

Project Activation Funding Point

Validate Concept

Refine Requirements & Complete Project Documentation

Develop Funding Documentation

FUNDING POINT: Approval for System Development

Preliminary Design (high level)

Detailed Design

FUNDING POINT: Design Review and Approval to Build

Build or Acquire System

Installation and System Migration

CHECK POINT: Physical Audit

Installation and System Migration

CHECK POINT: Post Project Review

System Maintenance

CHECK POINT: Post Project Review

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

90

Lesson #5 Software Product Life Cycle

Formulate

Need

Define

Concept

Demonstrate

& Validate

Requirements

Analysis

System

Architecture

Detailed

Design

Build

System

Migrate

System

Operated

System

Maintain

System

Phase 0 Phase I Phase II Phase III Phase IV

Decision

Point 1

Decision

Point 2

Decision

Point 3

Decision

Point 1

Requirements

Analysis and

Management

Software

Design

Software

Implementation

Acceptance

Test

Decision

Point 2

Decision

Point 3

Decision

Point 1

Requirements

Analysis and

Management

Software

Design

Software

Implementation

Acceptance

Test

Decision

Point 2

Decision

Point 3

Installation and

Checkout

Decision

Point 4

Operation and

MaintenanceRetirement

Decision

Point 4

Decision

Point 5

Software

Development

Cycle

Software

Maintenance

Cycle

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

91

Lesson #5 Software Product Life Cycle

Questions to Answer

• What is a Life Cycle?

• Why is it used?

• What are the significant components?

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

92

Lesson #5 Software Product Life Cycle

Why is a life cycle used?

• Product selection/elimination

• Product predictability

• Ability to sustain performance

• Resource and skill allocation

• Measurable management framework

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

93

Lesson #5 Software Product Life Cycle

Product Selection/Elimination

The primary purpose of the formalization of the Software

Product Life Cycle is to select those software products that

have the highest business value by eliminating the those of

least value as early as possible in the conception and

development phases.

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

94

Lesson #5 Software Product Life Cycle

• Business need

• Technical solution

• Process need

• Determine the actual business need.

“What problem are we trying to

solve?”

• Determine if the proposed

technology solutions are the right

ones for the business.

• The proposed system should match

the current business processes or

costs associated to change them

should be justified.

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

95

Lesson #5 Software Product Life Cycle

Process and Product Predictability

The Software Product Life Cycle helps management plan

business activities and project costs and revenues accurately.

This ability is critical to effective strategic planning and

market positioning, which leads to successful product release.

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

96

Lesson #5 Software Product Life Cycle

• Costs

• Delivery

• Quality

• Repeatability

• Product has to be on time every time,

with known production costs, and

with the quality the customer expects

built in.

• This ability has to be achievable form

contract to contract and delivery

order to delivery order.

• Indicators must be in place to let

senior management know

immediately of degradation in

abilities to perform.

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

97

Lesson #5 Software Product Life Cycle

Ability to Sustain Performance

The production of software products has many of the same

production issues associated with other products. The use of

a formal Software Product Life Cycle makes it possible to

plan for these issues and ensure solutions are available before

an issue becomes a problem.

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

98

Lesson #5 Software Product Life Cycle

• Authority

• Resources

• Training

• Accountability

• Process and sub process (work-flow) ownership can be assigned.

• Resources can be planned for and obtained in time to make the production of the product occur on time and at the budget costs.

• Software engineers and software programmers can be trained when necessary to perform the right functions at the right time.

• Roles and Responsibilities can be assigned and accountability for tasks maintained. Everyone knows what their job is and when each job is completed

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

99

Lesson #5 Software Product Life Cycle

Measurable Management Framework

The management of the effectiveness of Software Development activities

is critical to the business success of the development organization. A

single life cycle allows management to evaluate performance of various

techniques across time, technologies, projects, and customers to better

select successful business strategies.

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

100

Lesson #5 Software Product Life Cycle

• Measure

• Compare

• Evaluate

• Feedback

• Measure for the correct indicators that are linked to life cycle decision points.

• Compare data against previous sets from the same life cycle phases in other projects.

• Evaluate indicators to see desired effects of engineering and management standards are achieved.

• Project performance information can be compared across project in the organization to evaluate most profitable methods of management.

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

101

Lesson #5 Software Product Life Cycle

Questions to Answer

• What is a Life Cycle?

• Why is it used?

• What are the significant components?

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

102

Lesson #5 Software Product Life Cycle

Phase 0 - Concept Initiation

This phase is characterized by the extensive amount of informal planning and brainstorming

activity that takes place. The system of this phase is a statement of needs (user

requirements) and a funding request for concept validation/demonstration and system

requirements analysis.

• User recognizes a business need

• Potential solutions explored

– Business Process Changes

– Product Changes

– Technology Insertion

• Funding and resource projections made

• Project timing explored

• Business risks identified

• Funding for proof of concept allocated

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

103

Lesson #5 Software Product Life Cycle

Phase I - Proof of Concept Phase

This phase is characterized by the cooperative efforts of business and technical to experts

ensure that proposed solutions will actually meet the business needs before costly system

development activities begin.

• Integrated project team is organized

• Proposed solution validated

– Systems modeled

– Prototypes evaluated

– Technology alternatives demonstrated

• User needs documented and agreed upon

• Refined concept/solution documented

• Functional requirements prepared

• Funding allocated for design/development phase

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

104

Lesson #5 Software Product Life Cycle

Phase II - Design/Development Phase

During this phase user needs are translated into detailed technical requirements in the form

of system design and software design documents, from which the system can be built or

acquired.

• System requirements are set

• System architecture is defined

• Software requirements allocated

• System requirements specification developed

• Software requirement specifications developed

• Build or acquire decision made

• Funding for production of system allocated

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

105

Lesson #5 Software Product Life Cycle

Phase III - Build/Deploy Phase

During this phase the system is built/acquired and deployed into the production environment

ready to be turned over to the system operations.

• Internal build activities begin

• System acquisition contracts let

• Components and system level testing completed

• System integrated into the production environment

• System installation and integration testing completed

• Physical audits and acceptance testing accomplished

• User/operator training conducted

• System turned over to systems operations

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

106

Lesson #5 Software Product Life Cycle

Phase IV - Operations/Maintenance Phase

During this phase the system is operated and maintained in the production environment and

ongoing user support is provided.

• Production and maintenance planning

• Production environment testing

• System operations

• User support and help desk

• Problem and modification analysis

• Modification implementation

• Maintenance review/acceptance

• Migration

• Software/System retirement

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

107

Lesson #5 Software Product Life Cycle

Project Management Review should be held on a monthly basis.

Preliminary

Statement

of Need

Draft Project

Management

Plan

Draft

Statement

of Need

Draft Quality

Assurance Plan

Draft Configuration

Management Plan

Quality

Assurance Plan

Configuration

Management

Plan

Verification and

Validation Plan

(SVVP)

Project

Management

Plan

Funding

Document

Draft

Verification and

Validation Plan Draft System

Requirements

Specification

Draft Software

Requirements

Specification

Software

Requirements

Specification

Software

Requirements

Review (SRR)

Virtual

Review

System

Requirements

Specification

Funding

Point III

Funding

Point II

Development

Funding Point

Virtual

Review

Draft

Funding

Document

Funding

Point I

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

108

Lesson #5 Software Product Life Cycle

Formulate

Need

Define

Concept

Demonstrate

& Validate

Requirements

Analysis

System

Architecture

Detailed

Design

Build

System

Migrate

System

Operated

System

Maintain

System

Phase 0 Phase I Phase II Phase III Phase IV

Decision

Point 1

Decision

Point 2

Decision

Point 3

Preliminary Design

Verification

Requirements

Verification

User Need Defined

Validation

Detailed Design

Verification

Build

Test

Migrate

System Test

Operate and

Maintain Improve

Migrate

System Test

Preliminary Design

Verification

Preliminary Design

Verification

Requirements

Verification

Requirements

Verification

User Need Defined

Validation

User Need Defined

Validation

Detailed Design

Verification

Detailed Design

Verification

Build

Test

Build

Test

Migrate

System Test

Migrate

System Test

Operate and

Maintain Improve

Operate and

Maintain Improve

Migrate

System Test

Migrate

System Test

Water Fall

Spiral

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

109

Lesson #5 Software Product Life Cycle

Formulate

Need

Define

Concept

Demonstrate

& Validate

Requirements

Analysis

System

Architecture

Detailed

Design

Build

System

Migrate

System

Operated

System

Maintain

System

Phase 0 Phase I Phase II Phase III Phase IV

Decision

Point 1

Decision

Point 2

Decision

Point 3

The Rational

Unified Process®

or RUP®

Business Modeling

Requirements

Analysis & Design

Implementation

Test

Deployment

Configuration and

Change Management

Project Management

Environment

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

110

Lesson #5 Software Product Life Cycle

Better

Cheaper

Faster

Software Products that are:

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

111

Lesson #6 Supporting Disciplines

Quality Assurance

Supporting displaces are those engineering functions that are

required to complete a software project but are not directly

responsible for the design and implementation. Without these

engineering activities software projects would become

unmanageable.

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

112

Lesson #6 Supporting Disciplines

Quality Assurance

Quality Assurance is an engineering discipline focused on the

identification and prevention of defects before they enter a

product.

Often Quality Assurance (defect prevention) is confused with

Quality Control (testing) an activity of Software Engineering.

This can led to confusion within engineering groups and to

higher defect and rework cost due to defects not be eliminated

until after a product is implemented.

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

113

Lesson #6 Supporting Disciplines

Quality Assurance Process Assurance

Quality Assurance is “. . . the set of systematic activities providing the evidence of the ability of the software process to produce a software product that is fit for use.”1

Quality Assurance is the eyes and ears of management, providing unbiased feedback on process compliance, early enough that process lapses can be addressed in time to have positive results. Quality Assurance provides management with an early warning indicator of risks to the product quality (usability, function, and suitability) and can identify process changes that will result in a quality product being delivered. 2 1. G. Gordon Schulmeyer, et al, The Handbook of Software Quality Assurance 2. Watts S. Humphrey, Managing the Software Process (The SEI Series in Software Engineering)

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

114

Lesson #6 Supporting Disciplines

Quality Assurance Process Assurance

It is essential that the Quality Assurance personnel have a reporting path which is independent of the management responsible for the activities audited and the associated daily conflicts generated by schedule and budget. Independent oversight, through various methods, encourages adherence to the standard software process that have been proven. It also allows for introduction of improvement opportunities to the software processes. Locating an appropriate level of management where Quality Assurance will have frequent access, active support, and be above the conflicts of interest is essential to the success of a software product organization. 1

1. Watts S. Humphrey, Managing the Software Process (The SEI Series in Software Engineering)

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

115

Lesson #6 Supporting Disciplines

Software Quality Assurance

Quality Assurance should be an

integrated part of any software

development effort. Quality

Assurance (QA) teams should be

under management independent of the

project manager but have full access

to all project activities and artifacts.

The QA team is to monitor and verify

that standards, methods, and processes

are properly followed by the project

team and deviations are documented

for future consideration and review.

Software Quality Assurance in an Organization.

Software

Quality

Assurance

Software

Process

Management

Software Project

Management

Enterprize

Systems

Business

Organizations

Senior

Management

(CIO)

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

116

Lesson #6 Supporting Disciplines

Why does this model produce problems rather then quality?

Software

Quality

Assurance

Module

Leader

Module

Leader

Project 1

Manager

Project 2

Manager

Software Project

Management

Main Frame Network

Systems

Enterprize

Systems

Software

Process

Management

Human

Resources

Finance

Business

Organizations

Senior

Management

(CIO)

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

117

Lesson #6 Supporting Disciplines

Quality Assurance

Process Assurance

The methods typically used to accomplish process assurance

include:

• Quality Audits

•Error Detection

•Quality Assessment

•Statistical Process Control Analysis.

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

118

Lesson #6 Supporting Disciplines

Quality Assurance

Quality Audits

SQA Audits are performed to “determine the adherence to established

standards and procedures.”1 Evaluation of the sufficiency or effectiveness

of the procedures or standards is part of an SQA audit.

An SQA audit examines artifacts and records, according to an agreed

sampling process to determine if procedures are being followed correctly.

Audit are regularly performed by external auditors who are not part of the

software project.

1 NASA Goddard Space Flight Center, “Software Quality Assurance Audits Guidebook”

(http://satc.gsfc.nasa.gov/audit/audgb.txt)

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

119

Lesson #6 Supporting Disciplines

Quality Assurance Error Detection

Formal Inspection is an examination of a product during the development process, typically inspections provide the most benefit when they are done early in the concept and design phases. The objective is to identify defects in the product before it has completed development. Inspections are usually most effective when conducted by Quality Assurance Personnel with technical training and hands on experience with the technology being used. Inspections may use many of the techniques of testing to identify errors and potential design or implementation flaws. Certain projects which have an effectively performing inspection process report better than 80% defect detection rates.1

1 Tom Gilb and Dorothy Graham, Software Inspection (Wokingham, England: Addison-Wesley Publishing), 1993

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

120

Lesson #6 Supporting Disciplines

Quality Assurance Error Detection

Peer Reviews are formal meeting at which an artifact, or a set of artifacts are presented to the user, customer, or other interested parties for comments and approval.1

Peer Reviews when implemented provide opportunities for people to discover errors in products before release, learn alternative techniques for design and implementation from other groups. Peer Reviews also provide a way to standardize architectural styles and methods among various groups within an organization. In serve as a vehicle for the continuing improvement of these capabilities. In addition more junior members of the project teams can be mentored by senior members present. The formal structure of a peer review requires the following participant roles: the moderator ; the recorder ; the presenter ; and the reviewers.

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

121

Lesson #6 Supporting Disciplines

Quality Assurance

Error Detection

Walkthroughs are informal peer review meetings in which the primary

developer or author of the software product acts as presenter to proceed

through the material step by step.

The objective is to raise or identify design issues or implementation issues

and to offer recommendations for solutions and improvement.

Unlike inspections and formal peer revise walkthroughs are intended to be

informal and operate more like a brainstorming and review session combined.

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

122

Lesson #6 Supporting Disciplines

Quality Assurance

Error Detection Testing is a very formal evaluation technique, which has as its objective the detection

of errors in a completed product, module, or unit. Thus data collected during testing

can be used to help prevent errors in future development but cannot prevent errors in

the current item under testing, it can only find errors because the item is already

complete. The item will have to be reworked to fix any errors.

Testing by definition is the execution of the software and the evaluation of its

resulting actions in response to a set of predetermined inputs against documented

expected outputs.

Testing is often confused as Quality Assurance but in general testing is a Quality

Control function within the Software Product Engineering Process and should

not be considered a Quality Assurance function. When testing like techniques are

applied by Quality Assurance it is considered an Inspection.

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

123

Lesson #6 Supporting Disciplines

Quality Assurance Assessments

Assessment is a Quality Assurance activity that is used to determine and understand the capability of a process and an organization’s ability to implement the process, by evaluating it against a known industrial standard. Assessments use a combination of techniques from inspections, audits, reviews, and statistical process controls measure an organizations ability to satisfactorily perform software processes. Assessments provide management with insight into the ability of the software teams to implement and sustain various levels of quality within their software engineering processes, thus resulting in software products of a know quality. There are several industry recognized methods for conducting assessments within software organization including: ISO 9001, 9000-3 ; SPICE ; and SEI-CMM.

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

124

Lesson #6 Supporting Disciplines

Quality Assurance Analysis

Root Cause Analysis identifies the process weaknesses that allowed product defects to be inserted originally, to prevent reoccurrence of the these types of defects in the future.

To accomplish Root Cause Analysis a team of individuals, which may include developers and other analysts, analysis failure and trend reports to determine where and why defects are inserted into the product. If the cause is systemic and repeatable, a remedy to decrease the risk of reoccurrence of similar defects, within similar products under similar circumstances must be identified and implemented.

Results of Root Cause Analyses performed by Quality Assurance, provides valuable inputs for process improvement planning and must be passed on to the process management and improvement team.

These activities may be performed at various stages of the software life cycle, but it is recommended that the elapsed time between defect discovery and this type of analysis be minimized.

1

1 Tom Gilb and Dorothy Graham, Software Inspection (Wokingham, England: Addison-Wesley Publishing, 1993)

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

125

Lesson #6 Supporting Disciplines

Quality Assurance Analysis – Cause and Effect Chart

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

126

Lesson #6 Supporting Disciplines

Quality Assurance Historical Example

1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998

Structuredflows

Formal softwareinspections

Formal inspectionmoderators

Formalizedconfiguration control

Inspection improvements

Configuration ManagementData Base (CMDB)

Error Counting, Metrics

Formal Process

Error Cause Analysis

Process Analysis

Quality Management and Process Enhancement

Oversight analysis

Build automation

IBM process assessment

Formalizedrequirements analysis

Quarterly qualityreviews

Prototyping

Inspectionimprovements

Formalrequirementsinspections

Processapplied tosupportsoftware

FSW (recon)certification

LAN based developmentenvironment

Enhanced test tools

Oracle based CMDB upgrade

ISO 9001 certification

Project manager process reviews

Process improvement database

Concurrent engineeringprocess model

Formalized milestonerisk assessments

Support softwareinspection processautomation

Re-engineeringlessons learned

Web-basedtroubleshootingguide

On-lineprogrammingstandards

SEI SPCcollabora-tion

Reliability modeling

Process maturity measurements

Formalized training

Technical exchange seminars

Process evaluation

Software developmentenvironment

Process documentassessment

Reliability/complexityresearch

Developmenttest philosophy

Inspectionprocesstools

Groups_graphics_pubs_PASS_FSW_001.cv5

Structurededucationplanning

Formalizedlessonslearned

Quality Assurance Induced Process Improvement History from Space Shuttle Program

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

127

Lesson #6 Supporting Disciplines

Quality Assurance Analysis

Reliability Prediction is: “The ability of the software to perform its required function under stated conditions for a stated period of time.”1

Management can use accurate prediction of software system reliability to better plan quality assurance and quality control activities and to determine a system’s readiness for release to the customer. In determining an estimate for reliability we use the 3 basic measurements: actual failure data records ; results of a random sample of inputs ; and number of actual and induced faults detected during testing. The negatives to reliability prediction are the need for a large data base of error information for similar systems and the advancement of technologies that introduces new system types and technologies faster then sufficient error data can be collected and analyzed. 1 IEEE Standard Glossary of Software Engineering Terminology, IEEE-STD-610.12-1990 (New York: IEEE, 1991).

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

128

Lesson #6 Supporting Disciplines

Quality Assurance Analysis

Statistical Process Control is the use of statistical methods to assure both process and product quality. These methods include: Pareto analysis a method that seeks to discover from an analysis of defect reports those critical few causes that are responsible for most of the reported problems. 80% of reported problems can usually be traced to 20% of the known causes. By rectifying the vital 20%, you have the greatest impact on quality. Shewhart control charts are used to determine and display statistical control limits for samples taken at predetermined intervals of time. Scatter Diagrams reveal relationships or association between two or more variables. The relationship among the variables is manifest themselves any non-random structure in the plot.

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

129

Lesson #6 Supporting Disciplines

Quality Assurance

Analysis – Pareto Chart

Purpose Of A Pareto Chart

A pareto chart is used to graphically summarize and display the

relative importance of the differences between groups of data.

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

130

Lesson #6 Supporting Disciplines

Quality Assurance

Analysis – Shewhart Chart

Shewhart X-chart with control and warning limits

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

131

Lesson #6 Supporting Disciplines

Quality Assurance

Analysis – Shewhart Chart

Shifting patterns: Shifts may result from introduction of

new programs and engineers, process changes, new

technologies and or software changes. They also could be

from a change in SQA methods, standards, or from a process

improvement.

Trending patterns: Trends are usually due to a gradual patching, data

degradation or, requirements instability, lack of process control. They

also could be from a change in SQA methods, standards, or from a

process improvement.

Corsica - USA

04-05/2002 IndoTech Solutions, Inc., LLC, 711 S. Carson, Suite 4, Carson City, NV 89701, USA

Tel 775-881-3436 [email protected]

132

Lesson #6 Supporting Disciplines

Quality Assurance

Analysis – Scatter Charts

Scatter Plot:

Variation of Y

Does Not

Depend on X

(homoscedastic)

Scatter Plot:

No Relationship

Scatter Plot:

Strong Linear

(positive

correlation)

Relationship

Scatter Plot:

Quadratic

Relationship