Object Modeling
Code | Completion | Credits | Range | Language |
---|---|---|---|---|
BIE-OMO | Z,ZK | 5 | 2+2 |
- Lecturer:
- Vojtěch Merunka (gar.)
- Tutor:
- Vojtěch Merunka (gar.)
- Supervisor:
- Department of Software Engineering
- Synopsis:
-
Students gain practical skills in the design of data objects for software applications, utilizing fundamental concepts - object, method, message, class, instance, set of objects. Students learn to use a subset of the UML notation, a visual modeling tool and a simplified object-oriented programming language (reduced to class and method definitions and data manipulation). Students understand the class and instance model, the prototype-based object model, and lambda calculus as a formal description of dynamic object behavior. Using a special modeling tool, students get acquainted with a simplified form of UML class diagrams.
- Requirements:
- Syllabus of lectures:
-
1. Introduction into the theoretical fundamentals of programming, lambda calculus.
2. Basics of object-oriented approach, notions of class, collection. Polymorphism. Inheritance and composition of objects.
3. Object-based calculation model. Methods and messages. Lambda expression as a method and as a standalone object. Introduction to Smalltalk.
4. Introduction to UML.
5. Object protocol. Implementation of attributes using composition and using methods.
6. Queries over sets of objects.
7. Example of a real-world project with data objects.
8. Object normalizing.
9. Structural design patterns. Behavioral design patterns.
10. Refactoring.
11. Changes to an object scheme. Object migration.
12. Object-oriented approach to modeling real-world processes. BORM.
13. Implementations of polymorphism, inheritance and composition in mixed object-oriented languages.
- Syllabus of tutorials:
-
1. Introduction to the modeling tool, practical exercises.
2. Introduction to the programming language, practical exercises, assignment of projects.
3. First checkpoint - problem specification, first version of data model, class description, attributes, methods, relationships among classes.
4. Working with data of ready-made problems.
5. Second checkpoint - model verification using data and queries.
6. Refactoring, normalizing, project consultations.
7. Third checkpoint - detailed test data and queries, resulting document.
- Study Objective:
-
The aim of the module is to explain the fundamentals of the object-oriented paradigm in software development, with emphasis on modeling of data objects. Even the best object-oriented programming language cannot ensure by itself that a design will meaningfully and efficiently exploit the object paradigm. Students are taught the data model design process exactly from this viewpoint. The module is not tied to a single language, the explained principles are applicable in most of today's pure or hybrid object-oriented programming languages. The language used is based on Smalltalk, with a simplification towards OCL, UML, and query languages in object databases. Knowledge gained in this module forms the basis for correct application of the object-oriented paradigm in the follow-up modules aimed at software engineering and databases.
- Study materials:
-
1. Britton, C., Doake, J. ''A Student Guide to Object-Oriented Development.'' Butterworth-Heinemann, 2004. ISBN 0750661232.
- Note:
- Time-table for winter semester 2011/2012:
- Time-table is not available yet
- Time-table for summer semester 2011/2012:
- Time-table is not available yet
- The course is a part of the following study plans:
-
- Information Systems and Management (Presented in English) (compulsory course of the specialization)
- Software Engineering (Presented in English) (compulsory course of the specialization)
- Informatics (Presented in English) (VO)