This module will help the student in learning various factors & metrics involved in software development process.
Software Engineering Fundamentals: Software, Problem Domain, Software Engineering Challenges.
The Software Process: Software Processes (processes, projects & products, component), Characteristics of Software Processes.
Software Development Process Models: Waterfall Model, Prototyping, Iterative Enhancement Model, Spiral Model. Introduction to Agile Model: Principles, Steps, Various Agile Process Models.
Software Requirement Analysis & Specification: Need, Characteristics & Components. Introduction to Requirements Modeling: Data Flow Diagram and Use Cases.
Introduction to Metrics: Function Point, Line of Code (LOC) and KLOC.
Software Project Planning: Cost Estimation- Uncertainties in Cost Estimation, Building Cost Estimation Models, On Size Estimation, COCOMO Model. Project Scheduling: Average Duration Estimation, Project Scheduling & Milestones. Quality Assurance Plans: Verification & Validation, Inspection & Reviews.
Design Engineering: Design Process & Design Quality, Design Concepts (abstraction, architecture, patterns, modularity, information hiding, functional independence, refinement, refactoring, and design classes), The Design Model (data design elements, architectural design elements, interface design elements, component-level design elements, deployment-level design elements).
Testing Strategies & Tactics: A strategic approach to software testing, Strategic issues, Software testing fundamentals, Test characteristics, Test Strategies for conventional software: Unit Testing, Integration testing, Validation Testing, System testing, Black-Box testing, White Box testing. The art of debugging (process & strategies)
Software Reliability: Measures of Reliability & Availability, Software Safety.
Maintenance and Reengineering: Introduction to: Software Maintenance, Software Supportability, Reengineering, Reverse Engineering, Restructuring, and Forward Engineering.