seppt1 software engineering 20 sessions program in se 304 ppts
Skip this Video
Download Presentation
SEPPT1 Software Engineering 20 sessions Program In SE 304 PPTs*.

Loading in 2 Seconds...

play fullscreen
1 / 58

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

  • Uploaded on

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.

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about 'SEPPT1 Software Engineering 20 sessions Program In SE 304 PPTs*.' - eytan

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 Performance Managed through setting standards, and standards are built for organisation. Data on software metrics and quality is collected for building standards.
  • CMM-Level-5: Optimum Performance Learning organisation using knowledge databases. Leveraging on knowledge and innovative ideas.
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.

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