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
- Component Concepts and Definitions
- Specification of Software Components
- Architectural Styles in CBSE
- Enterprise Styles/Patterns
- Component Models and Technologies: .NET and J2EE Enterprise Services
- Developing Software Components
- Model Transformations
- Component Based Development (CBD) Process
- Component Composition and Integration
- Testing Component-Based Systems
- The Evolution and Management of Component-Based Systems
- 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:
Wednesday
11:30am-2:20pm;
EIT
3141
Instructor:
Ladan
Tahvildari,
DC2524,
ext
36093,
ladan.tahvildari@uwaterloo.ca