developed by reneta barneva, suny fredonia the process

25
Developed by Reneta Barneva, SUNY Fredonia The Process

Upload: egbert-briggs

Post on 13-Dec-2015

220 views

Category:

Documents


3 download

TRANSCRIPT

Developed by Reneta Barneva, SUNY Fredonia

The Process

Developed by Reneta Barneva, SUNY Fredonia

Software Process

Software process is a framework for the tasks that we are required to build high-quality software.

The process is not exactly the same as software engineering: software process defines the approach that is taken as software is engineered. But software engineering also includes technologies - technical methods and automated methods.

Developed by Reneta Barneva, SUNY Fredonia

Software Engineering

(1) The application of systematic, disciplined approach to the development, operation and maintenance of software;

that is the application of engineering to software.

(2) The study of approaches as in (1)

Developed by Reneta Barneva, SUNY Fredonia

Process, Methods, and Tools

Software Engineering is a leyered technology:

Developed by Reneta Barneva, SUNY Fredonia

Process, Methods, and Tools

Quality focus: any engineering rests on a commitment to quality: continuous process of improvement -> more mature approaches to software engineering.

Developed by Reneta Barneva, SUNY Fredonia

Process, Methods, and Tools

Process: the foundation of SE. Defines the framework for a set of key process areas that must be establish for effective delivery of SE technology.

Key process areas include:

technical methods

work products (model, documents, data, reports, forms, etc.)

milestones

changes to be done.

Developed by Reneta Barneva, SUNY Fredonia

Process, Methods, and Tools

Methods: provide technical how-to’s.

Include a broad array of tasks:

requirements analysis

design

program construction

testing

support

Developed by Reneta Barneva, SUNY Fredonia

Process, Methods, and Tools

Tools: provide automated or semi-automated support for the process and the methods.

When the tools are integrated, the system for support is called CASE.

Developed by Reneta Barneva, SUNY Fredonia

Generic View of Software Engineering

For each engineering process the following questions have to be answered:

What is the problem to be solved?

What characteristics of the entity are used to solve the problem?

How will the entity be realized?

How will the entity be constructed?

How to find the errors?

How will the entity be supported long time?

Developed by Reneta Barneva, SUNY Fredonia

Generic View of Software Engineering

Phases of software engineering:

Definition phase: What?

What definition to be processed?

What function is desired

What system behavior is expected?

What interfaces are to be established?

What design constraints exist?

What validation criteria to apply?

Developed by Reneta Barneva, SUNY Fredonia

Generic View of Software Engineering

Development phase: How?

How data are to be structured?

How function is to be implemented?

How interface to be generated?

How the design to be translated into programming code?

Three specific technical tasks:

software design

code generation

software testing

Developed by Reneta Barneva, SUNY Fredonia

Generic View of Software Engineering

Support phase: Focused on change

Types of change:

correction - correcting the error detected

adaptation - modifications due to change of the environment (OS, CPU, etc.)

enhancement - user requires additional functions to be included

prevention - software “wears out” due to changes; to prevent this “wear out”

Developed by Reneta Barneva, SUNY Fredonia

Generic View of Software Engineering

Support phase: Focused on change

In addition to this support the user requires continuous support:

in-house technical assistants

telephone help desk

application-specific web site

Developed by Reneta Barneva, SUNY Fredonia

The Software Process

Software process: A common process framework is established by defining a small number of framework activities that are applicable to all software projects

A number of task sets enable the framework to be adapted to the characteristics of the software project.

Umbrella activities such as

quality assurance,

software configuration management, and

measurement

overlay the framework activity and appear throughout the process.

Developed by Reneta Barneva, SUNY Fredonia

Developed by Reneta Barneva, SUNY Fredonia

Measurement of Project Maturity

In 5 levels. Each level includes the previous ones.

Level 1: Initial. The software process is characterized as ad hoc.

Level 2: Repeatable. based on previous work on similar projects

Level 3: Defined. The software process is documented, standardized, and distributed to the whole organization.

Level 4. Managed. Detailed measures of software process and product quality are collected.

Level. 5. Optimizing. Continuous process improvement is enabled.

Developed by Reneta Barneva, SUNY Fredonia

Software Process Models: Waterfall Model

Communication Planning

ModelingConstruction

Deployment analysis design code

test

project initiation requirement gathering estimating

scheduling tracking

delivery support feedback

Prescriptive model.Also called “Life Cycle Model.”Or Linear Model

Developed by Reneta Barneva, SUNY Fredonia

Software Process Models: Waterfall Model

This is the classical model.

However:

•real projects rarely follow the sequential flow

•it is usually difficult to state all the requirements explicitly

•the customer must be patient, because the working version of the project will be ready almost at the end of the project time-span.

Developed by Reneta Barneva, SUNY Fredonia

V-Model

• Also prescriptive model.

• Requirements are refined progressively.

Developed by Reneta Barneva, SUNY Fredonia

Software Process Models: Incremental Model

C o m m u n i c a t i o n

P l a n n i n g

M o d e l i n g

C o n s t r u c t i o n

D e p l o y m e n t

d e l i v e ry f e e d b a c k

analys is

des ign code

t es t

increment # 1

increment # 2

delivery of 1st increment

delivery of 2nd increment

delivery of nth increment

increment # n

project calendar time

C o m m u n i c a t i o nP l a n n i n g

M o d e l i n g

C o n s t r u c t i o n

De p l o y m e n t

d e l i v e r y

f e e d b a c k

analys is

des ign code

t es t

C o m m u n i c a t i o nP l a n n i n g

M o d e l i n g

C o n s t r u c t i o n

D e p l o y m e n t

d e l i v e r y

f e e d b a c k

analys is

des igncode t es t

Developed by Reneta Barneva, SUNY Fredonia

Software Process Models: Prototyping Model (Evolutionary)

Communication

Quick plan

Construction of prototype

Modeling Quick design

Delivery & Feedback

Deployment

communication

Quickplan

ModelingQuick design

Constructionof prototype

Deploymentdelivery &feedback

Developed by Reneta Barneva, SUNY Fredonia

Software Process Models: Spiral Model (Evolutionary)

communication

planning

modeling

constructiondeployment delivery feedback

start

analysis design

code test

estimation scheduling risk analysis

Developed by Reneta Barneva, SUNY Fredonia

Software Process Models: Evolutionary Models

Customer communication: tasks required to establish effective communication between developer and customer.

Planning: tasks required to define resources, timelines, and other project-related information.

Risk analysis: task required to asses both technical and management risks

Engineering: tasks required to build one or more representations of the application.

Construction and release: tasks required to construct, test install, and provide user support.

Developed by Reneta Barneva, SUNY Fredonia

Software Process Models: Concurrent Model

Under review

Baselined

Done

Under

revision

Awaiting

changes

Under

development

none

Modeling activity

represents the stateof a software engineeringactivity or task

Developed by Reneta Barneva, SUNY Fredonia

Software Process Models