COMPUTER SCIENCE


Course Credits: 3 Units

Prerequisites: CMSC 128

CMSC 129 - Software Engineering II

Course Description

This course introduces students to the discipline of web programming including the methods and techniques used in web-based system development.

Course Learning Outcomes

After completion of the course, the student should be able to:

  1. Discuss the process for developing large software;
  2. Demonstrate approaches, techniques, or methods for creating high-level and detailed designs, hierarchical factoring of object systems;
  3. Develop verification plans and alternative solutions for the system; and
  4. Implement, test and validate a systems design.
Course Outline

UNIT 1. Design and Implementation

  1. Object-oriented design using the UML
  2. Design patterns
  3. Implementation issues
  4. Open-source development

UNIT 2. Software Testing

  1. Development testing
  2. Test-driven development
  3. Release testing
  4. User testing

UNIT 3. Software Evolution

  1. Evolution processes
  2. Legacy systems
  3. Software maintenance

UNIT 4. Dependable systems

  1. Dependability properties
  2. Sociotechnical systems
  3. Redundancy and diversity
  4. Dependable processes

UNIT 5. Reliability Engineering

  1. Availability and reliability
  2. Reliability requirements
  3. Fault-tolerant architectures
  4. Programming for reliability
  5. Reliability measurements

UNIT 6. Safety Engineering

  1. Safety-critical systems
  2. Safety requirements
  3. Safety engineering processes
  4. Safety cases

UNIT 7. Security Engineering

  1. Security and dependability
  2. Security and organizations
  3. Security requirements
  4. Secure systems design
  5. Security testing and assurance