UNIT I – Introduction
1 Software engineering discipline – Introduction
2 Programs vs software products
3 Why study Software Engineering
4 Emergence of Software Engineering
5 Notable changes in software development
6 Computer systems engineering
7 Software life cycle models:
a Waterfall model
b Iterative waterfall model
c Prototyping model
d Evolutionary model
e Spiral model
f Comparison of life cycle models
UNIT II – Requirements & Design
1. Requirements analysis & specification: Gathering, Analysis, SRS (Software
Requirements Specification)
2. Software design principles: Good design, Cohesion, Coupling, Neat arrangement
3. Software design approaches: Object-oriented vs Function-oriented
UNIT III – Function-Oriented Design & UI
1. Function-oriented software design:
a SA/SD methodology
b Structured analysis, DFDs (Data Flow Diagrams)
c Structured design, Detailed design
2. User-interface design:
a Characteristics, Concepts, Types
b Component-based GUI
c User interface design methodology
UNIT IV – Coding, Testing & Quality
1 Coding: Principles, Practices
2 Code review
3 Testing: Unit, System, Integration
a Black-box testing
b White-box testing
4 Debugging
5 Program analysis tools
6 Software reliability & quality management:
a Statistical testing
b Quality definitions
c SEI CMM (Capability Maturity Model)
d PSP (Personal Software Process)
UNIT V – CASE Tools & Maintenance
1 CASE tools:
a Scope, Environment, Support in life cycle, Characteristics
b Second-generation tools, Architecture
2 Software maintenance:
a Characteristics
b Reverse engineering
c Process models
d Cost estimation