6. Software Engineering Principles


6. Software Engineering Principles

6.1 Software Process

  • Software Lifecycle Models

  • Risk-Driven Approaches

  • Phases of Software Development Lifecycle


6.2 Software Project Management

  • Relationship of Project Management to Lifecycle

  • Project Planning and Scheduling

  • Project Control and Organization

  • Risk Management in Software Projects

  • Cost Models

  • Configuration Management and Version Control

  • Quality Assurance

  • Software Metrics


6.3 Software Requirements

  • Requirements Analysis

  • Requirements Solicitation

  • Analysis Tools

  • Requirements Definition

  • Requirements Specification

  • Static and Dynamic Specifications

  • Requirements Review


6.4 Software Design

  • Design for Reuse

  • Design for Change

  • Design Notations

  • Design Evaluation and Validation


6.5 Software Project Implementation

  • Programming Standards and Procedures

  • Modularity and Data Abstraction

  • Static Analysis

  • Unit Testing, Integration Testing, Regression Testing

  • Tools for Testing

  • Fault Tolerance


6.6 Software Maintenance

  • Nature of Software Maintenance

  • Maintenance Problems

  • Planning for Maintenance


6.7 Software Cost Estimation

  • Cost Estimation Techniques

  • Constructive Cost Model (COCOMO)


6.8 Tools and Environments for Software Engineering

  • Role of Programming Paradigms

  • Process Maturity and Improvement

  • ISO Standards for Software Engineering

  • SEI-CMM (Software Engineering Institute – Capability Maturity Model)

  • CASE Tools (Computer-Aided Software Engineering)