Object- and Component-oriented Systems


Aim of the course

The course aims to present the principles, techniques and tools, for object- and component-oriented approach to software development, both in terms of systems analysis and design, as well as their implementation.

Lecture programme

Introduction to software engineering. Object-oriented paradigm in modeling. Requirements modeling. The units of abstraction (object, class) and their properties. Organization of model (packages). Linking, aggregation and composition. Generalization and inheritance. Reuse: inheritance of implementation and role delegation. Design patterns. Unit testing and integration, dummy (mock objects). The objectives and practice of the component-oriented technologies. Functional, market-oriented, and formal definitions of the component. Components and objects. Problems with inheritance. Contract specification policy. The issue of security in independently implemented components. Construction and characteristics of popular component platforms. 'Light' and 'heavy' components. Other techniques of code reuse: aspect programming.

Overview of the course elements

Laboratory classes allow to practice skills in the object-oriented design techniques and use of the component-oriented techniques using several simple and one complex design tasks.

Reading list

1. Brett D. McLaughlin, Gary Pollice, David West: Head First Object-Oriented Analysis and Design
(edycja polska)
2. Martin Fowler: UML Distilled (UML w kropelce)
3. Szyperski C. Oprogramowanie komponentowe
4. Crnkovic I. Larsson M Building Reliable Component-Based Software Systems
5. Wang A., Qian K. Component-oriented Programming

Copyright © 2010 Department of Computer Science   |   AGH University of Science and Technology   |   Created by Creative Bastards