CS223: Software Engineering Lecture 3: Software Develoment Processes.

18
CS223: Software Engineering Lecture 3: Software Develoment Processes

description

Objective After the end of the class students should be able to o State professional responsibilities of a software engineer o Explain the need of software processes o Describe ETVX model o Differentiate between different properties of software processes

Transcript of CS223: Software Engineering Lecture 3: Software Develoment Processes.

Page 1: CS223: Software Engineering Lecture 3: Software Develoment Processes.

CS223: Software EngineeringLecture 3: Software Develoment

Processes

Page 2: CS223: Software Engineering Lecture 3: Software Develoment Processes.

Recap

• Software engineering as a bridge between customer and developer

• Different misconceptions about software developments

• Legacy software

• Software developments phases

Page 3: CS223: Software Engineering Lecture 3: Software Develoment Processes.

Objective

• After the end of the class students should be able to

o State professional responsibilities of a software engineer

o Explain the need of software processes

o Describe ETVX model

o Differentiate between different properties of software

processes

Page 4: CS223: Software Engineering Lecture 3: Software Develoment Processes.
Page 5: CS223: Software Engineering Lecture 3: Software Develoment Processes.

How a Project Starts?

• Every software project is precipitated by some business need to

o Correct a defect in an existing application

o Adapt a legacy system to a changing business environment

o Extend the functions and features of an existing application

o Create a new product or system

Page 6: CS223: Software Engineering Lecture 3: Software Develoment Processes.

Professional responsibility

• Confidentiality

o Engineers should normally respect the confidentiality of their

employers

o Clients irrespective of whether or not a formal confidentiality

agreement has been signed.

• Competence

o Engineers should not misrepresent their level of competence.

o They should not knowingly accept work which is outwit their

competence.

Page 7: CS223: Software Engineering Lecture 3: Software Develoment Processes.

Professional responsibility

• Intellectual property rights o Engineers should be aware of local laws governing the use of

intellectual property such as patents, copyright, etc. o They should be careful to ensure that the intellectual property

of employers and clients is protected.

• Computer misuse o Software engineers should not use their technical skills to

misuse other people’s computers.

o Computer misuse ranges from relatively trivial (game playing on an employer’s machine, say) to extremely serious (dissemination of viruses).

Page 8: CS223: Software Engineering Lecture 3: Software Develoment Processes.

Software engineering methods• Structured approaches to software development

• Model descriptionso Descriptions of graphical models which should be produced

• Ruleso Constraints applied to system models

• Recommendationso Advice on good design practice

• Process guidanceo What activities to follow

Page 9: CS223: Software Engineering Lecture 3: Software Develoment Processes.

CASE (Computer-Aided Software Engineering)• Software systems which are intended to provide automated

support for software process activities.

• CASE systems are often used for method support

• Upper-CASEo Tools to support the early process activities of requirements

and design

• Lower-CASEo Tools to support later activities such as programming,

debugging and testing

Page 10: CS223: Software Engineering Lecture 3: Software Develoment Processes.

Software Process

• Process is distinct from producto products are outcomes of executing a process on a project

• Software Engineering. focuses on process

• Premiseo Proper processes will help achieve project objectives of high

QP

Page 11: CS223: Software Engineering Lecture 3: Software Develoment Processes.

Why we need a process?

• Common understanding of different factors

o Activities,

o Resources and

o Constraints involved in software development.

• Creating processes helps

o Find inconsistencies,

o Redundancies; and

o Omissions

Page 12: CS223: Software Engineering Lecture 3: Software Develoment Processes.

What is a software process?• A set of ordered tasks to produce indented output of some kind

o Involving activates,

o Constraints; and

o Resources

• The process of building a software product

o Life cycle

Describes the life of the software from conception through implementation, delivery, use and maintenance.

Page 13: CS223: Software Engineering Lecture 3: Software Develoment Processes.

Component Software Processes

• Two major processes o Development

focuses on development and quality steps needed to engineer the software

o Project management focuses on planning and controlling the development process

• Development process is the heart of software process; other processes revolve around it

• These are executed by different peopleo Developers execute engineering processo Project manager executes the management processes

Page 14: CS223: Software Engineering Lecture 3: Software Develoment Processes.

Component Processes…

• Other processes

o Configuration management process

manages the evolution of artifacts

o Change management process

how changes are incorporated

o Process management process

management of processes themselves

o Inspection process

How inspections are conducted on artifacts

Page 15: CS223: Software Engineering Lecture 3: Software Develoment Processes.

Process Specification

• Process is generally a set of phases

• Each phase performs a well defined task and produces an output

• Intermediate outputs – work products

• At top level, typically few phases in a process

• How to perform a particular phase

o Methodologies have been proposed

Page 16: CS223: Software Engineering Lecture 3: Software Develoment Processes.

ETVX Specification

• ETVX approach to specify a step

o Entry criteria: conditions to be satisfied for initiating this phase

o Task: what is to be done in this phase

o Verification: the checks done on the outputs of this phase

o eXit criteria: when can this phase be considered done

successfully

• A phase also produces info for management

Page 17: CS223: Software Engineering Lecture 3: Software Develoment Processes.

ETVX approach

A B

C D

Page 18: CS223: Software Engineering Lecture 3: Software Develoment Processes.

Thank youNext Lecture: Process Models