Seppt1 software engineering 20 sessions program in se 304 ppts
This presentation is the property of its rightful owner.
Sponsored Links
1 / 58

SEPPT1 Software Engineering 20 sessions Program In SE 304 PPTs*. PowerPoint PPT Presentation

  • Uploaded on
  • Presentation posted in: General

SEPPT1 Software Engineering 20 sessions Program In SE 304 PPTs*. Waman Jawadekar [email protected] (M)98508 36537 Not to be used without permission Of McGraw Hill . Reproduction is not permitted. Session 1. Introduction to SE Learning objective : Understanding Software.

Download Presentation

SEPPT1 Software Engineering 20 sessions Program In SE 304 PPTs*.

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript

Seppt1 software engineering 20 sessions program in se 304 ppts

SEPPT1Software Engineering20 sessions Program In SE304 PPTs*.

Waman Jawadekar

[email protected]

(M)98508 36537

Not to be used without permission Of McGraw Hill .

Reproduction is not permitted.

Session 1

Session 1

  • Introduction to SE

  • Learning objective:

  • Understanding Software.

  • Engineering approach to Software Development.

  • Attributes of good software

  • Types of software

  • Definition and scope of SE

  • SE activities.

Definition of software

Definition of software :

  • Software is a set of instructions to acquire inputs to manipulate to produce the desired output in terms of functions and performance as determined by the users of the software.

  • It also includes a set of documents, such as the software manual, meant for users to understand the software system.

  • Today’s software comprises the Source Code, Executables, Design Documents, Operations and System Manuals, and Installation and Implementation Manuals.

How to describe a software

How to describe a Software?

  • A software is described by its capabilities.

  • The capabilities relate to

  • the Functions, it executes,

    the Features, it provides,

    the Facilities, it offers

    the Platforms it supports.

Technical attributes of good software

  • Bug free

  • Reliable

  • Produces correct results

  • Reusable Structure.

  • Easy to maintain

  • Easy to Understand

  • Efficient use of Computing resources

  • User friendly.

Technical Attributes of Good Software

  • Attributes

Quality attributes of good software

Quality attributes of Good software

  • Quality Attributes: They score high on

  • Maintainable: Easy to Change or Modify

  • Dependable: Always available & gives

    correct Results

  • Efficient: Cost effective

  • Usability: Ease of use

  • User

    Acceptance: Very High: Commercial & operational

What assures dependability

What assures ‘Dependability’ ?

  • Availability: Ability to deliver when called for.

  • Reliability:Ability to deliver as per RDD specification.

  • Safety:Ability to operate without damage

  • Security:Ability to protect itself from external or internal threats.

  • Dependability is extremely important in case of Critical systems.

Type of software

Type of Software

  • Type:

  • System software,

  • Business software,

  • Design and scientific software,

  • Embedded software,

  • Intelligent software

  • Software:Product or Package or Tool or Solution

    ( Customized Product developed for solving customer specific problem)

When software is not dependable

When software is not dependable?

When software

  • is bug ridden, ( Fails to run or operate)

  • has mistakes, (Misrepresents requirements)

  • produces errors,(Represents requirements but handles incorrectly or faulty in certain conditions.)

What is software engineering

What is Software Engineering?

  • SE Definition

  • Software engineering is defined as a systematic logical approach to software development that contributes to the building of quality attributes of good software.

  • It is an engineering discipline because it is systematic, scientific, and methodical and uses standards, models and algorithms in design and development of the software.

Se scope

SE scope

  • SE scope

  • Requirements study.

  • Requirements analysis

  • Solution Design

  • Software Design

  • Software Development

  • Testing, Verification & Validation

  • Integration of different components

  • Deployment

  • Implementation

  • Change Management

  • Maintenance.

Se approaches to software development

SE approaches to Software Development

  • SE approaches:

  • Structured Systems Analysis and Design (SSAD)

  • Object Oriented Systems Analysis and Design (OOSAD).

  • SSAD: UsesStructured hierarchy of functions in modeling the System Requirements

  • OOSAD: Uses structured hierarchy of Objects in modeling the system Requirements

Developers skills

Developers Skills:

  • Developers Skills:

  • Analysis and modelling abilities.

  • Conceptual skills.

  • Design & Architecture skills.

  • Software programming skills.

  • Software development skills.

  • Development strategy skills.

  • Domain knowledge skill.

  • Application Knowledge skill.

  • Management skills.

  • Communication skills

  • leadership skills

  • Ability to work in a Team

  • Technology and language skills

Issues challenges in software development

Issues & Challenges In software Development

  • Issues & challenges:

  • Delivering on time as per requirements.

  • Developing within the budgeted cost.

  • Integrating the new software in legacy systems.

  • Integration without disturbance to current business operations.

  • Ensuring heterogeneous systems work together effectively.

  • Handling issues of data capture, migration, system interfacing, interoperability, up gradation of technology and so on without loss of system integrity.

  • Need to continuously upgrade and manage change


Cost of software development

Cost of Software Development

  • Cost of development:

  • Development cost = 60%

  • Testing cost = 40%

Se development scope

SE Development Scope.

  • Scope:

  • Define the objective of the system.

  • Define the boundaries of the system.

  • Factorise the system into different components.

  • Understand the relationships between various components

  • Identify inputs, outputs and processes in each of them.

  • Determine hardware ,development software and technology platform.

  • Identify key operational and functional requirements of software.

  • Discuss the systems requirement with the customer, users and other stakeholders.

  • Freeze the requirement.

  • Develop the software.

Areas affecting software its development





Tools & Technology

Customer Environment

Development Resource

Enabled by Management of Resource and Relations

Influenced by

Business Conditions



Software Product

Requirements Specs.

Customer Relations

Areas Affecting Software & its Development

  • Areas: Customer, Business, Domain & Management maturity.

Example ssad illustration of modeling structuring relations interface


Dispatch Verification

Delivery Note Processing

Order Status Verification

Inventory Status Updating

Process Sales Amount

Update of Order for Dispatch Balance

Process Tax Component

Modify the Sales Analysis Status



Example: SSAD: illustration of Modeling, structuring, relations,& Interface.

Oosad object model

OOSAD: Object Model:

  • Class: Pay order. Objects: Product Bill, Service Bill

    Pay order

    Product Bill Service Bill

    NO, Date Material service name

    From To Quantity Service rate

    Reference Packet No Quantity

    Signature Price

    Amount Delivery note


    Extract Compute Tax Compute labor

    Aggregate Compute Net Compute material

    Print Compute service

    Mail tax.


Session 2

Session 2

  • Overview of SE.

  • Learning Objective:

  • SE Components

  • Systems engineering

  • Development engineering

  • Approaches to development:

    Structured SSAD & Object OOSAD.

  • Understanding CMM model

Software engineering se components

Software Engineering (SE) Components

System Engineering

SE Components

System Development


Software engineering components processes

Software Engineering Components & Processes





BPR & Design

New system







The System



Define the system


& Objective

Software Design


Key functions




Key Processes

Test &


Define scope

Context, Boundaries

Software development life cycle sdlc model

Software Development Life Cycle: SDLC Model

  • Development moves through a life cycle.

  • Life cycle has following phases.

    Study & Analysis, Design & Architecture,

    Develop & Test, Deliver & Implement

  • The SDLC Models are,

  • Waterfall model

  • Evolutionary model

  • Boehm's Model

  • V - Model

Focus of se in software development

Focus of SE in Software Development

  • Economics: Cost, Benefits and ROI.

  • Design & Architecture: Ease of Development and Maintenance.

  • Technology: Portability and Interoperability.

  • Environment: Business, Customer & Users

Cmm sei capability maturity model

CMM: SEI Capability Maturity Model

  • Organization CMM level

  • CMM-Level-1: Initial: Undefined and chaotic development processes.

  • CMM-Level-2: Repeatable: Stable performance but no improvement, basic

    development processes are in use.

  • CMM-Level-3: DefinedProcesses: In addition to level-2 activities, the organisation has defined processes, and management activities are documented and integrated into the organisation’s processes supporting level-2 activities.

    Both engineering and management activities are documented and integrated in the organisation’s processes.

  • CMM-Level-4:Managed PerformanceManaged through setting standards, and standards are built for organisation. Data on software metrics and quality is collected for building standards.

  • CMM-Level-5: Optimum PerformanceLearning organisation using knowledge databases. Leveraging on knowledge and innovative ideas.

Performance vs cmm level comparison of cmm levels

Performance VS CMM level:Comparison OF CMM levels

CMM level

Session 3

Session 3

  • SDLC Models

  • Learning Objective

  • Understanding Waterfall, V - Model & Evolutionary Model ,Boehm’s spiral model.

  • When & where applicable?

  • Type of systems and Models

Generic process of software development

Generic Process Of Software Development

  • Generic process is linear sequential.

  • Requirement Elicitation

  • Requirement analysis

  • Preparing RDD & SRS Document.

  • Design the system

  • Design architecture

  • Develop the system as per design.

  • Test the system Components

  • Integrate components.

  • Install the system

  • Test on deployment platform

  • Obtain the user acceptance.

    This generic process is modeled into different development models.

Sdlc models

SDLC Models

Waterfall model

Waterfall Model

  • Requirement definition and description is stable, and unlikely to change in a significant way during development and in the post-implementation period.

  • Software system design is not likely to undergo achange due to changes in technology, platform and language considered in the system.

  • The system is so well understood by users that changes from them are not expected during development operations and maintenance

  • Risk of software development is almost nil.

Requirement analysis definition

Requirement Analysis & Definition

  • Requirement Analysis & Definition:

  • All requirements of the system which has to be developed are collected in this step.

  • Requirements have to be collected by analyzing the needs of the end users and checking them for validity and the possibility to implement them.

  • The aim is to generate a Requirements Specification Document which is used as an input for the next phase of the model.

System design

System Design:

  • System Design:

  • The system has to be properly designed before any implementation is started. This involves an architectural design which defines and describes the main blocks and components of the system, their interfaces and interactions.

  • Then the needed hardware is defined and the software is split up in its components. E.g. this involves the definition or selection of a computer platform, an operating system, other peripheral hardware, etc.

  • The software components have to be defined to meet the end user requirements and to meet the need of possible scalability of the system.

  • The aim of this phase is to generate a System Architecture Document this serves as an input for the software design phase of the development, but also as an input for hardware design or selection activities.

Software design

Software Design

  • Software Design:

  • Based on the system architecture ,the software design will break them further down into code modules.

  • The interfaces and interactions of the modules are described, as well as their functional contents.

  • All necessary system states like startup, shutdown, error conditions and diagnostic modes have to be considered and the activity and behavior of the software has to be defined.

  • The output of this phase is a Software Design Document which is the base of the following development work.



  • Coding: Based on the software design document the work is aiming to set up the defined modules or units and actual coding is started.

  • The system is first developed in smaller portions called units. They are able to stand alone from an functional aspect and are integrated later on to form the complete software package.

Software integration verification

Software Integration & Verification:

  • Software Integration & Verification:

  • Each unit is developed independently and can be tested for its functionality. This is the so called Unit Testing. It simply verifies if the modules or units to check if they meet their specifications.

  • This involves functional tests at the interfaces of the modules, but also more detailed tests which consider the inner structure of the software modules.

  • During integration the units which are developed and tested for their functionalities are brought together.

  • The modules are integrated into a complete system and tested to check if all modules cooperate as expected.

System verification

System Verification:

  • System Verification:

  • After successfully integration including the related tests the complete system has to be tested against its initial requirements.

  • This will include the original hardware and environment, whereas the previous integration and testing phase may still be performed in a different environment or on a test bench.

Operation maintenance

Operation & Maintenance:

  • Operation & Maintenance:

  • The system is handed over to the customer and will be used first time by him.

  • Customer will check if his requirements were implemented as expected but he will also validate if the correct requirements have been set up in the beginning.

  • In case there are changes necessary it has to be fixed to make the system usable or to make it comply to the customer wishes.

  • In most of the "Waterfall Model" descriptions this phase is extended to a never ending phase of "Operations & Maintenance".

  • All the problems which did not arise during the previous phases will be solved in this last phase.

Weakness of waterfall

Weakness Of waterfall

  • IT is very important to gather all possible requirements during the first phase of requirements collection and analysis. If not all requirements are obtained at once the subsequent phases will suffer from it.

  • Usually only a part of the requirements is known at the beginning and a good deal will be gathered during the complete development time.

  • Iterations are only meant to happen within the same phase or at best from the start of the subsequent phase back to the previous phase.

  • Instead of solving the root causes the tendency is to patch problems with inadequate measures.

  • There may be a very big "Maintenance" phase at the end. The process only allows for a single run through the waterfall.

Evolutionary iterative model

Evolutionary (Iterative) model

  • When system is new.

  • System & software solution needs to be conceptualized before development.

  • There are issues about use of technology, platform. User wants the experimentation approach to confirm RDD

  • Begins with prototyping, experimentation, testing at site confirming the completeness and clarity of RDD.

  • Use of extensive testing, reviews and inspection to confirm the rightness of the system.

  • Risk of software development is very high.

    Hence approach to software is evolutionary.

Evolutionary model

Evolutionary Model

  • In the Evolution Model,

    development engineering effort is made first to establish correct, precise requirement definitions and system scope to establish a ‘Base System’.

  • Then to the base system, few features are added progressively through evolution process.

  • In evolution process not only requirements are confirmed but its solution is also agreed by the users.

Boehm s spiral model

Boehm’s Spiral Model

Boehm s spiral model1

Boehm’s Spiral Model

Boehm’s Spiral: when system is known but.

  • RDD is complex, unclear in some parts.

  • User wants progressive development with risk assessment.

  • Needs development in stages one after another part by part.

  • Linear Sequential development for

    well defined part of RDD & for other evolutionary development.

  • Each stage is a ‘complete’ product of a limited RDD scope.

  • The entire scope is completed in stages with version number.

  • Risk of development is controlled.

V model

V - Model

V model1

V - Model

  • A modification of the waterfall model, called "V-Model".

  • The individual steps of the process are almost the same as in the waterfall model.

  • However, there is one big difference. Instead of going down the waterfall in a linear way the process steps are bent upwards at the coding phase, to form the typical V shape.

  • The reason for this is that for each of the design phases it was found that there is a counterpart in the testing phases which correlate to each other.

Mandatory activities in all types of software development

Mandatory activities inall types of software development.

  • Mandatory activities

  • Risk analysis

  • Activity Planning, scheduling, tracking and control of Progress

  • Technical reviews of design, architecture, and program

  • Software quality assurance measures

  • Documentation of development process and that of developed software

  • Measurement of efforts, resources, costs and budgets for planning and building development standards

Class exercise

Class Exercise

  • Recommend the SDLC Model for following systems:.

    Waterfall/ Evolutionary/ V Model/ Boehm’s Model

  • Geometric software for computing

    Area, volume, weight of standard objects.

    2. Sales Forecasting System for a Pressure cooker.

  • Billing & Material accounting system for a Medical shop.

  • Web Portal for a Holiday Resort.

  • RTO license processing system.

  • Analysis of Customer feedback.

Session 4

Session 4

  • Development Process Models

  • Learning Objective:

  • Understanding of five Development process models.

  • When to Use them?

  • Comparative analysis.

  • Modern Software Development

Generic process development model

Activity Processes

Common Activities



Task Activities

Work Breakdown











* There are ‘n’ tasks. Each task has ‘m’ activities and each activity has ‘r’ processes


Software System Development



Generic Process Development Model

Common activities in addition to sdlc activities

Common Activities in addition to SDLC Activities

  • Common Activities

  • A1:Planning & Control

  • A2:Technical Reviews

  • A3:Software Quality Assurance

  • A4:Documentation

  • A5:Risk Analysis

  • A6:Measurement & Building Standards

Sdpm linear sequential model





Code the Solution

Test for Quality

SDPM:Linear Sequential Model

  • Linear Sequential Model (LSM)

Applicable when System scope is clear. Requirement is

Definite, clear & complete. It is agreed by users and developers.

There are no issues about technology and platforms.

In brief, there is no uncertainty what so ever. A no risk scenario.

Sdpm prototype model

Build Prototype




if not satisfied




Testing by Customer

Satisfied then

Firm up the requirement

Final Requirements & Specification



Code the Solution Design

Test for


SDPM:Prototype Model

  • Prototype Model (PRM)

Applicable when some aspect

of the system is uncertain,

User or developer is not clear

On How to handle it. But van be

handled through experimentation

By building a prototype.

Sdpm rapid application development model rad

Team 1

Team 2

Team 3
























* Structuring larger Requirement into smaller Components through factorization. The components have well defined scope and are a system by itself



SDPM: Rapid Application Development Model (RAD)

  • RAD

Applicable when system can be factored in modules which

Can be developed independently and can be integrate subsequently.

Sdpm incremental model





Full System


Software Solution Design

CodeThe Solution




I:Increment Process

SDPM: Incremental Model

  • Incremental Model (INM)

In each increment, additional functions and features

are added after confirming the utility of earlier increments.

Go For Next Increment

Applicable when system needs development in stages

for technical or economical reasons. Or certain aspects

Of the system needs to be ascertained before development.

And system structure facilitates such approach.

Sdpm spiral model

Req. Analysis

Move to Next Version



Spiral Model

Customer Interaction, Acceptance

System Design

System Development

Spiral 1

Spiral 2,

Version 2

Spiral 3,

Version 3

Spiral 4,

Version 4

SDPM: Spiral Model

  • Boehm’s Spiral Model (BSM)

Applicable when system is complex,

Requirements are not precisely clear,

Function features are dependent

on each other. System structure is

such that certain functions and

features can be added in stages.

Version 4 delivers complete scope of the Requirement of the customer

In each spiral Process you go through a core process of Analysis to Testing.

Sdpm evolutionary process model

SDPM: Evolutionary Process Model

  • Evolutionary Process Model (EPM)

Applicable when you are searching a solution to the problem and number of aspects

are unclear and Requires exploration, experimentation and live testing.

Development is risky and feasibility is a question.







Testing ( Beta)


Testing (Alpha)


A system solution



Risk analysis

System design


System definition

& scoping



Comparison of sdpms



Not clear, & High Risk


Fairly clear but need confirmation


Stable & large


Clear but ,



Clear, stable simple







Comparison Of SDPMs

  • Comparison Of SDPMs: Requirement VS Risk

Sdpm integrated process

SDPM: Integrated process


Class exercise1

Class Exercise

  • Recommend the SDPM for following systems:.

    LS/Prototype/ RAD/Incremental/ Spiral, Evolutionary

  • Geometric software for computing

    Area, volume, weight of standard shapes.

    2. Sales Forecasting System for a Pressure cooker.

  • Billing & Material accounting system for a Medical shop.

  • Web Portal for a Holiday Resort.

  • RTO license processing system.

  • Analysis of Customer feedback.

  • Login