Software project planning and management: Basic concepts of life cycles models, milestone,
cost models, successive versions model, project structure, team structure. Empirical and
heuristic estimation techniques.
Requirement analysis. Specifications, algebraic axioms, regular expressions, decision tables,
event tables, transition tables, FS mechanism, petri nets.
Software design: Architectural and detailed design, abstraction, information hiding,
modularity, concurrency, etc, coupling and cohesion, data How diagrams, structure charts,
pseudo code, stepwise refinement, top-down and bottom-up programming.
Test plan and implementation issues-structured coding, recursion, documentation.
Modern programming language features: Typeless, strong type and pseudo strong type
checking, user defined data types, data encapsulation, generic facilities,’ concurrency
mechanism, object oriented concepts.
Program verification and validation. Unit testing, integration testing, acceptance testing,
Software maintenance: Source code metrics, Halstead’s effort equation, cyclomatic metric.
Reliability and software quality assurance.
Software cost estimation.