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

 

I [4]; II [3]

 

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 [8]

 

 

Text Books

 

I.       K K Aggarwal & Yogesh Singh, “Software Engineering”, New Age International, 2001

II.    P. Jalote, “An Integrated approach to Software Engineering”, Narosa, 1991

 

Reference Books

 

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