SE. Software Engineering (30 core hours)

SE1. Software processes and metrics (core -- 6 hours)

  Software life-cycle and process models
  Software metrics (product and process metrics)
  Introduction to software standards and documentation
  Software quality assurance
  Configuration management and control
  Project planning and risk management
  Software estimation
  Software maintenance and re-engineering

SE2. Software requirements and specifications (core -- 6 hours)

  Requirements elicitation, review and acceptance
  Requirements modeling, analysis and specification
  Rapid prototyping
  Formal and executable specifications

SE3. Software design and implementation (core -- 6 hours)

  Using the requirements specification document
  Introduction to software architecture
  Object-oriented decomposition and design
  Functional decomposition and structured design
  Design experimentation and prototyping
  Detailed design and implementation
  Design reviews

SE4. Verification and validation (core -- 6 hours)

  Aspects of quality and their importance (reliability, correctness, etc.)
  Quality assurance techniques and the software development process
  Testing methods (acceptance, integration, unit; black box vs. white box testing)
  Coverage measures (line, condition, branch)
  Testing specialized classes of applications (real-time, embedded, database, web, GUI)
  Concepts of formal verification (assertions, invariants, pre- and post-conditions)
  Software testing management (test plan development, test case design, tracking, release engineering)

SE5. Software tools and environments (core -- 3 hours)

  History of development tools and environments; the significance of Unix
  Programming environments (integrated editors, compilers, interpreters, debuggers)
  Modeling tools (structured, object-oriented, database, and GUI modeling)
  Testing tools (test coverage, defect tracking, test management)
  Product management (version control, configuration management)
  Tool integration mechanisms (control integration, COM and CORBA, repositories)

SE6. Software project methodologies (core -- 3 hours)

  Team management
  Project planning
  Requirements engineering
  Design specification and review
  Product engineering
  Software quality assurance
  Software configuration management
  Documentation