software engineering

13
SOFTWARE ENGINEERING Unit I

Upload: amit-udhwani

Post on 07-Aug-2015

46 views

Category:

Engineering


0 download

TRANSCRIPT

Page 1: Software engineering

SOFTWARE ENGINEERING

Unit I

Page 2: Software engineering

WHAT IS SOFTWARE ENGINEERING?

Software has become critical to advancement in almost all areas of human endeavour.

The art of programming only is no longer sufficient to construct large programs.

There’re serious problems in the cost, timeliness, maintenance, and quality of many software products.

Software engineering has the objective of solving these problems by producing good quality, maintainable software, on time, Within budget

Page 3: Software engineering

DEFINITION

In 1968, Fritz Bauer defined s/w engineering as:

“The establishment & use of sound engineering principles in order to obtain economically developed software that is reliable & works efficiently on real machines.”

Stephen Schach define the same as:

“A discipline whose aim is the production of quality software, that is delivered on time, within budget, and also satisfies its requirements.”

Page 4: Software engineering

DEFINITION The IEEE definition:

Software Engineering is:

The application of a systematic, disciplined,

quantifiable 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).

Page 5: Software engineering

PROGRAM VS. SOFTWARE

Programs

Operating ProceduresDocumentatio

n

Software= Programs + Documentation + Operating Procedures

Page 6: Software engineering

PROGRAM VS. SOFTWARE

Software is more than just programs. It consists of

Programs, Documentation of any fact of the program, and Operating procedures used to set up & operate

the Software system. Program is a combination of source code &

object code. Documentation consists of different types

of manuals as shown below:

Page 7: Software engineering

Documentation Manuals

Analysis/ Specification

Design

Implementation

Testing

Context Diagram

Data Flow Diagram

Formal Specification

Flow Charts

ER Diagram

Source Code Listings

Cross- Reference Listings

Test Data

Test Results

List of Documentation Manuals

Page 8: Software engineering

PROGRAM VS. SOFTWARE Operating procedures consist of instructions to set

up & use the software system & instructions on how to react to system failure.

List of operating procedures is:

Documentation Manuals

User ManualsBeginner’s Guide

Tutorial

Reference Guide

System Overview

Operational Manuals

Installation Guide

System Administration

Guide

Page 9: Software engineering

LAYERED TECHNOLOGY

A “Quality” Focus

Process Model

Methods

Tools

Page 10: Software engineering

LAYERED TECHNOLOGY Software engineering is a layered technology. An engineering approach must have a focus on

quality which provides a continuous process improvement culture.

Process layer is the foundation that defines a framework with activities for effective delivery of software engineering technology.

Method provides technical how-to’s for building software. It encompasses many tasks including

communication, requirement analysis, design modeling, program construction, testing and support.

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

Page 11: Software engineering

SOFTWARE PROCESS

A process is a collection of activities, actions and tasks that are performed when someproduct is to be created.

It is not a rigid prescription for how to build computer software.

Rather, it is an adaptable approach that enables the people doing the work to pick and choose the appropriate set of work actions and tasks.

Purpose of process is to deliver software in a timely manner and with sufficient quality to satisfy those who have sponsored its creation and those who will use it.

Page 12: Software engineering

FIVE ACTIVITIES OF AGENERIC PROCESS FRAMEWORK

A General Process framework consists of five major activities.

These activities can be used for all software development regardless of the application domain, size of the project, complexity of the efforts etc.

For many software projects, these framework activities are applied iteratively as a project progresses.

Each iteration produces a software increment that provides a subset of overall software features and functionality.

Page 13: Software engineering

FIVE ACTIVITIES OF AGENERIC PROCESS FRAMEWORK

Communication: communicate with customer to understand objectives and gather requirements

Planning: creates a “map” defines the work by describing the tasks, risks and resources, work products and work schedule.

Modeling: Create a “sketch”, what it looks like architecturally, how the constituent parts fit together and other characteristics.

Construction: code generation and the testing.

Deployment: Delivered to the customer who evaluates the products and provides feedback based on the evaluation.