Introduction to Software Engineering: The evolving role of software, Changing Nature of Software, legacy software, Software myths.
A Generic view of process: Software engineering- A layered technology, a process framework, The Capability Maturity Model Integration (CMMI), Process patterns, process assessment, personal and team process models.
Process models: The waterfall model, Incremental process models, Evolutionary process models, specialized process models, The Unified process.
Software Requirements: Functional and non-functional requirements, User requirements, System requirements, Interface specification, the software requirements document.
Requirements engineering process: Feasibility studies, Requirements elicitation and analysis, Requirements validation, Requirements management.
System models: Context Models, Behavioral models, Data models, Object models, structured methods.
Design Engineering: Design process and Design quality, Design concepts, the design model, pattern based software design.
Creating an architectural design: software architecture, Data design, Architectural styles and patterns, Architectural Design, assessing alternative architectural designs and mapping data flow into software architecture.
Modeling component-level design: Designing class-based components, conducting component-level design, object constraint language, designing conventional components.
Performing User interface design: Golden rules, User interface analysis and design, interface analysis, interface design steps and Design evaluation.
Testing Strategies: A strategic approach to software testing, test strategies for conventional software, Black-Box and White-Box testing, Validation testing, System testing, the art of Debugging.
Product metrics: Software Quality, Frame work for Product metrics, Metrics for Analysis Model, Metrics for Design Model, Metrics for source code, Metrics for testing, Metrics for maintenance.
Metrics for Process and Products: Software Measurement, Metrics for software quality.
Risk management: Reactive vs. Proactive Risk strategies, software risks, Risk identification, Risk projection, Risk refinement, RMMM, RMMM Plan.
Quality Management: Quality concepts, Software quality assurance, Software Reviews, Formal technical reviews, Statistical Software quality Assurance, Software reliability, The ISO 9000 quality standards.