CS - 205 - PPT - 16 - Mar - 2023 - D1.1
CS - 205 - PPT - 16 - Mar - 2023 - D1.1
2
The Evolving Role of Software
success
16%
failure
31%
over budget
53%
3
The Evolving Role of Software
Engineering
Cancelled –
Today! 23%
5
The Evolving Role of Software
Hw cost
Sw cost
1960 Year
1999
Relative Cost of Hardware and Software
6
The Evolving Role of Software
• Unlike Hardware
– Moore’s law: processor speed/memory capacity doubles
every two years
7
The Evolving Role of Software
8
Factors Contributing to the Software Crisis
• Larger problems,
9
“No Silver Bullet”
• Software companies
• Software developers
• Legal system
• Universities
10
What is software?
11
What is software?
Programs
Operating
Documentation
Procedures
Software=Program+Documentation+Operating Procedures
Components of software
12
Documentation consists of different types of manuals are
Formal Specification
Analysis Context-
/Specification Diagram
Data Flow
Diagrams
Flow Charts
Design
Entity-Relationship
Documentation Diagram
Manuals
Source Code Listings
Implementation Cross-Reference
Listing
Test Data
Testing
Test Results
Operating
Procedures
Installation Guide
Operational
Manuals
System
Administration Guide
15
Software Product
Software product is a product designated for
delivery to the user
Source Documents
Codes Reports
Manuals
Objects Plans
plans
Codes
Data
16
What is software engineering?
• Lack of knowledge
19
Software Process
• Wrong motivations
• Insufficient commitment
Improved future state
Process improvement
begins
Initial state
state
Productivity
Learning curve
Time
20
Software Characteristics:
Useful life
phase
Time
21
Software Characteristics:
✓ Software is not manufactured
✓ Reusability of components
✓ Software is flexible
22
Software Characteristics:
Comparison of constructing a bridge vis-à-vis writing a program.
Sr. Constructing a bridge Writing a program
No
1. The problem is well understood Only some parts of the problem are
understood, others are not
2. Every program is different and designed for
There are many existing bridges
special applications.
3. The requirement for a bridge typically do Requirements typically change during all
not change much during construction phases of development.
4. The strength and stability of a bridge can be Not possible to calculate correctness of a
calculated with reasonable precision program with existing methods.
5. When a bridge collapses, there is a When a program fails, the reasons are often
detailed investigation and report unavailable or even deliberately concealed.
6. Engineers have been constructing bridges Developers have been writing programs
for thousands of years for 50 years or so.
7. Materials (wood, stone,iron, steel) and Hardware and software changes rapidly.
techniques (making joints in wood, carving
stone, casting iron) change slowly.
23
The Changing Nature of Software
System Real
Software Time
Software
Engineering Embedded
and Scientific Software
Software
24
Software Myths (Management Perspectives)
25
Software Myths (Management Perspectives)
The infrastructure is
only one of the several factors
that determine the quality
of the product!
26
Software Myths (Management Perspectives)
Unfortunately,
that may further delay the schedule!
27
Software Myths (Management Perspectives)
28
Software Myths (Management Perspectives)
29
Software Myths (Customer Perspectives)
30
Software Myths (Customer Perspectives)
31
Software Myths (Developer Perspectives)
32
Software Myths (Developer Perspectives)
33
Software Myths (Developer Perspectives)
34
Software Myths (Developer Perspectives)
35
Some Terminologies
The milestones are the events that are used to ascertain the status of
the project. Finalization of specification is a milestone. Completion of
design documentation is another milestone. The milestones are
essential for project planning and management.
36
Some Terminologies
➢ Product and Process
Product: What is delivered to the customer, is called a product. It
may include source code, specification document, manuals,
documentation etc. Basically, it is nothing but a set of deliverables
only.
If the process is weak, the end product will undoubtedly suffer, but
an obsessive over reliance on process is also dangerous.
37
Some Terminologies
38
Some Terminologies
➢ Software Process and Product Metrics
39
Some Terminologies
40
Some Terminologies
41
Role of Management in Software Development
Factors
People Project
Product Process
42
Role of Management in Software Development
People
Process
43
44
Case Study – 1
Browser - 1 Browser - 2
• Good Functionality. • Good Functionality.
• Need Good Internet Speed (min. 1 • Need At least Good Internet Speed
Mbps). (min. 1 Mbps).
• Also, Perform on < 1 Mbps with • Not Perform on < 1 Mbps with
Limited Functionality. Limited Functionality.
• Compromised with Services. • Not Compromised with Services.
45
Which Browser has Reliability?
Case Study – 2
46
Which Online Video Player has Reliability?
SoftwareReliability
Basic Concepts
There are three phases in the life of any hardware
component i.e., burn-in, useful life & wear-out.
In burn-in phase, failure rate is quite high initially, and it starts
decreasing gradually as the time progresses.
47
SoftwareReliability
48
SoftwareReliability
We do not have wear out phase in software. The expected curve for
software is given in Figure 2.
51
SoftwareReliability
52
SoftwareReliability
▪ Failures and Faults
53
SoftwareReliability
1. time of failure,
54
SoftwareReliability
Software Quality
❖ conformance to requirements
❖ level of satisfaction
55
SoftwareReliability
58
SoftwareReliability
8 Accuracy Meeting specifications with precision.
9 Clarity & The extent to which documents are clearly & accurately
Accuracy of written.
documentation
10 Conformity of The extent to which a software is in conformity of
operational operational environment.
environment
11 Completeness The extent to which a software has specified functions.
12 Efficiency The amount of computing resources and code required
by software to perform a function.
13 Testability The effort required to test a software to ensure that it
performs its intended functions.
14 Maintainability The effort required to locate and fix an error during
maintenance phase.
59
SoftwareReliability
15 Modularity It is the extent of ease to implement, test, debug and
maintain the software.
16 Readability The extent to which a software is readable in order to
understand.
17 Adaptability The extent to which a software is adaptable to new
platforms & technologies.
18 Modifiability The effort required to modify a software
during maintenance phase.
19 Expandability The extent to which a software is expandable without
undesirable side effects.
20 Portability The effort required to transfer a program from one
platform to another platform.
60
SoftwareReliability
▪ McCall Software Quality Model
▪ Maintainability
▪ Flexibility
▪ Testability
63
SoftwareReliability
iii. Product Transition
We may have to transfer a product from one platform to an other
platform or from one technology to another technology. The factors
related to such a transfer are combined and given below:
▪ Portability
▪ Reusability
▪ Interoperability
64
SoftwareReliability
1 Operability The ease of operation of the software.
2 Training The ease with which new users can use the
system.
3 Communicativeness The ease with which inputs and outputs can be
assimilated.
4 I/O volume It is related to the I/O volume.
5 I/O rate It is the indication of I/O rate.
6 Access control The provisions for control and protection of the
software and data.
7 Access audit The ease with which software and data can be
checked for compliance with standards or other
requirements.
8 Storage efficiency The run time storage requirements of the software.
9 Execution efficiency The run-time efficiency of the software.
65
SoftwareReliability
10 Traceability The ability to link software components to
requirements.
11 Completeness The degree to which a full implementation of the
required functionality has been achieved.
12 Accuracy The precision of computations and output.
13 Error tolerance The degree to which continuity of operation is ensured
under adverse conditions.
14 Consistency The use of uniform design and implementation
techniques and notations throughout a project.
15 Simplicity The ease with which the software can be understood.
16 Conciseness The compactness of the source code, in terms of lines
of code.
17 Instrumentation The degree to which the software provides for
measurements of its use or identification of errors.
66
SoftwareReliability
18 Expandability The degree to which storage requirements or
software functions can be expanded.
19 Generability The breadth of the potential application of software
components.
20 Self- The degree to which the documents are self
descriptiveness explanatory.
21 Modularity The provision of highly independent modules.
22 Machine The degree to which software is dependent on its
independence associated hardware.
23 Software system The degree to which software is independent of its
independence environment.
24 Communication The degree to which standard protocols and
commonality interfaces are used.
25 Data commonality The use of standard data representations.
69
SoftwareReliability
• Fault tolerance Ability to maintain a specified level of performance in cases
of software faults or unexpected inputs
• Recoverability Capability and effort needed to reestablish level of
performance and recover affected data after possible
failure.
Usability Characteristics relating to the effort needed for use, and on
the individual assessment of such use, by a stated implied
set of users.
• Understandability The effort required for a user to recognize the logical
concept and its applicability.
• Learnability The effort required for a user to learn its application,
operation, input and output.
• Operability The ease of operation and control by users.
Efficiency Characteristic related to the relationship between the level
of performance of the software and the amount of
resources used, under stated conditions.
70
SoftwareReliability
• Time behavior The speed of response and processing times and
throughout rates in performing its function.
• Resource The amount of resources used and the duration of such
behavior use in performing its function.
Maintainability Characteristics related to the effort needed to make
modifications, including corrections, improvements or
adaptation of software to changes in environment,
requirements and functions specifications.
• Analyzability The effort needed for diagnosis of deficiencies or causes
of failures, or for identification of parts to be modified.
• Changeability The effort needed for modification, fault removal or for
environmental change.
• Stability The risk of unexpected effect of modifications.
71
SoftwareReliability
72
SoftwareReliability
▪ Capability Maturity Model
It is a strategy for improving the software process, irrespective of the
actual life cycle model used.
Maturity Levels:
74
SoftwareReliability
75
Thanks
76