CT41 Software
Engineering
Details
1.1 Evolution and historical aspects
1.2 Software Engineering Principles
1.3 Software product and process
1.4 Software process models
2.1 Requirements Engineering
2.2 Requirements Analysis
2.2.1 Domain analysis
2.2.2 Informal analysis
2.2.3 Prototyping
2.2.4 Structured Analysis (using DFD)
2.2.5 Object Oriented Analysis (using UML)
2.3 Requirements Specification
2.3.1 Software Requirement Specification
document (SRS document) - Characteristics and Components
2.3.2 Specification tools - Structured
English, Pre-Post conditions, Data Dictionary, Decision Tables
2.4 Requirements Validation
2.4.1 Reviews - Walkthroughs and Inspections
2.4.2 Automated Cross-Referencing
2.4.3 Constructing Scenarios
2.4.4 Prototyping
3.1 Modularity - Cohesion and Coupling
3.2 Design Strategies - Top-Down and
Bottom-Up
3.3 Structured Design (using Structure
Charts)
3.4 Object Oriented Design (using UML)
3.5 Software Design Document (SDS) -
Characteristics and Components
3.5.1 Architectural Design
3.5.2 Detailed Design
3.6 Design Verification - Design Reviews,
Automated Cross-Referencing
4.1 Coding strategies - Top-Down and
Bottom-Up
4.2 Structured programming
4.3 Object-oriented programming
4.4 Coding standards
4.5 Coding guidelines
4.6 Code Verification - Static analysis,
Symbolic execution, Code Walkthroughs, Code Inspections
5.1 Objectives, Goals, Principles,
Guidelines
5.2 Software Testing Techniques
5.2.1 Structural Testing - Statement, Branch,
Condition and Path Coverage, Basis Path Testing, Mutation Testing
5.2.2 Functional Testing - Equivalence
Partitioning, Boundary Value analysis, Cause-Effect Graphing Technique,
Comparison Testing
5.3 Software Testing Strategies
5.3.1 Unit Testing
5.3.2 Integration Testing
5.3.3 System Testing
5.3.4 Regression Testing
5.3.5 Validation Testing
5.4 Software Debugging
5.4.1 Debugging process
5.4.2 Debugging approaches
6.1 Maintenance process and models
6.2 Maintenance cost models
6.3 Software Reverse Engineering
6.4 Software Re-engineering
6.5 Software Configuration Management
7.1 Project Size Metrics - Lines of Code,
Function Point, Feature Point
7.2 Project Estimation Techniques
7.2.1
Empirical
techniques - Expert Judgment, Delphi-Cost Estimation
7.2.2
Heuristic
technique - COCOMO
7.2.3
Analytical
technique - Halstead Software Science
7.3 Project Scheduling
7.3.1
Critical
Path Method (CPM)
7.3.2
Project
Evaluation and Review Technique (PERT)
7.3.3
Project
Crashing
7.4 Software Reliability
7.4.1
Metrics
7.4.2
Time
Dependent models - Goel-Okumoto model, Jelenski Moranda model
7.4.3
Time
Independent models - Input domain model, Fault seeding model
1. Roger Pressman, Software Engineering: A
Practitioners approach, Sixth Edition, McGraw-Hill International Edition
2. Ian Sommerville,
Software Engineering, Seventh Edition, Pearson Education India
3. Carlo Ghezzi,
Mehdi Jazayeri and Dino Mandrioli, Fundamental of Software Engineering, Second
Edition, Pearson Education India
4. Richard Fairley,
Software Engineering Concepts, Tata McGraw-Hill
5. Dorathy Graham and Isabel Evans, Foundation of
Software Testing, Cengage Learning
6. James F. Peters and Witold
Pedrycz, Software Engineering: An Engineering
Approach, John Wiley and Sons
7. Edward Yourdon, Modern Structured
Analysis, Prentice Hall of India
8. Grady Booch,
James Rumbaugh and Ivar
Jacobson, The Unified Modeling Language: A User Guide, Pearson Education India
9. Pankaj Jalote, An
Integrated Approach to Software Engineering, Third Edition, Narosa
Publishing House
10. Rajib Mall, Fundamentals of Software
Engineering, Second Edition, Prentice-Hall India