Object-oriented Design
Course Description
The course addresses the principles of object-oriented design based on development of domain model. The role of design in broader context of information system developement is defined, together with the process of creating domain model from analysis specification. Basic building blocks of domain model are described, with the illustration of design principles applicable in the development of the model.
General Competencies
Students are introduced to principles and techniques of object-oriented design and familiarized with the role of the design in the software development process. They will be able to practically apply the skills learned on the demonstration of concepts on a case study, and through individual seminars.
Learning Outcomes
- define basic priciples of object design
- apply principles of object design in implementing IT systems of medium complexity
- describe basic building blocks of domain driven design
- use basic building blocks of domain driven design
- describe object-relational mapping problem
- develop object-relational mapper with the use of NHibernate framework
- apply techniques of test driven development
- define advantages of agile approach in building IT systems
Forms of Teaching
Lectures
Classes are organized in two cycles. First is 7 weeks in duration with exam at the end, while the second is 6 weeks of classes with final exam at the end.
ExamsDuring classes there will be short ("blitz") tests
SeminarsStudent must independently devise and implement seminar that will present learned techniques of object design
Programming ExercisesStudent must solve three home work exercises.
Grading Method
Continuous Assessment | Exam | |||||
---|---|---|---|---|---|---|
Type | Threshold | Percent of Grade | Threshold | Percent of Grade | ||
Homeworks | 0 % | 15 % | 0 % | 10 % | ||
Quizzes | 0 % | 10 % | 0 % | 0 % | ||
Class participation | 0 % | 3 % | 0 % | 0 % | ||
Seminar/Project | 0 % | 20 % | 0 % | 20 % | ||
Attendance | 0 % | 2 % | 0 % | 0 % | ||
Mid Term Exam: Written | 0 % | 20 % | 0 % | |||
Final Exam: Written | 0 % | 30 % | ||||
Exam: Written | 0 % | 50 % | ||||
Exam: Oral | 20 % |
Week by Week Schedule
- Intro lecture. Importance of OO paradigm, interaction of object design with agile development
- Basic of object-oriented programming I - classes, abstractions, encapsulation
- Basic of object-oriented programming II - class relationships: aggregation/composition and inheritance, interfaces
- Introduction to object design - coupling and cohesion, design by contract, role of interface classes
- Principles of object design -Single Responsibility Principle, Open Closed Principle, Liskov Substitution Principle, KISS, YAGNI
- Role of object design in agile development
- Exams
- Exams
- Roles, responsibilities and collaborations - basic principles of creating quality object models
- Introduction to domain driven design - basic principles and building blocks (associations, entities, value objects)
- Domain driven design - services, repositories, factories and aggregates
- Introduction to test driven development
- Applying Mocel-View_Controller and Model-View-Presenter patterns for developing GUI over object model
- Introduction to object-relational mapping
- Using NHibernate framework for implementation of object-relational mapping
Study Programmes
University graduate
[FER2-HR] Computer Engineering - profile
Specialization Course
(1. semester)
(3. semester)
[FER2-HR] Computer Science - profile
Specialization Course
(1. semester)
(3. semester)
[FER2-HR] Information Processing - profile
Recommended elective courses
(3. semester)
[FER2-HR] Software Engineering and Information Systems - profile
Theoretical Course
(1. semester)
Literature
Lecturers
Associate Lecturers
For students
General
ID 34454
Winter semester
5 ECTS
L0 English Level
L1 e-Learning
45 Lectures
0 Seminar
0 Exercises
0 Laboratory exercises
0 Project laboratory
Grading System
85 Excellent
75 Very Good
65 Good
50 Acceptable