Knowledge of object-oriented programming principles, core knowledge of software engineering, knowledge of UML models.
Course Enrolment Limitations
The course is also offered to the students of the fields other than those the course is directly associated with.
Fields of study the course is directly associated with
there are 23 fields of study the course is directly associated with, display
Understand object-oriented fundamentals that are used across all the levels of OO decomposition;
Ability to select and apply suitable formal models (UML, OCL) in various levels of decomposition;
Ability to select and apply suitable patters during a system decomposition;
Understand the term "software quality" in the context of code, object-oriented models, and software architectures; Application of tuning tactics for quality improvement;
At the end of the course, a student should be able to:
- explain fundamentals of object-oriented design and development;
- express semantic constraints on object-oriented models by means of Object Constraint Language;
- identify "bed smells" in code and apply suitable refactoring tactics;
- explain properties of analysis, design, and architectural patterns;
- apply analysis, design, and architectural patterns to system decomposition;
- describe properties and processes related to the development of component systems;
- explain qualitative aspects of software and describe their tuning tactics;
Object-oriented paradigm, object properties, principles
of abstraction and decomposition. Principles of OO analysis and design.
Models of classes, packages and components. Interface as contract. IDL, SWDL.
Refinement of UML semantics by means of stereotypes and OCL.
Software re-use, software patterns at various stages of software life cycle (analysis, design, architecture, coding).
Design patterns in detail.
Analysis patterns, Java patterns, anti-patterns.
Code refactoring („refactoring to patterns“).
Software architectures, architectural patterns.
Component systems. Qualitative attributes and their evaluation.
Object-oriented methods for software development, application of UML models in RUP.
Special methods and architectures: MDD, FDD, SOA, ...
Model-Driven Architecture (MDA), employing OCL in MDA.
ARLOW, Jim and Ila NEUSTADT. UML 2.0 and the unified process : practical object-oriented analysis and design. 2nd ed. Boston: Addison-Wesley, 2005. xxiii, 592. ISBN 9780321321275. info
Design patterns :elements of reusable object-oriented software. Edited by Erich Gamma. Reading, Mass.: Addison-Wesley, 1995. xv, 395 p. ISBN 0-201-63361-2. info
LARMAN, Craig. Applying UML and patterns :an introduction to object-oriented analysis and design. Upper Saddle River: Prentice Hall PTR, 1998. xix, 507 s. ISBN 0-13-748880-7. info
FOWLER, Martin. Analysis patterns reusable object models. Menlo Park: Addison-Wesley, 1997. xxi, 357 s. ISBN 0-201-89542-0. info
KERIEVSKY, Joshua. Refactoring to patterns. Boston: Addison-Wesley, 2005. xxvi, 367. ISBN 0321213351. info
Theory in the form of lecturer's presentations, practical examples as the part of theoretical presentations, class discussion, reading.
Written final exam (multiple choice test + practical UML modeling). Final assessment can be improved by solving small practical examples presented during lectures.