ECE 658 - Fall 2017

ECE 658 - Component-Based Software Systems (CBSS)

Calendar Description

Building large-scale and complex software systems from available parts with the goal of increasing return on investment, decreasing time to market, and assuring quality and reliability. The course covers the basic software component concepts, overview of advanced topics on software components and component-based software engineering from research and practice.

Contents

  1. Component Concepts and Definitions
  2. Specification of Software Components
  3. Architectural Styles in CBSE
  4. Enterprise Styles/Patterns
  5. Component Models and Technologies
  6. Developing Software Components
  7. Model Transformations
  8. Component Based Development (CBD) Process
  9. Component Composition and Integration
  10. Testing Component-Based Systems
  11. The Evolution and Management of Component-Based Systems
  12. Quality Attributes and CBSE

Course Objectives

There is growing interest in the notion of software development through integrating of pre-existing software components. This course will expose the students to the concepts, methods, techniques, processes, and tools for engineering of component-based software systems. After taking the course, the students will be able to understand the issues of component-based software systems, understand the current outstanding problems, be familiar with the cutting edge solutions.

Course Assignment/Project

The course includes two assignments to be done by each student. The course also includes one project to be done by a group of two/three students. The emphasis of the project should be towards further learning of a particular topic in component-based software engineering through substantial implementation, evaluation of a system, or some combination of them.

Required Background

Undergraduate degree in software engineering or computer science or related degree with software development experience in object-oriented design and implementation.

Intended Audience

Graduate students interested or pursue research in software engineering.

References

Selection of papers from technical literature:

  • C. Szyperski, “Component Software - Beyond Object-Oriented Programming”
  • I. Crnkovic and M. Larsoon, “Building Reliable Component-Based Software Systems”
  • G.T. Heineman and W.T. Councill, “Component-Based Software Engineering”
  • Charles W. Kann, “Creating Components-Object Oriented, Concurrent, and Distributed Computing in Java”

Grading

Assignments (10%), Project Proposal (5%), Project Presentation (15%), Project Report (20%), and Final Exam (50%).

Lectures

Thursday 2:30 pm - 5:20 pm; STC 0040

Instructor

Ladan Tahvildari, EIT 4136, ladan.tahvildari@uwaterloo.ca

Please see the course website for more information.