SOFTWARE ENGINEERING-ETCS-303
UNIT – I
Introduction:
• Software Crisis, Software Processes, Software life cycle models: Waterfall, Prototype, Evolutionary and Spiral models,
Overview of Quality Standards like ISO 9001, SEI-CMM.
Software Metrics:
• Size Metrics like LOC, Token Count, Function Count, Design Metrics, Data Structure Metrics, Information Flow Metrics.
UNIT-II
Software Project Planning:
• Cost estimation, static, Single and multivariate models, COCOMO model, Putnam Resource Allocation Model,
Risk management.
Software Requirement Analysis and Specifications:
• Problem Analysis, Data Flow Diagrams, Data Dictionaries, Entity-Relationship diagrams, Software Requirement
and Specifications, Behavioural and non-behavioural requirements, Software Prototyping.
UNIT – III
Software Design:
• Cohesion & Coupling, Classification of Cohesiveness & Coupling, Function Oriented Design, Object Oriented Design,
User Interface Design.
Software Reliability:
• Failure and Faults, Reliability Models: Basic Model, Logarithmic Poisson Model, Calendar time Component, Reliability
Allocation.
UNIT – IV
Software Testing:
• Software process, Functional testing: Boundary value analysis, Equivalence class testing, Decision table testing, Cause
effect graphing, Structural testing: Path testing, Data flow and mutation testing, unit testing, integration and system testing,
Debugging, Testing Tools & Standards.
Software Maintenance:
• Management of Maintenance, Maintenance Process, Maintenance Models, Reverse Engineering, Software Reengineering,
Configuration Management, Documentation.
TEXT BOOKS & REFRENCE BOOKS
TEXT BOOKS:
• [T1] R. S. Pressman, “Software Engineering – A practitioner’s approach”, 3rd ed.,
McGraw Hill Int. Ed., 1992.
• [T2] K.K. Aggarwal & Yogesh Singh, “Software Engineering”, New Age International,
2001
REFERENCE:
• [R1] R. Fairley, “Software Engineering Concepts”, Tata McGraw Hill, 1997.
• [R2] P. Jalote, “An Integrated approach to Software Engineering”, Narosa, 1991.
CONTENTS
• Introduction: Software Crisis
• Software Processes
Why Software Engineering ?
❑Change in nature & complexity of software
❑ Concept of one “guru” is over
❑ We all want improvement
Ready for change
The Evolving Role of Software
Software industry is in Crisis!
Chart Title
Failure
31%
Over Budget
53%
Success
16%
The Evolving Role of Software
As per the IBM report, “31%of the project get
cancelled before they are completed, 53% overrun
their cost estimates by an average of 189% and
for every 100 projects, there are 94 restarts”.
The Evolving Role of Software
Unlike Hardware
– Moore’s law: processor speed/memory capacity doubles
every two years
The Evolving Role of Software
Managers and Technical Persons are asked:
• Why does it take so long to get the program finished?
• Why are costs so high?
• Why can not we find all errors before release?
• Why do we have difficulty in measuring progress of software
development?
Factors Contributing to the Software Crisis
• Larger problems
• Lack of adequate training in software engineering
• Increasing skill shortage
• Low productivity improvements.
What is software?
Documentation consists of different types of manuals are
Documentation consists of different types of manuals are
Software Product
What is software engineering?
Software Process
Software Characteristics:
The Changing Nature of Software
Software Myths (Management Perspectives)
Software Myths (Management Perspectives)
Software Myths (Management Perspectives)
Software Myths (Management Perspectives)
Software Myths (Management Perspectives)
Software Myths (Customer Perspectives)
Software Myths (Customer Perspectives)
Software Myths (Developer Perspectives)
Software Myths (Developer Perspectives)
Software Myths (Developer Perspectives)
Software Myths (Developer Perspectives)
Some Terminologies
Role of Management in Software Development
Role of Management in Software Development
QUESTIONS
Q-1. Software is
(a) Superset of programs
(b) subset of programs
(c) Set of programs
(d) none of the above
Q-2. Product is
(a) Deliverables
(b) User expectations
(c) Organization's effort in development
(d) none of the above
Q-3. During software development, which factor is most crucial?
(a)People
(b)Product
(c) Process
(d) Project
Q-4. Milestones are used to
(a)know the cost of the project
(b)know the status of the project
(c) know user expectations
(d) none of the above
Q-5. Software consists of
(a) Set of instructions + operating system
(b) Programs + documentation + operating procedures
(c) Programs + hardware manuals
(d) Set of programs
THANK YOU