DC15
SOFTWARE ENGINEERING
1. Introduction 2 hours
1.1
Software Crisis: No Silver Bullet, Software
Myths
1.2
The Software Problem: Software is Expensive,
Late, Costly and Unreliable, Problem
of change and Rework
1.3
What is Software Engineering: Definition,
Program Versus Software
I [1]
2. Software Processes 6 hours
2.1 Software Process: Processes, Projects and Products, Component
Software Processes
2.2 Characteristics of a Software Process: Predictability,
Support Testability and
Maintainability, Early Defect Removal and Defect Prevention, Process
Improvement.
2.3 Software Development Process: A Process Step specification,
Waterfall Model, Prototyping, Iterative Enhancement, The Spiral Model
2.4 Project Management Process: Phases of Management Process,
Metrics, Measurement and Models
2.5 Software Configuration Management Process: Configuration
Identification, Change Control, Status Accounting and Auditing
2.6 Process Management Process: Building Estimation Models,
Process Improvement and maturity
II[2]
3. Software Requirement
Analysis and Specification 8 hours
3.1 Software Requirements: Crucial Process Step, State of Practice, Need for SRS, Requirement Process
3.2 Problem Analysis: Analysis issues, Informal approach, Data Flow Diagrams, Data Dictionaries, Entity-Relationship diagrams, Structured Analysis, Object-Oriented Modeling, Other Modeling Approaches, Prototyping.
3.3 Requirements Specification:
Characteristics of an SRS, Components of an SRS, Specification Languages, Structure of a requirements document
3.4 Case Study
4. Software Project
Planning 8 hours
4.1
Cost
Estimation
4.2
Models:
Static, Single Variable Models, Static, Multivariable Models
4.3
The
Constructive Cost Model: Basic Model, International Model, Detailed COCOMO
Model
4.4
Software
Configuration Management Plans
4.5
Quality
Assurance Plans: Verification and Validation, Inspections and reviews
4.6
Project
Monitoring Plans: Time sheets, Reviews, Cost-Schedule-Milestone Graph, Earned
Value Method, Unit Development Folder
I [3]; II [4]
5. Software Design 10 hours
5.1
What
is Design: Conceptual and Technical Designs, Objectives of Design
5.2
Modularity:
Module Coupling, Module Cohesion
5.3
Strategy
of Design: Bottom-Up Design, Top-down Design, Hybrid Design
5.4
OO
Analysis and OO Design
5.5
Concepts:
classes and Objects, Relationships among Objects, Inheritance and Polymorphism,
Design Concepts
5.6
Design
Notation and Specification
5.7
Design
Methodology: Dynamic Modeling, Functional Modeling, Defining Internal Classes
and Operations, Optimize and Package
I [5]; II [5, 6]
6. Coding 10 hours
6.1 Programming Practice: Top-Down and Bottom-Up, Structured Programming, Information Hiding, Programming Style, Internal documentation, Law of Demeter for OO programs
6.2 Verification: Code
Reading, Static Analysis, Symbolic Execution, Proving Correctness, Code
Inspections or Reviews, Unit Test
6.3 Metrics: Size Measures,
Complexity Metrics, Style Metrics
II [8]
7. Software Testing 10 hours
7.1 Testing Process: Why should we test? Who
should do the Testing? What should we test?
7.2 Functional Testing: Boundary Value Analysis, Equivalence Class Testing, Decision Table based Testing, Cause Effect Graphing Technique
7.3 Structural Testing: Path Testing, Data
Flow Testing, Mutation Testing
7.4 Test Activities: Unit Testing,
Integration Testing, System Testing
7.5 Debugging: debugging Techniques,
Debugging Approaches, Debugging Tools
I [7]
8. Software Maintenance 6 hours
8.1
What is Software Maintenance: Categories of
Maintenance, Problems during Maintenance, Potential solutions of maintenance
Problems
8.2
The Maintenance Process: Program Understanding,
Generating Particular Maintenance Proposal, Ripple Effect, Modified Program
Testing, Maintainability
8.3
Maintenance Models: Quick-fix Model, Iterative
Enhancement Model, Reuse Oriented Model, Boehm’s Model
8.4
Reverse Engineering: Scope & Tasks, Levels of
Reverse Engineering, Reverse Engineering Tools
8.5
Software Re-engineering: Source Code Translation,
Program Restructuring
8.6
Estimation of Maintenance Costs: Belady & Lehman
Model, Boehm Model
8.7
Documentation: User Documentation, System
Documentation, Other classification schemes
I.
K K Aggarwal & Yogesh Singh, “Software Engineering”, New Age
International, 2001
II.
P. Jalote, “An Integrated approach to Software Engineering”, Narosa,
1991
1. Sommerville, “Software Engineering”, Addison Wesley, 1999
2. Shari Lawrence Pfleeger, “Software Engineering: Theory and
Practice”, PHI
3. Roger S Pressman, “Software Engineering: A Practitioner’s
Approach”, 5th Ed., Tata, McGrawHill
4. David Gustafson, Software Engineering: Theory and Problems”, Tata
McGraw-Hill