0% found this document useful (0 votes)
87 views100 pages

UNIT1

The document provides an introduction to the course "Software Engineering" taught at Noida Institute of Engineering and Technology. It includes the course objectives, topics to be covered, outcomes, and syllabus. The course aims to provide an understanding of basic software engineering concepts like the software development life cycle, quality attributes, and engineering processes. It will cover topics such as requirements specification, design, testing, maintenance and project management. Students will learn about different process models and be able to formulate solutions to engineering problems.

Uploaded by

Shivani Maurya
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
87 views100 pages

UNIT1

The document provides an introduction to the course "Software Engineering" taught at Noida Institute of Engineering and Technology. It includes the course objectives, topics to be covered, outcomes, and syllabus. The course aims to provide an understanding of basic software engineering concepts like the software development life cycle, quality attributes, and engineering processes. It will cover topics such as requirements specification, design, testing, maintenance and project management. Students will learn about different process models and be able to formulate solutions to engineering problems.

Uploaded by

Shivani Maurya
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 100

Noida Institute of Engineering and Technology, Greater Noida

Introduction to Software Engineering

Unit: 1

Subject Name
Software Engineering
Kedar Nath Singh
Course Details CSE
B.Tech 6th Sem

Kedar Nath Singh KCS 601 Software Engineering Unit 1


1
22/05/2023
Content

 Course Objective
 Objective of Topics
 Course Outcomes
 CO-PO Mapping
 CO-PSO Mapping
 Syllabus
 Prerequisite
 Software Components
 Software Characteristics
 Software Crisis
 Similarity and Differences from Conventional Engineering Processes
 Software Quality Attributes

22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 2


Content

 Software Development Life Cycle (SDLC) Models


 Water Fall Model,
 Prototype Model,
 Spiral Model, Evolutionary Development Models,
 Iterative Enhancement Models
 Video Links
 Daily Quiz
 Weekly Assignment
 MCQ
 Old Question Papers
 Expected Questions for University Exam
 Summary
 References
22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 3
Syllabus
Unit TOPIC
Introduction: Introduction to Software Engineering, Software Components,
Software Characteristics, Software Crisis, Software Engineering Processes,
I Similarity and Differences from Conventional Engineering Processes,
Software Quality Attributes. Software Development Life
Cycle (SDLC) Models: Water Fall Model, Prototype Model, Spiral Model,
Evolutionary Development Models, Iterative Enhancement Models.

Software Requirement Specifications (SRS): Requirement Engineering


Process: Elicitation, Analysis, Documentation, Review and Management of
II User Needs, Feasibility Study, Information Modelling, Data Flow Diagrams,
Entity Relationship Diagrams, Decision Tables, SRS Document, IEEE Standards
for SRS. Software Quality Assurance (SQA): Verification and Validation, SQA
Plans, Software Quality Frameworks, ISO 9000 Models, SEI-CMM Model.

Software Design: Basic Concept of Software Design, Architectural Design,


Low Level Design: Modularization, Design Structure Charts, Pseudo Codes,
Flow Charts, Coupling and Cohesion Measures, Design Strategies: Function
III Oriented Design, Object Oriented Design, Top-Down and Bottom-Up Design.
Software Measurement and Metrics: Various Size Oriented Measures:
Halestead’s Software Science, Function Point (FP) Based Measures,
Cyclomatic Complexity Measures: Control Flow Graphs.
22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 4
Syllabus

Unit TOPIC
Software Testing: Testing Objectives, Unit Testing, Integration Testing,
Acceptance Testing, Regression Testing, Testing for Functionality and Testing
for Performance, TopDown and BottomUp Testing Strategies: Test Drivers and
IV Test Stubs, Structural Testing (White Box Testing), Functional Testing (Black
Box Testing), Test Data Suit Preparation, Alpha and Beta Testing of Products.
Static Testing Strategies: Formal Technical Reviews (Peer Reviews), Walk
Through, Code Inspection, Compliance with Design and Coding Standards.
Software Maintenance and Software Project management: Software as an
Evolutionary Entity, Need for Maintenance, Categories of Maintenance:
Preventive, Corrective and Perfective Maintenance, Cost of Maintenance,
Software Re- Engineering, Reverse Engineering. Software Configuration
V
Management Activities, Change Control Process, Software Version Control,
An Overview of CASE Tools. Estimation of Various Parameters such as Cost,
Efforts, schedule/Duration, Constructive Cost Models (COCOMO), Resource
Allocation Models, Software Risk Analysis and Management.

22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 5


Course Objective(unit-1)

• In this unit, students will gain the understanding the basic concept of software
engineering and its application. A general understanding of software development
life cycle such as waterfall, prototype, spiral model. An ability to identify, formulate
and solve engineering problems.

22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 6


Objective of Topics

TOPIC Objective
Software Components To Study the Software Components

Software Characteristics Study of Software Characteristics


Software Crisis To understand the software crisis

Software Engineering Processes To study the process of Software


Engineering

Software Quality Attributes To study the various Software Quality


Attributes
SDLC To Study the various models of Software
Engineering

22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 7


Course Outcome

• Apply knowledge of computing, mathematics, science, and engineering


appropriate to the discipline, particularly in the modelling and design of
software systems and in the analysis of trade-offs inherent in design
decisions.
 
• Use current techniques, skills, and tools necessary for professional
practice.
 
• Understand ability to engage in life-long maintenance and continuing
Software development.

22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 8


Course Outcome

At the end of the Course, the student will be able

Bloom’s
Course Outcomes (CO) Knowledg
e Level
(KL)

NCS601.1 Explain various software characteristics and analyze different software K1, K2
Development Models.

Demonstrate the contents of a SRS and apply basic software quality assurance
NCS601.2 practices to ensure that design, development meet or exceed applicable standards. K1, K2

NCS601.3 Compare and contrast various methods for software design K2, K3
Formulate testing strategy for software systems, employ techniques such as unit
NCS601.4 K3
testing, Test driven development and functional testing.
Manage software development process independently as well as in teams and make
NCS601.5 use of Various software management tools for development, maintenance and K3
analysis.

22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 9


CO-PO Mapping

CO-PO Correlation Matrices


Correlation levels are taken 1, 2 and 3 as defined below:
1: Slight (Low) 2: Moderate (Medium) 3: Substantial (High)
Software Engineering (Code: KCS-601) Year of Study: 2020-21

CO PO1 PO2 PO3 PO4 PO5 PO6 PO7 PO8 PO9 PO10 PO11 PO12

C601.1 2 3 3 3  2  - -  -   - -  3 3
3 3 3 3 3  - -   - -   - 2 3
C601.2
C601.3 3 2  3 2 2 -  -  -  -  -  3 3

C601.4 2 2 2 2 3 3 -  3 3 -  3 3

C601.5 2 2 3 2 3 3 -  3  - 3 3 3

22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 10


CO-PO and PSO Mapping

Program Specific Outcomes and Course Outcomes Mapping

CO PSO1 PSO2 PSO3 PSO4

CO1 3 3 - 3
CO2 3 3 2 3
CO3 3 3 - 3
CO4 3 3 - 3
CO5 3 3 - 3

*3= High *2= Medium *1=Low

22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 11


Topic mapping with CO

TOPIC CO
Software Components CO1

Software Characteristics CO1

Software Crisis CO1

Software Engineering Processes CO1

Software Quality Attributes CO1

SDLC CO1

22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 12


Prerequisite and Recap

• Basic Programming Skills


• Innovative Thinking.
• Enthusiasm to learn Management concepts.

22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 13


What is Software (CO1)

Software is

• An instruction that when executed provide desired feature,


function and performance

• Data structure that enable the programs to adequately manipulate


information.

• Documents that describe the operation and use of the programs

22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 14


What is Software?

IEEE definition of Software:-


Software is the collection of computer programs procedures,
rules and associated documentation and data.

To be precise
Software is the collection of computer programs whose objective is
to enhance the capabilities of hardware

22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 15


Importance of Software

• It has become a driving force.


• It is engine that drive business decision making.
• It serve as the basis for modern scientific investigation and
engineering problem solving.
• It is embedded in all kind of systems like transportation ,
medical, telecommunications, military, industrial process,
entertainment, office products

22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 16


Importance of Software

• It affects nearly every aspect of our lives and has become pervasive
in our commerce, our culture and our every day activities
software impact on our society and culture is significant .
• As software importance grows, the software community
continually attempts to develop technologies that will make it
easier faster and less expensive to build high quality computer
programs

22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 17


Program vs Software

Program Software
 Developed by individuals for their  Developed by a group of s/w
personal use. engineer working in a team.

 Limited functionality.  More functionality.

 Small size.  Large in size.


 Large no of user.
 Single user.
 God document support.
 Lacks of proper documentation.
 Systematic development.
 Adhoc development.
 Good user interface.
 Lack of user interface.

22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 18


Introduction to Software Engineering

• IEEE Definition:-
Software Engg. Is the application of systematic, disciplined,
quantifiable approach to the development, operation and
maintenance of software.
or
Software Engineering is an Engineering discipline which is concerned
with all aspects of software production

22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 19


Introduction to Software Engineering

• According to fritz bauer:-

Software Engineering is the establishment and use of sound


engineering principles in order to obtain economically software that
is reliable and work efficiently on real machine

22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 20


Software Components (CO1)

• Software components is a system elements offering predefined


service and able to communicate with other components

It should fulfill following five criteria

1. Multiple use
2. Non context specific
3. Composable with other components
4. Encapsulated i.e. non investigable through its interfaces
5. A unit of independent deployment and versioning

22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 21


Software Components

• A simpler definition can be – A component is an object written to a


specification. It does not matter what the specification is :com, java
beans etc.
• Software components often take the form of objects or collection
of objects (from object oriented programming). In some binary or
textual form adhering to some interface description language (IDL)
so that the component may exist autonomously from other
component of a computer.

22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 22


Software Components

The components needs

1. To be fully documented
2. More through testing
3. Robust input validity checking
4. To pass back useful error messages as appropriate
5. To be built with an awareness that it will be put to unforeseen
uses
6. A mechanism for compensating developers who invest the
(substantial) effort implied above

22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 23


The Changing Nature of Software

Source: Software Engg. By KK Agarwal


22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 24
Nature of software

System S/w:
• it is collection of programs which provides service to others programs.
(compiler, OS, drivers, etc)
Real Time S/W:
• It is monitor, control and analyze real world events as they occur. (weather
forecasting)
Embedded S/W:
• placed ROM of the product and control the various functions of the product.
Business S/W:
• it process the business application. it could be payroll, file monitoring system,
employment system, a/c management, MIS(management info. System),
ERP(enterprise resource planning)

22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 25


Nature of software

Personal Computer S/W: software used in personal computer. Word processor,


computer graphics, multimedia, animation tools , comp. games, etc.

AI S/W: use non numerical algorithm to solve complex problems. Expert System,
ANN(artificial neural network), etc.

Web Based S/W: CGI, java, Perl, HTML, DHTML

Engg. And Scientific S/W: CAD/CAM package, MATLAB, Circuit Analyzer, IBM
Rational, etc.

22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 26


Objective of software Engineering

• The basic objective of software engineering is to develop


methods and procedures for software development that can
scale up for large systems and that can be used consistently to
produce high-quality software at low cost and with a small cycle
of time

22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 27


Software Characteristics

• S/W does not ware out.


• s/w becomes reliable overtime
instead of wearing out. It becomes
obsolete, if environment for which
it was developed, changes.

• Hence it may be retired due to


environmental changes, new
requirements, new expectations,
etc.

22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 28


Software Characteristics . . .

Software is not manufactured.


 Life of s/w is from concept exploration to the retirement.
 It one time development and continuous maintenance effort in order to
keep it operational( for making 1000 copies is not issue and not involve
any cost)

Reusability of components
 Huge effort is required to develop s/w. it has been made to design
standard components that may be used in new projects.
 Reusability is known as components based s/w engg.
Eg . Graphical user interface

Kedar Nath Singh KCS 601 Software


22/05/2023 29
Engineering Unit 1
Software Characteristics . . .

s/w is flexible.
• A program can be developed to do almost anything.
• Some times this char. Has made s/w development difficult to plan, monitor
and control.

Kedar Nath Singh KCS 601 Software


22/05/2023 30
Engineering Unit 1
Software Characteristics(CO1)

The key characteristics of software are

1. Most software is custom built, rather than being assembled from


existing components.

2. Software is developed or engineered; It is not manufactured in


the classical sense.

3. Software is flexible.

4. Software doesn’t wear out.

22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 31


Software Characteristics

Software does not have wear out phase

Figure: Software does not have wear out

22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 32


Software Characteristics

Failure rate of hardware

Figure: Failure rate of hardware

22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 33


Software Characteristics(CO1)

• We don’t have this phase for the software as it does not wear out.

• Important point is software becomes reliable overtime instead of


wearing out

• It becomes obsolete.

• Software may be retired due to environmental changes , new


requirement and new expectation

22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 34


Software Crisis (CO1)

History:
The name arose in the 1960’s with a ‘software crisis’

As hardware costs decreased the demand for software increased

Today:

Industrialized economies have become increasingly dependent


on effective software – now a huge software industry
Software is an important part of most aspects of human activity:
Embedded in systems such as transportation, medical, military,
telecommunications, entertainment, industrial, office machines …

22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 35


From 1960-1980 time of S/W Crisis

s/w industry unsuccessfully attempted to build larger and larger s/w system by
simply scaling existing development techniques

Success Rate of Software

Used(2%)

Used after Modifi-


cation(3%)

Never Used But De-


livered(47%)

Rejected(19%)

Not Delivered(29%)

22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 36


Software Crisis

According to latest IBM report 31% of the projects get cancelled


before they are completed,53% over run their cost estimates by an
average of 189% and for every 100 projects there are 94 restarts.

During development phase many problems are encountered. These


set of problem is known as software crisis.

22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 37


Some Software failures
• In “star wars” program USA
produced The Patriot Missile
• First time used in Gulf war Used as
a defense from Iraqi Scud missiles
• Failed several times including one
that killed 28 US soldiers in
Dhahran, Saudi Arabia
• Reasons:
• A small timing error in the system’s
clock accumulated to the point that
after 14 hours, the tracking system
was no longer accurate. In the
Dhahran attack, the system had
been operating for more than 100
hours.

Kedar Nath Singh KCS 601 Software


22/05/2023 38
Engineering Unit 1
Some Software failures

Kedar Nath Singh KCS 601 Software


22/05/2023 39
Engineering Unit 1
Some Software failures…

Ariane 5(space rocket)


• It took the European Space Agency 10
years and $7 billion to produce Ariane 5,
a giant rocket capable of hurling a pair of
three-ton satellites into orbit.
• The rocket was destroyed after 39
seconds of its launch, at an altitude of
two and a half miles along with its
payload of four expensive and uninsured
scientific satellites.
• When the guidance system’s own
computer tried to convert one piece of
data the sideways velocity of the rocket
from a 64 bit format to a 16 bit format;
the number was too big, and an overflow
error resulted after 36.7 seconds.
Kedar Nath Singh KCS 601 Software
22/05/2023 40
Engineering Unit 1
Some Software failures…

Financial Software
• Many companies have experienced failures in their accounting
system due to faults in the software itself. The failures range from
producing the wrong information to the whole system crashing.
Windows XP
• Microsoft released Windows XP on October 25, 2001. On the same
day company posted 18 MB of compatibility patches on the website
for bug fixes, compatibility updates, and enhancements. Two
patches fixed important security holes. One of them is not working
properly.

Kedar Nath Singh KCS 601 Software


22/05/2023 41
Engineering Unit 1
Software Crisis

The problem and causes of software crisis encountered on different


stage of software development are
1. Problems : So, what are the problems?
(i )Demand still outstrips supply
(ii) ~70% of software effort is maintenance because software:
(iii) Software is not produced on time and within budget
(iv) Software is becoming larger and more complex
(v) Many software products have poor quality
(vi) Software development is costly
(vii)Serious schedule overruns are common
2. Problems:
Schedule and cost estimate are often grossly inaccurate.
Communication between customer and software developer is
often poor. The quality of software is sometimes less than
adequate.
22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 42
Software Crisis

3. SOFTWARE CRISIS IN THE PROGRAMMER’S POINT OF VIEW:-

Problem of compatibility

Problem of portability

Problem in documentation

Problem of piracy of software

Problem in coordination of work of different people

Problem of maintenance in proper manner

22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 43


Software Crisis

4. SOFTWARE CRISIS IN THE USER’S POINT OF VIEW:-


Software cost is very high

Customers are moody or choosy

Hardware goes very down

Lack of specialization in development

Problem of different version of software

Problem of views

Problem of bugs

22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 44


Software Process(CO1)

Software process is the related set of activities and process that are
involved in developing and evolving a software system.
or
A set of activities whose goal is the development or evolution of
software.
or
A software process is a set of activities and associated results which
produce a software product.
or
– A set of interrelated activities, which transform inputs into outputs
(ISO 12207/8402) used by an organization or project to plan,
manage, execute, monitor, control and improve any software
related activity

Kedar Nath Singh KCS 601 Software


22/05/2023 45
Engineering Unit 1
Software Process

There are four fundamental process activities which are common to all
software processes. These activities are
1. Software specification:- the functionality of the software and
constraints on its operation must be defined.
2. Software development:- the software to meet the specification
must be produced.
3. Software validation:- the software must be validated to ensure
that it does what the customer wants
4. Software evolution:- the software must evolve to meet the
changing customer needs.
Different software processes organize these activities in different
ways and are described at different levels of detail. The timing of
the activities varies, as does the result of each activity. Different
organizations may use different process to produce the same type
of product. However some process are more suitable than other for
same types of application.
Kedar Nath Singh KCS 601 Software
22/05/2023 46
Engineering Unit 1
Software Process

• The software industry considers software development as a


process. According to Booch and Rambough “A process defines who
is doing what, when and how to reach a certain goal ?”

Software Engineering is a field, which combines process, methods


and tools for the development of software.

The concept of process is the main step in the software engineering


approach. When these activities are performed in specific sequence
in accordance with ordering constraints, the desired results are
produced.

Kedar Nath Singh KCS 601 Software


22/05/2023 47
Engineering Unit 1
Evolution Of Software (CO1)

Software Engineering principles have evolved over the past more than fifty
years from art to an engineering discipline.

Development in the field of hardware and software computing make a


significant change in the twentieth century. We can decide software
development process in to four eras.

Early Era: During the early years general-purpose hardware became common place.
Software, on the other hand, was custom-designed for each application and had a
relatively limited distribution. Most software was developed and ultimately used by
the same person or organization.
In this era the software are mainly based on (1950-1960)
– Limited Distribution
– Custom Software
– Batch Orientation

Kedar Nath Singh KCS 601 Software


22/05/2023 48
Engineering Unit 1
Evolution Of Software

Second Era: The second era to computer system evolution introduced


new concepts of human machine interaction. Interactive
techniques opened a new world of application and new levels of
hardware and software sophistication. Real time software deals
with changing environment and one other is multi-user in which
many user can perform or work on a software at a time.

In this era the software are mainly based on (1960-1972)


– Multi-user
– Data base
– Real time
– Product software
– Multiprogramming

Kedar Nath Singh KCS 601 Software


22/05/2023 49
Engineering Unit 1
Evolution Of Software

Third Era: In the earlier age the software was custom designed and limited
distribution but in this era the software was consumer designed and the
distribution is also not limited. The cost of the hardware is also very low in
this era.
In this era the software are mainly based on(1973-1985)
– Embedded intelligence
– Consumer impact
– Distributed systems
– Low cost hardware

Fourth Era:- The fourth era of computer system evolution moves us away
from individual computers and computer programs and towards the
collective impact of computers and software. As the fourth era progresses,
new technologies have begun to emerge.

Kedar Nath Singh KCS 601 Software


22/05/2023 50
Engineering Unit 1
Evolution Of Software

In this era the software are mainly based on(1985- )

• Powerful desktop system


• Expert system
• Artificial intelligence
• Network computers
• Parallel computing
• Object oriented technology
at this time the concept of software making is object oriented
technology or network computing etc.

Kedar Nath Singh KCS 601 Software


22/05/2023 51
Engineering Unit 1
Similarity with conventional Engineering Process

• Conventional Engg.(steps to solve problem)


– Problem formulation and analysis.
– Search for alternatives.
– Decision and specification
– Implementation
– Testing
• Software Engg.(steps to solve problem)
– Understand the problem(analysis and specification)
– Alternative solution
– Plan a solution(modeling and s/w design)
– Carry out the plan(coding)
– Examine the result for accuracy(testing and quality assurance)
Both develop tool and technique for high quality useful product
22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 52
Similarity with conventional Engg. Process

s/w Engg. Process Conventional Engg. Process


• Based on computer sci., information • Based science, mathematics and
science and discrete mathematics. empirical knowledge
• Construct non real(abstract) artifact. • Construct real artifact.
• Main concern is cost of development and • Main concern is cost of production and
reliability is measured by no. of error per reliability measure by time of failure.
thousands lines of source code . • 1000 years old.
• 50 years old.
• s/w engineering are not get able to • Able.
precisely describe and measure(1)
material they used and (2)result of their
work.
• LOC, function point or complexity • Use meter, volt and other units of
measure only capture the amount of s/w measurement.
created.
• Maintenance apply new and untested • Maintenance try to apply known and
elements in s/w project. tested principle

22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 53


Software Quality Attributes

Software Quality Attributes are: 


• Correctness, Reliability, Adequacy, Learnability, Robustness,
Maintainability, Readability, Extensibility, Testability, Efficiency,
Portability.

Correctness: 
• The correctness of a software system refers to:
– Agreement of program code with specifications
– Independence of the actual application of the software
system.

22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 54


Software Quality Attributes

Reliability: Reliability of a software system derives from


• – Correctness
– Availability
• The behavior over time for the fulfillment of a given specification
depends on the reliability of the software system.

22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 55


Software Quality Attributes

Adequacy:
The input required of the user should be limited to only what is
necessary. The software system should expect information only if it is
necessary for the functions that the user wishes to carry out.

Learnability:
 Learnability of a software system depends on:
– The design of user interfaces
– The clarity and the simplicity of the user instructions

22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 56


Software Quality Attributes

Robustness: Robustness reduces the impact of operational mistakes,


erroneous input data, and hardware errors.

Maintainability: Maintainability = suitability for debugging (localization


and correction of errors) and for modification and extension of
functionality.

• The maintainability of a software system depends on its:


• – Readability
– Extensibility
– Testability

22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 57


Software Quality Attributes

Readability: Readability of a software system depends on its:


• – Form of representation
– Programming style
– Consistency
– Readability of the implementation programming languages
– Structuredness of the system
– Quality of the documentation
– Tools available for inspection

Extensibility: Extensibility allows required modifications at the


appropriate locations to be made without undesirable side effects.
Extensibility of a software system depends on its:

22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 58


Software Quality Attributes

Testability: suitability for allowing the programmer to follow program


execution (runtime behavior under given conditions) and for
debugging. The testability of a software system depends on its:
• – Modularity
– Structuredness
• Modular, well-structured programs prove more suitable for
systematic, stepwise testing than monolithic, unstructured
programs.
• Testing tools and the possibility of formulating consistency
conditions (assertions) in the source code reduce the testing effort
and provide important prerequisites for the extensive, systematic
testing of all system components.

22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 59


Software Quality Attributes

Efficiency: ability of a software system to fulfill its purpose with the


best possible utilization of all necessary resources (time, storage,
transmission channels, and peripherals).
Portability: the ease with which a software system can be adapted to
run on computers other than the one for which it was designed.
• – Structuredness: System-dependent elements are collected in
easily interchangeable program components.

22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 60


Objective of QA

In a nutshell the role of QA is to provide information about the quality


of the product to the relevant people. If you release software without
any kind of QA, then you are not assured of anything, and are
essentially pushing the responsibility of finding issues in your software
to your users. There is a lot of disagreement about the best way to
perform this function, but few would argue it must be performed at
some point, to some extent, by someone. 

22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 61


Software Development Life Cycle

• It is used to facilitate the development of large s/w product in a systematic,


well defined and cost effective manner.
• It is the period of time that start when a software product is conceived and
end when the product is no longer available for use.
• Purpose of SDLC
1. Help to understand entire process.
2. Enforces a structured approach to development.
3. Enables planning of resources in advance.
4. Enables subsequent controls of them.
5. Aids mgmt. to track progress of system.
• SDLC can be decided min. 5 and max. 9 phases. Each phase identified
along with Entry and Exit Criteria.

Kedar Nath Singh KCS 601 Software


22/05/2023 62
Engineering Unit 1
SDLC

• SDLC includes the following phases


1. Project initiation and planning/ recognition of need/ preliminary
investigation
2. Project identification and selection/ feasibility study.
I. Organizational feasibility.
II. Economic feasibility.
III. Technical feasibility.
IV. Operational feasibility.
3. Project analysis.
4. System design.
I. Output design.
II. Input design.
III. File design.
IV. Processing design.
V. Detailed system documentation.
Kedar Nath Singh KCS 601 Software
22/05/2023 63
5. Coding. Engineering Unit 1
SDLC

6. Testing.
I. Unit Testing (testing each module isolation from other
modules)
II. System Testing
 Alpha Testing (performed by development Team)
 Beta Testing (performed by friendly set of customers)
 Acceptance Testing (performed by customer himself)
7. Implementation
8. Maintenance.
III. Corrective maintenance.
IV. Adaptive maintenance.
V. Perfective maintenance.
VI. Preventive maintenance.

Kedar Nath Singh KCS 601 Software Engineering Unit 1


22/05/2023 64
% Effort Involved in SDLC Phases

• Maintenance Phase requires max.(60%) effort.


• In development phases Integration and System Testing requires max. effort

Source: Software Engg. Book by Rajeev Mall

Kedar Nath Singh KCS 601 Software


22/05/2023 65
Engineering Unit 1
Waterfall Model (CO1)

• Origins
– Proposed in the early 70s & widely used even today
– Based strongly on the way hardware systems are designed &
implemented

• A model of the software development process in which the


constituent activities - concept, requirements, design, development,
testing & installation- are performed in a linear order.

• There is a single pass through each phase. Overlap between these


phases is neither precluded nor mandated.

• There is little or no iterative development

• Sometimes called systematic sequential approach


22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 66
Waterfall Model

Feasibility Study

Requirements
Analysis

System
Design

Coding

Testing

Delivery

Operation and
Maintenance

22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 67


Waterfall Model

The phases shown in the figure are the following:

• Feasibility Study

• Requirements Analysis

• System Design

• Coding

• Testing

• Delivery

• Operation And Maintenance

22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 68


Waterfall Model

Advantages:
• Easy to understand even by non technical persons i.e.,
customers

• Each phase has well defined inputs and outputs e.g., input to
system design stage is Requirement Specification Documents
(RSD) and output is the design document

• Easy to use as software development proceeds.

• Each stage has well defined manager deliverables or milestones

• Helps the project in proper planning of the project.

22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 69


Waterfall Model

Disadvantages:

• It is difficult to define all requirements at the beginning of a project.

• This model is not suitable for accommodating any change.

• It involves heavy documentation.

• We can not go in the backward direction while SDLC performs

• The model is not suitable for new projects because of uncertainty in


the specifications

22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 70


Prototype Model (CO1)

• A prototype is a partially developed product. It is a process of


developing working replica of a system.

• It always happen that a customer defines a set of general objectives


for software but does not identify detailed input, processing, or
output requirements. In other words the developer may be unsure
of the efficiency of an algorithm, the adaptability of an operating
system or the form the human/machine interaction should take.

• The prototyping begins with communication.

22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 71


Prototype Model (CO1)

• Developer and customer meet and define overall objective for the
software, identify whatever requirements are known, and outline
area where further definition is mandatory. A quick design than
occurs. The quick design focuses on the representation of those
aspects of the software that will visible to customer/user (e.g.,
input approaches and output format).

22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 72


Prototype Model (CO1)

22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 73


Prototype Model (CO1)

• Reasons for using Prototyping Model


An important purpose is to illustrate the input data formats,
messages, reports, and the interactive dialogues to the customer.
This is valuable for gaining better understanding of the customer’s
needs. The prototype model is very useful in developing the GUI
part of the system. The prototype model can be used when the
technical solutions are unclear to the development team. Often
major design decisions depend on a issues like the response time of
a hardware controller or the efficiency of a sorting algorithm.

22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 74


Prototype Model (CO1)

• The third reason for developing a prototype is that it is impossible


to “get in right” the first time and one must plant to throw away the
first product in order to develop a good product later.

Advantage of Prototyping Model


– suitable for large system for which there is no manual process
to define the requirements.
– User training to use the system
– User service determination
– System training
– Requirement are not freezed

22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 75


Prototype Model (CO1)

Limitation of Prototyping Model

– It was difficult to find all the requirements of the software


initially
– It was very difficult to predict how the system will be after
development.

22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 76


Iterative Enhancement Model(CO1)

The Incremental Model applies linear sequence in a staggered fashion


as calendar time progresses. Each linear sequence produces
deliverable increments of the software.

For example word processing software developed using the


incremental paradigm might deliver basic file management editing,
and document production function in first increment; more
sophisticated editing, and document production capabilities in the
second increment; spelling and grammar checking in the third
increment; and advance page layout capabilities in the forth
increment.

It should be noted that process flow for any increment may in


corporate the prototyping paradigm

22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 77


Iterative Enhancement Model

Define outline Assign requirements Design system


requirements to increments architecture

Develop system Validate Integrate Validate


increment increment increment system
Final
system
System incomplete

22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 78


Iterative Enhancement Model

• When an incremental model is used, the first increment is often a


core product. That is, basic requirements are addressed, but many
supplementary feature (some known, other unknown) remain
undelivered. The core product is used by the customer.

• As a result of use and/or evaluation, a plan is developed for next


increment. The plan addresses the modification of the core product
to better meet the need of the customer and the delivery of the
additional feature and functionality. This process is repeated
following the delivery of each increment ,until the complete
product is produced.

22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 79


Iterative Enhancement Model

• Advantages of Incremental model


– The feedbacks from early increments improve the later stages

– User get benefit earlier than with a conventional approach

– Early delivery of some useful component improves cash flow,


because you get

– some return on investment early on.

– Smaller sub projects are easier to control and manage

22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 80


Iterative Enhancement Model

• Disadvantages of Incremental model


– Software breakage, i.e. later increments may require
modification to earlier increments
– Programmer may be more productive on one large system than
on a series of smaller one
– Some problems are difficult to divide into functional units
(modules), which can be incrementally developed and delivered

22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 81


Spiral Model(CO1)

• The Spiral Model The spiral model is an evolutionary software


process model that couples the iterative nature of prototyping with
the controlled and systematic aspects of the waterfall model. It
provides the potential for rapid development of increasingly more
complete versions of the software. The spiral model is a realistic
approach to the development of large scale systems and software.
The spiral development model is a risk-driven process model
generator that is used to guide multi stakeholder concurrent
engineering of software intensive systems.

22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 82


Spiral Model

• Task set: In this model each of the regions with the set of work tasks
is called as task set. The size of the task set will vary according to
the project.

• Task region: Task region is a region where set of task is achieved.

• Principle of spiral model: Elaborate software entity object and find


out constraints and alternatives. Elaborate definition of the
software entity for the project. Spiral model terminate a project, if it
is too risky

22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 83


Spiral Model

• Customer communication: Task requires establishing effective


communication between developer and customer.
• Planning: Task requires defining resources, time& other related
information.
• Risk information: Task requires to access both technical and
management risk.
• Engineering: Task required building one or more representation of
the application.
• Construction &release: The task requires constructing the project &
releasing the project to the customer.
• Customer evaluation: Task required obtaining customer feedback
based on evolution of the software representation created during
the installation stage
22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 84
Spiral Model

22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 85


Spiral Model

Advantage:
• User will be able to see the project development cycle.
• Risk analysis which resolves higher priority error.
• Project is very much refined.
• Reusability of the software.

Disadvantages:
• It is only suitable for large size project.
• Model is more complex to use.
• Management skill is necessary so as to analyze the risk factor

22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 86


Evolutionary development Model

• It is designed to iterative development of s/w project.


• Requirements may be changed in subsequent iterations.
• Waterfall model occur here in cyclical fashion.
• Unlike iterative model it does not require a useable product at the
end of each cycle.
• Development, requirement are implemented by category rather then
priority.
• Ex: in simple database application to implement
• Cycle1: GUI
• Cycle2: file Manipulation
• Cycle3: queries
• Cycle4: updates

22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 87


Evolutionary development Model

22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 88


Evolutionary development Model
• Advantage:
– Used when it is not necessary to provide minimal version of the
system quickly.
– Model are useful for project using new technology that is not
well understood.
– Used for complex project where all functionality must be
delivered at one time, but requirements are unstable or not well
understood at the beginning.
• Disadvantage:
– Not possible to develop fixed cost estimates and static schedule
due to uncertainty.
– Requiring persons whop have the sufficient knowledge to
understand and implement the s/w.
– It is hard to split the problem into several versions that would be
acceptable to the customer and which can be incrementally
22/05/2023implemented and
Kedar Nath Singhdelivered.
KCS 601 Software Engineering Unit 1 89
Faculty Video Links, Youtube & NPTEL Video Links and
Online Courses Details

Youtube/other Video Links

• https://nptel.ac.in/courses/106/105/106105182/
• https://
www.youtube.com/watch?v=Z6f9ckEElsU&list=PL8751DA481F0F0D17
• https://www.youtube.com/watch?v=fhKwJbmaCEg
• https://www.youtube.com/watch?v=TcxA-h8o5P4
• https://www.youtube.com/watch?v=e6HjDcd4U6U
• https://www.youtube.com/watch?v=a7jDv_A25ZA
• https://www.youtube.com/watch?v=rvTejAg_fbY

22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 90


Daily Quiz

1) Software is
(a) Superset of programs (b) subset of programs (c) Set of programs (d) none of the above
 2) Which is NOT the part of operating procedure manuals?
(a) User manuals (b) Operational manuals(c) Documentation manuals (d) Installation manuals
 3) Which is NOT a software characteristic?
(a) Software does not wear out (b) Software is flexible
(c) Software is not manufactured (d) Software is always correct
 4) Product is
(a) Deliverables (b) User expectations
(c) Organization's effort in development (d) none of the above
5) To produce a good quality product, process should be
(a) Complex (b) Efficient (c) Rigorous (d) none of the above
 

22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 91


Daily Quiz

6) Project risk factor is considered in


(a) Waterfall model (b) Prototyping model
(c) Spiral model (d) Iterative enhancement model
7) SDLC stands for
(a) Software design life cycle (b) Software development life cycle
(c) System development life cycle (d) System design life cycle
8) Build and fix model has
(a) 3 phases (b) 1 phase(c) 2 phases (d) 4 phases
 
9) Which of the following is a type of software?
(a) System Software (b) Embedded Software
(c) Application (d) all of the above
 
10) Waterfall model is not suitable for
(a) small projects (b) accommodating change
(c) complex projects (d) none of the above

22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 92


Weekly Assignment

1. Explain software crisis. Given an example.


2. Explain the different component of software?
3. Describe the characteristics of Software? Explain with suitable diagram.
4. What do you mean by Software Development Life Cycle? Discuss all the phases of
waterfall model with suitable diagram and compare its requirements with others
models.
5. Discuss the iterative enhancement software ware development model
6. Define following software terminologies: Deliverables, milestones, metrics,
Productivity
7. How does “project risk” factor affect spiral model of software development?
8. What do mean by software process model? Discuss spiral model in details with
suitable diagram and also explain its merits and demerits.
9. How does “project risk” factor affect spiral model of software development?

22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 93


MCQ

• Software is considered to be collection of ____________.


A. programming code
B. associated libraries
C. documentations
D. All of the above
• Which of the following is the Characteristics of good software?
A. Transitional
B. Operational
C. Maintenance
D. All of the above
• Where there is a need of Software Engineering?
A. For Large Software
B. To reduce Cost
C. Software Quality Management
D. All of the above

22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 94


MCQ

• Which of the following is the first step in SDLC framework?


A. Feasibility Study
B. Requirement Gathering
C. Communication
D. System Analysis
• Waterfall model is not suitable for:
A. Small projects
B. Complex projects
C. Accommodating changes
D. Maintenance Projects
• Which one of the following is a functional requirement?
A. Maintainability
B. Portability
C. Business needs
D. Reliability
22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 95
Old Question Papers

22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 96


Old Question Papers

22/05/2023 97
Kedar Nath Singh KCS 601 Software Engineering Unit 1
Expected Questions for University Exam

1. What is software Quality Attribute?


2. By what methods quality attributes can be judged?
3. What is the main technique for achieving portable software?
4. Write the similarity and difference between software engineering
process and conventional engineering process.
5. How does “project risk” factor affect spiral model of software
development?

22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 98


Summary

• Software Components
• Software Characteristics
• Software Crisis
• Software Engineering Processes
• Similarity and Differences from Conventional Engineering Processes
• Software Quality Attributes
• Software Development Life Cycle (SDLC) Models
• Water Fall Model,
• Prototype Model,
• Spiral Model, Evolutionary Development Models,
• Iterative Enhancement Models

22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 99


References

1. R. S. Pressman, Software Engineering: A Practitioners Approach, McGraw Hill.


2. Rajib Mall, Fundamentals of Software Engineering, PHI Publication.
3. K. K. Aggarwal and Yogesh Singh, Software Engineering, New Age International
Publishers.
4. Pankaj Jalote, Software Engineering, Wiley
5. Deepak Jain,” Software Engineering: Principles and Practices”, Oxford University
Press.
6. Munesh C. Trivedi, Software Engineering, Khanna Publishing House
7. N.S. Gill, Software Engineering, Khanna Publishing House

22/05/2023 Kedar Nath Singh KCS 601 Software Engineering Unit 1 100

You might also like