Prepared By: Prof. V. K. Wani
Prepared By: Prof. V. K. Wani
Prepared By: Prof. V. K. Wani
Prepared By: Prof. V. K. Wani
Prepared By: Prof. V. K. Wani
Prepared By: Prof. V. K. Wani
� Unit- 1
� Introduction to Software Engineering
2
Prepared By: Prof. V. K. Wani
What is Software?
Prepared By: Prof. V. K. Wani
8
Software Domains
Sr. No.
Domains Description Examples
1 System Collection of Programs written to service other programs
Compilers ,Editors,Drivers etc
2 Application Stand-alone programs that solve a specific business need.
VLC, MySQL
3 Embedded Embedded in Hardware to make it SMARTER
Keypad ControlCalculator
4 Scientific/Engineering
Characterized by “Number Crunching Algorithms ”
CAD,CFD
5 Webapps Network Centric S/w spans a wide array of applications.
Amazon, Flipkart
6 Artificial Intelligence Perform tasks requiring Human Intelligence, such as Visual Perception, Speech Recognition, Decision-Making and
GTA ,FIFA ,Biometric : PatternRecognition
Prepared By: Prof. V. K. Wani
9
What is Software Engineering?
Is a Systematic and Disciplined approach towardsdevelopment of softwareBased on nature of problems Various tools and Technologiesare applied to develop Quality Software.
Prepared By: Prof. V. K. Wani
10
Software Characteristics
Software is Engineered, Not Manufactured
Software Does not Wear Out
They are Custom Built rather than being assembled
Prepared By: Prof. V. K. Wani
11
SOFWARE DOESN’T Wear Out ,But It Does Deteriorate..
Prepared By: Prof. V. K. Wani
12
0
10
20
30
40
50
60
70
80Re
quir
emen
ts
Des
ign
Impl
emen
tati
on
Test
ing
Mai
nten
ance
Cost
Cost to fix an error increases as it is found later and later in the software lifecycle.
Relative costs to fix errorsRelative costs to fix errors
Prepared By: Prof. V. K. Wani
13
Legacy Software
Software that are developed decades ago and have been continuallymodified to meet changes in business requirements and computingplatforms
costly to maintainExhibit poor qualityExample : Microsoft Office [Current Version : 2017]
14
Prepared By: Prof. V. K. Wani
Software Engineering Layard Technology…
15
Provides Automated / Semi- Automated Support for process & Methods
provide the technical way for buildingsoftware1. Communication 2. Requirement Analysis3. Analysis & Design 4. Implementation 5. Testing
Glue that holds the technology layers together and enables rational and timely development of computer software
The Degree of Goodness1. Correctness 2. Maintainability 3. Integrity 4. Usability
Prepared By: Prof. V. K. Wani
Software Myths (Management Level)16
Myths RealityAddition of more software specialiststhose with higher skills and longerexperience may bring the schedule backon the track!
Unfortunately, that may further delay the schedule
Management may be confident about the state of the art and development tools company have
But the Latest Hardware configuration will not help in producing high Quality software
There is a Book that contain Standards and procedures for developing Software
Does it contain Modern engineering Practices?Does it Focus on Quality?Is it foolproof?
Prepared By: Prof. V. K. Wani
Software Myths (Customer Level)
17
Myths RealityA general statement is sufficient to getstarted with the development ofsoftware. No need to mentionrequirements
If we do so, we are headingtowards a disaster
Project Requirement continuouslychanges but can be easily accommodatedin software
If the Changes are requested in earlier stages of software then can be easily carried out but if requested in later stages Cost of change is rapidly increases
Software is easy to change. The reality is totally different
Prepared By: Prof. V. K. Wani
Software Myths (Practitioner Level)
18
Myths RealityOnce we write the program and get itwork, our job is done
Usually, the problems just begin
Until I get the Program running , I haveno way of assessing quality
However, quality assessment techniquesshould be used through out the softwaredevelopment life cycle
When the project is SuccessfullyDelivered, Product is only runningprogram.
It is just a small part of software but italso include Documentation, Help Filesand Guidelines for handling software.
Prepared By: Prof. V. K. Wani
Software Process19
A process is a collection of activities, actions and tasks that are performedwhen some work product is to be created.
it is an adaptable approach that enables the people doing the work to pickand choose the appropriate set of work actions and tasks.
Purpose of process is to deliver software in a timely manner and withsufficient quality to satisfy those who have sponsored its creation and thosewho will use it.
Prepared By: Prof. V. K. Wani
Software Process Cont….20
Prepared By: Prof. V. K. Wani
Umbrella Activities
Umbrella Activity Occur through out the process .
It Focus on progress, quality, change, and risk. The Various Activities are
1. Software project tracking and control: assess progress against the plan and takeactions to maintain the schedule.
2. Risk management: assesses risks that may affect the outcome and quality.
3. Software quality assurance: defines and conduct activities to ensure quality.
4. Formal Technical reviews: assesses work products to uncover and remove errorsbefore going to the next activity.
5. Measurement: define and collects process, project, and product measures to ensurestakeholder’s needs are met.
Prepared By: Prof. V. K. Wani
21
Umbrella Activities
6. Software Configuration Management: It Manages the effect of changes throughoutthe process.
7. Reusability Measurement: It Define the criteria for product Reuse.
8. Work product preparation and Production: It Includes Activities require to createdocuments.
Prepared By: Prof. V. K. Wani
22
Generic Process Model
11
Generic Process Activities are:1. Communication2. Planning3. Modeling4. Construction5. Deployment
Prepared By: Prof. V. K. Wani
Process Flow24
Communication Planning modeling Construction Deployment
Communication Planning modeling Construction Deployment
(b) Iterative process flow
(a) Linear Process Flow
Prepared By: Prof. V. K. Wani
Process Models25
Process Model
Perspective Process Model
Specialized Process Model
Waterfall Model
Incremental Model
Evolutionary Model
V Model
Incremental
RAD Model
Prototyping Model
Spiral Model
Concurrent ModelPrepared By: Prof. V. K. Wani
Waterfall Process Models26
Prepared By: Prof. V. K. Wani
Waterfall Process Models Cont…
Advantages:1. Very Simple & Easy to Understand2. Is a Systematic & Sequential approach for S/W Development3.In this process each phase is processed and completed at one time so overlapping is
avoided.4. Easy to manage as all requirement are very well understood in the beginning.
Disadvantages :1. Problems in this model remains uncovered until testing.2. The Biggest Drawback is Blocking State3. According to model customer have to state requirement at beginning only which is
difficult for customer.4. Customer get working version too late so not a realistic approach5. Suitable only for small projects.
27
Prepared By: Prof. V. K. Wani
V- Model28
Prepared By: Prof. V. K. Wani
V Model Cont….
Advantages1. Progress goes in very systematic way.2. Best suitable for small and medium size projects.3. Testing starts from requirement phase.4. Easy to keep track on progress.
Disadvantages1. Not suitable for bigger and complex projects2. Not a good option If Requirement changes frequently.3. The client sees the only final project, not intermediate
modules.4. No scope for risk management
29
Prepared By: Prof. V. K. Wani
Incremental Process Model
This Model Helps to implement limited set of customer requirementquickly and Delivered to customer
The Modified and Remaining requirements are implemented step bystep
The Overall Functionalities are split to smaller modules and then themodules are quickly developed and delivered.
Types of Incremental Process Model
1. The Increment Model2. The RAD Model
30
Prepared By: Prof. V. K. Wani
The Increment Model31
Prepared By: Prof. V. K. Wani
The Increment Model Cont…
Combines elements of waterfall model in iterative manner.
assist stakeholders to better understand what is to be built
Series of released called increments that progressively provides
more functionality.
Eg. Word processing system.
First increment is core product that is opened for customer to use.
Early increments are stripes down version of final product
32
Prepared By: Prof. V. K. Wani
The Increment Model Cont…
Advantages1. The Model can be used with small Development Team 2. The initial Delivery of Product is Faster 3. The Customer Can Respond to Functionality after each increment
Disadvantages1. The Cost of Final product may be increased2. After each increment customer may demand new requirement which may cause
problem to existing System3. It Require Clear & Complete planning before the system Is broken in to increments
Prepared By: Prof. V. K. Wani
33
The RAD Model34
Rapid Action Development is High Speed Adoption of Waterfall Model.
Initial activity start with communication between customer and developer.
Depending upon requirements the team are assigned work.
At last work product of every Team is integrated to form a product as whole.
Prepared By: Prof. V. K. Wani
The RAD Model Cont…35
Com m unicat ion
Planning
Mode lingbusiness modeling dat a modeling process modeling
Const ruct ioncomponent reuse aut omat ic code generat ion t est ing
De ploym e nt
6 0 - 9 0 days
Team # 1
Mo d el ingb usi ne ss m o de l in g d a t a m od e l ing p rocess m od e l i ng
Co nst ruct io nco m pon en t reu se a u t o m a t i c co de ge ne ra t io n t e st ing
M o d e lin gbus ines s m odeling data m odeling proc ess m odeling
C o n st ru ct io ncom ponent reus e autom at ic code generat ion tes t ing
Team # 2
Team # n
in t egrat ion deliv ery feedback
Prepared By: Prof. V. K. Wani
Advantages1. Product can be developed within short time period2. Increase Reusability,3. Minimal Code Writing4. Resolve Integration Issues.
Disadvantages1. Sufficient manpower to create team2. All team should work in parallel3. Not appropriate when technical risk is high4. Only for large products5. Reduce Scalability6. Reduced Features
36
The RAD Model Cont…
Prepared By: Prof. V. K. Wani
They are basically iterative Once the requirements are analyzed, they pass through aseries of iterations till the complete software is developed.The evolutionary models mainly support the programmer to develop the completeversion of a software., after each release, based on the review given by the reviewers
Types of Evolutionary Models1. The Prototyping Model2. The Spiral Model3. Concurrent Development Model
Evolutionary Models
Prepared By: Prof. V. K. Wani
37
The basic idea in Prototype model is that instead of freezing therequirements before a design or coding can proceed,A prototype is built to understand the Clear requirements.This prototype is developed based on the currently knownrequirements.Compelling need to provide a limited set of software functionallyto users quickly and then refine and expand.
The Prototyping Model
Prepared By: Prof. V. K. Wani
38
The Prototyping Model
Prepared By: Prof. V. K. Wani
39
Advantages:It makes requirement more Clear and System more Transparent
Disadvantages:The Quality may get compromised because of prototyping quickly
The Prototyping Model
Prepared By: Prof. V. K. Wani
40
The Spiral Model41
Prepared By: Prof. V. K. Wani
Spiral Model Cont…42
Have the iterative nature of prototyping with the controlled and
systematic aspects of waterfall model
Provides the potential for rapid development of increasingly
more complete versions of the software
This model is divided in to set of framework activities, Each
activity represent one segment of spiral.
Can be adopted to apply throughout the entire life cycle of an
application from concept development to maintenance
Prepared By: Prof. V. K. Wani
Spiral Model Cont…43
Advantages
1. Project monitoring is very effective and easy
2. It reduces the risk in software development
3. Risk management is in-built feature of the model
Disadvantages
1. Cost of approach is high
2. Not suitable for low risk approach
3. Rules and protocol must be followed strictly in the approach.
Prepared By: Prof. V. K. Wani
Concurrent Model44
Prepared By: Prof. V. K. Wani
Concurrent Model45
It is applicable to all types of software development
Provides an accurate picture of the current state of a project
It cab represent diagrammatically a series of tasks, framework activities,
and their associated states
Events generated at one point the process network trigger transitions
among the states
The Above diagram represent the one element of concurrent process
model.
Prepared By: Prof. V. K. Wani
Concurrent Model
Advantages
1. applicable to all types of software development It reduces the risk in softwaredevelopment
2. Provides an accurate picture of the current state of a project
3. Easy to Use and Understand
Prepared By: Prof. V. K. Wani
46
Specialized Process Model47
Types of Specialized Process model1. Component-based development2. Formal methods model3. Aspect-oriented software development
Prepared By: Prof. V. K. Wani
Component-based development
Incorporates many of the characteristics of spiral model
It is evolutionary in nature, demanding an iterative approach
This model compasses application from prepackaged software components
i.e. from existing software modules.
Prepared By: Prof. V. K. Wani
48
Formal Methods Model
Includes a set of activities that leads to formal mathematical specification
of computer software
Enable you to specify, develop and verify a computer-based system by
applying precise, mathematical notation
Provide a mechanism for eliminating many of the problems that are
difficult to overcome using other software engineering paradigms
Ambiguity, incompleteness and inconsistency can be discovered and
corrected more easily
Prepared By: Prof. V. K. Wani
49
Aspect Oriented S/W Development Model
To address particular problems and make program easier and to maintain good
reusability, Aspect Oriented S/W development model is used.
Prepared By: Prof. V. K. Wani
50
CleanRoom Software Engineering
Is a approach to Build correctness in software being developedRemoving dependencies on costly processes.Main concept is to write Correct code right from first lineIt takes Software development to next level.In traditional approach Software failure lead to hazards.Cleanroom software engineering can guarantee, it will not leadto hazards.
Prepared By: Prof. V. K. Wani
51
CleanRoom Design
Cost effective and Time effective
Systematic and disciplines approach
Remove possible errors in early stage
Mills, Dyer and Linger have proposed, but gained no popularity
Another research has explains three possible reason for failure1. Theoretical and Mathematical2. Offers no testing3. Rigorous process in its development stages
Prepared By: Prof. V. K. Wani
52
CleanRoom Strategy
Specialized version of incremental model
Increments are developed and verified by small team
Final product is integrated from all increments.
Sequence is as follow.
Prepared By: Prof. V. K. Wani
53
CleanRoom Strategy
Prepared By: Prof. V. K. Wani
54
CleanRoom Process Model
Cleanroom uses Box structure specification, A Box System or
some part or some aspect of system.
Black Box: Specifies the Behavior such as specification &
functionality of a system .
State Box: Specifies the State data & operations as well input
& output are represented.
Clear Box: Specifies the all procedural design of Previous
boxes i.e. State Box.
Prepared By: Prof. V. K. Wani
55
Software Quality Assurance
Planned and Systematic Approach to the Evaluation of the Quality of
1. Software Product Standards
2. Processes
3. procedures
Assures that Standards and Procedures are Established and
Followed throughout the Software Development Process
Prepared By: Prof. V. K. Wani
56
Standards and Procedures
Framework for which Software EvolvesStandards: Established Criteria to which Software Products areComparedProcedures: Established Criteria to which Development and ControlProcedures are FollowedSQA is based on the Following of Standards and Procedures ProperDocumentation of Standards and Procedures is Necessary for SQASQA Activities
— Continuous Monitoring,— Product Evaluation, and— Auditing rely
Any number of different Standards and Procedures can be used on agiven system
Prepared By: Prof. V. K. Wani
57
Types of Standard
1. Documentation Standard2. Design Standard3. Code Standard
Prepared By: Prof. V. K. Wani
58
Types of Standard
Documentation Standard:Specify Form and Content for Planning, Control, and Product. Documentation Provide Consistency throughout a SystemDocumentation can be written in any form Each Practice should be Documented so it can be Repeated or Changedlater if neededDesign StandardsSpecify the Content and Form of how Design Documents are DevelopedProvide Rules and Methods to Transfer:
1. Software Requirements to Software Design2. Software Design into Software Design Documentation
Many Major Companies have Design Development Software to aid in theProcess
Prepared By: Prof. V. K. Wani
59
Types of Standard
Code StandardsSpecify what Language the Code is written in and Define any Restrictions on Language FeaturesCode Standards Define:
•Legal Language Structures•Style Conventions•Rules for Data Structures and Interfaces•Internal Code Documentation
Using Methods such as “Peer Reviews”, “Buddy Checks”, and Code Analysis can Enforce Standards
Prepared By: Prof. V. K. Wani
60
SQA Activities
SQA is composed of a variety of tasks associated with two different
constituencies- the software engineer who do technical work and an
SQA group that has responsibility for quality assurance planning,
oversight , record keeping analysis and reporting.
The charter of the SQA group is to assist software team in achieving
a high quality end product.
The SE recommends a set of SQA activities that address quality
assurance.
Prepared By: Prof. V. K. Wani
61
Activities…
Prepare an SQA plan for a project Participates in the development of the project’s software process
description Reviews software engineering activities to verify compliances
with defined software process Audits designated software work products to verify compliance
with those defined as part of the software process
Ensures that deviations in software work and work products are
documented and handled according to a documented procedures
Records any noncompliance and reports to senior management
Prepared By: Prof. V. K. Wani
62
Software Quality Framework
Mccall’s Quality FactorISO 9126 Quality Factor
Prepared By: Prof. V. K. Wani
63
Mccall’s Quality Factor
Prepared By: Prof. V. K. Wani
64
ISO 9126 Quality Factor
Prepared By: Prof. V. K. Wani
65
Thank You
Prepared By: Prof. V. K. Wani
66