UNIT1
UNIT1
Unit: 1
Subject Name
Software Engineering
Kedar Nath Singh
Course Details CSE
B.Tech 6th Sem
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
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.
• 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.
TOPIC Objective
Software Components To Study the Software Components
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.
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
CO1 3 3 - 3
CO2 3 3 2 3
CO3 3 3 - 3
CO4 3 3 - 3
CO5 3 3 - 3
TOPIC CO
Software Components CO1
SDLC CO1
Software is
To be precise
Software is the collection of computer programs whose objective is
to enhance the capabilities of hardware
• 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
Program Software
Developed by individuals for their Developed by a group of s/w
personal use. engineer working in a team.
• 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
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
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
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)
AI S/W: use non numerical algorithm to solve complex problems. Expert System,
ANN(artificial neural network), etc.
Engg. And Scientific S/W: CAD/CAM package, MATLAB, Circuit Analyzer, IBM
Rational, etc.
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
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.
3. Software is flexible.
• We don’t have this phase for the software as it does not wear out.
• It becomes obsolete.
History:
The name arose in the 1960’s with a ‘software crisis’
Today:
s/w industry unsuccessfully attempted to build larger and larger s/w system by
simply scaling existing development techniques
Used(2%)
Rejected(19%)
Not Delivered(29%)
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.
Problem of compatibility
Problem of portability
Problem in documentation
Problem of views
Problem of bugs
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
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
Software Engineering principles have evolved over the past more than fifty
years from art to an engineering discipline.
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
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.
Correctness:
• The correctness of a software system refers to:
– Agreement of program code with specifications
– Independence of the actual application of the software
system.
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
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.
• Origins
– Proposed in the early 70s & widely used even today
– Based strongly on the way hardware systems are designed &
implemented
Feasibility Study
Requirements
Analysis
System
Design
Coding
Testing
Delivery
Operation and
Maintenance
• Feasibility Study
• Requirements Analysis
• System Design
• Coding
• Testing
• Delivery
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
Disadvantages:
• 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).
• 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.
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
• 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
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 97
Kedar Nath Singh KCS 601 Software Engineering Unit 1
Expected Questions for University Exam
• 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 100