1 of 28

Introduction to�Software Engineering

Prof. Indraneel Mukhopadhyay, PhD

2 of 28

What is Software Engineering ?

  • Product
  • Vehicle

Software

Engineering

3 of 28

Salient Points

?

?

?

V

Software is Developed or Engineered not Manufactured

Point 1

V

Software does not wear out

Point 2

V

Software is custom built

Point 3

4 of 28

Types of Software

System Software

Application Software

Embedded Software

Product based Software

AI / Scientific Software

5 of 28

Software Processes

6 of 28

Topics to cover.

Process Iterations

The Unified Process

Software Process Model

Process Activities

1

2

3

4

7 of 28

The Software Process

Structured Set of activities required to develop a Software System

Specification

Design

Validation

Evolution

8 of 28

General Phases in Process Models

Set of activities. What you do.

Set of deliverables. What you produce.

Quality control measures. You evaluate

9 of 28

Generic Software Process Models

  • The Waterfall (SDLC) Model

    • Separate and distinct phases of specification and development.

  • Evolutionary Process Model

    • Specification, development and validation are interleaved.

  • Incremental Process Model

    • The system is assembled from initial functional increments.

10 of 28

Introduction to�Software Engineering

Prof. Indraneel Mukhopadhyay, PhD

11 of 28

Generic Software Process Models

  • The Waterfall (SDLC) Model

    • Separate and distinct phases of specification and development.

  • Evolutionary Process Model

    • Specification, development and validation are interleaved.

  • Incremental Process Model

    • The system is assembled from initial functional increments.

12 of 28

Waterfall Process Model

Requirement Analysis

Design

Implementation

Testing

Maintenance

  • Simple Projects
  • Limited amount of time
  • Requirements understood

13 of 28

Pros and Cons

  • Easy
  • Structured
  • Provide a template into which methods for analysis, design, code, testing and maintenance can be placed.

PROS

  • Sequential, does not reflect reality
  • Does not allow for feedback
  • Does not produce a prototype
  • User must wait until the end to see the final program.

CONS

14 of 28

Evolutionary Process Models

  • Core requirements are well understood but additional requirements are evolving and changing fast

  • Time-to-Market

  • Iterative – software gets more complex with each iteration
    • Prototype
    • Spiral
    • Concurrent

15 of 28

Advantage of Evolutionary Models

Advantages

    • Do not require full knowledge of the requirements
    • Iterative
    • Divide project into builds
    • Allows feedback, show user something sooner
    • Develop more complex systems

16 of 28

Prototyping Model

Quick Plan

Modeling, Quick Design

Construction of Prototype

Deployment, Delivery & Feedback

Communication & Analysis of Feedback

Focus is on what will be seen by User. This helps to refine Users Requirements.

17 of 28

Pros and Cons

  • Prototype is served as the machinery for identifying requirements.
  • Is developed very quick.

PROS

  • Customer might think that the prototype is the final product and forget lack of quality i.e. PERFORMANCERELIABILITY

CONS

18 of 28

Spiral Model

Planning & Scheduling

Risk Analysis

Modeling Analysis & Design

Construction i.e. code & test

Deployment

i.e. delivery & feedback

Customer

Communication

Used for Large projects

Software Complexity increases with each release.

19 of 28

Component Based Development

  • Component-based Development (CBD) model incorporates many of the iterative characteristics of the spiral model.

  • The main difference is that in CBD the emphasis is on composing solutions from prepackaged software components or classes.

20 of 28

Incremental Model

  1. 1st build is usually the CORE product.
  2. Each increment “deliverable” may add a new functionality.
  3. This is repeated until the product is complete.
  4. When the software can be broken into increments and each increment represent a solution

21 of 28

RAD Model

  1. Incremental Model with 60-90 Day development time.
  2. High Speed Waterfall Model.
  3. The system has to be Modularize.
  4. Need a strong & skillful team.

22 of 28

Introduction to�Software Engineering

Prof. Indraneel Mukhopadhyay, PhD

23 of 28

Process Model - provides a process and methodological approach for defining specifying, designing and constructing aspects

24 of 28

Which Process Model to Select?

SHOW ANSWER

1. Waterfall Model

2. Prototyping Model

3. RAD Model

4. Incremental Model

5. CBD Model

25 of 28

Unified Process

  • A “use-case driven, architecture-centric, iterative and incremental” software process closely aligned with the Unified Modeling Language (UML).

  • Tools are used to describe Customer Views (Use Case).

  • Used mainly for OO based Methodologies

  • Runs in phases

26 of 28

Unified Process Phases

Planning

Modeling

Construction

Deployment

Communication

Unified Process

Phases & Deliverables

Phase 1: Inception

Communication & Planning

Phase 2: Elaboration

Planning & Modelling

Phase 3: Construction

Coding Testing Component Integration

Phase 4: Transition

Construction & Deployment

Production

Release (Software Increment)

27 of 28

UP Work Products

Inception Phase

  1. Vision Doc.
  2. Initial Use Case
  3. Project Plan
  4. Business Model

Construction Ph.

  1. Design Model
  2. Coding & Testing
  3. Documentation

Elaboration Ph.

  1. Use Case
  2. Analysis Model
  3. Architectural Prototype
  4. Project Plan

Transition Ph.

  1. Delivered Software Increment
  2. Beta test Report
  3. General User Feedback

28 of 28

End of Presentation