Aim of the course
The aim of the course is to introdude the principles, techniques and tools for object-oriented approach to software development, both in terms of systems analysis and design, as well as their implementation.
Basic concepts and principles of object-oriented approach. Modeling using CRC cards. Basic UML diagrams and their elements. A simple object-oriented analysis methodology. Object-oriented approach in software engineering, perspectives of modeling and object-oriented approach. Assumptions and elements of the structure of the UML specification. Units of abstraction (object, class) and their properties. Substitution and polymorphism. Organization of model - packages. Consistency and feedback, the design of flexible software. Linking, aggregation and composition, obtaining dependencies (links). Generalization and inheritance, rules and consequences of the mechanism of inheritance. Reuse, composition classes and the delegation of roles, problems and methods of multiple ineherence of implementation. Architectural and design patterns. Testing of object-oriented system, unit and integration testing, dummies. Criteria for assessing the quality of source code refactoring. Problems of persistence of object structures, object-relational mappings. Overview of object-oriented programming techniques and object-oriented languages.
Overview of the course elements
Laboratory classes allow to practice skills in the design and object-oriented programming, system testing techniques and the practical use of technologies that support software engineering. Subsequent lessons introduce some elements of engineering process using some simple design tasks.
1. Brett D. McLaughlin, Gary Pollice, David West: Head First Object-Oriented Analysis and Design (edycja polska), Helion 2008
2. Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides: Wzorce projektowe, Wydawnictwa Naukowo-Techniczne 2005
3. Martin Fowler: UML w kropelce, LTP Oficyna Wydawnicza 2005
4. Grady Booch, James Rumbaugh, Ivar Jacobson: UML - przewodnik użytkownika, Wydawnictwa Naukowo-Techniczne 2001
5. Kazimierz Subieta: Obiektowość w projektowaniu i bazach danych, Akademicka Oficyna Wydawnicza PLJ 1998