Overview
Introduction: Professional Software Development Attributes of good software, software engineering diversity, IEEE/ ACM code of software engineering ethics, case studies
Software Process & Agile Software Development
Software Process models: waterfall, incremental development, reuses oriented, Process activities; Coping with change, The rational Unified process. Agile methods, Plan-driven and agile Development, Extreme Programming, Agile project management, Scaling agile methods.
Requirements Engineering
Functional and non-functional requirements, The software requirements document, Requirements specification, Requirements engineering processes, Requirement elicitation and analysis, Requirements validation, Requirements management
Component-based software engineering
Components and component model, CBSE process, Component composition.
System Modeling, Architectural Design
Context models, Interaction models, Structural models, Behavioral models, Modeldriven engineering, Software architecture: the role of software architecture, architectural views, component and connector view, Architectural styles for C&C view, Documenting architectural design
Design and implementation
Design: Design concepts, Function oriented design, detailed design, verification, matrix (Complexity matrix for function oriented design)
Distributed Software engineering
Distributed system issues, Client-server computing, Architectural patterns for distributed systems, Software as a service.
Planning a software Project
Process planning, Effort estimation, Project scheduling and staffing, Software configuration management plan, Quality plan, Risk Management, Project monitoring plan.
Software Testing
Testing fundamentals, Black-box testing, White-box testing, Testing process