| Специалност |
Приложна математика (бакалавър) - редовно
обучение |
| Форма
на оценяване |
Изпит |
| Дисциплината
се води от |
Катедра
Компютърна информатика |
| Анотация |
|
Курсът има за цел задълбочено изучаване на една от най-разпространените съвременни парадигми за проектирането и реализацията на софтуерни системи обектно-ориентирано програмиране. Съдържанието на курса обхваща:
- история на ОО парадигма и езиците за ООП и тяхното значението за развитие на софтуерното инженерство
- въведение в ОО парадигма, независимо от конкретен език за програмиране (обект, състояние, херметизация, съобщение, клас, наследяване, полиморфизъм).
- ОО анализ и проектиране (диаграми за ОО проектиране, ОО методика за проектиране на софтуерни системи)
- реализация на ОО парадигма в конкретен език за ООП)
- съпоставка с други ОО езици за програмиране (Object Pascal, JAVA, Smalltalk , Prolog ++)
Упражненията служат за илюстриране на лекционния материал и за задълбочаване и разширяване на знанията и уменията за практическо програмиране в средата на WINDOWS (на базата на MS Visual C++). С разглеждането и разработването на разнообразни примери за представяне и обработка на структури от данни, текстообработка, компютърна графика и др., студентите усвояват умения за свободно използуване и прилагане (в собствени приложения) на основните понятия, средства и методи на обектно-ориентираното и проектиране и програмиране. |
| Съдържание |
| 1. Съвременни направления в програмирането.
Стил на програмиране – определение и видове. |
| 2. Историческо развитие на езиците
за обектно-ориентирано програмиране (ООП).
Определение на ООП. |
| 3. ООП -
основни принципи и определение, предимства и приложение на ООП. |
| 4. Обектно-ориентирано проектиране. Диаграми и правила за обектно-ориентирано проектиране. Примери. |
| 5. Основни понятия в ООП – клас, екземпляр, състояние, поведение, херметизация, предаване на съобщения. |
| 6. ООП – създаване, инициализация и унищожаване на обекти, конструктори и деструктори. Примери. |
| 7. Концепцията наследяване в ООП – определение, класификации, проблеми, предимства.
Примери. Форми на наследяване. Проектиране на йерархия на наследяване.
|
| 8. Свързване на съобщения и методи, реализация в ЕП. Механизъм на „ранното“ свързване. Статично свързвани методи – определение и изпълнение. Примери. Механизъм на „късното“ свързване. Виртуални методи – определение и изпълнение. Примери.
|
| 9. Статично или динамично свързване и проектиране на йерархията на наследяване. Абстрактни класове – приложение. Абстрактни методи. Примери. |
| 10. Херметизация в ООП. Цели на херметизацията. Нива на херметизация и реализация в ООЕП. Херметизация и ОО проектиране. Предимства. |
| 11. Динамика на съществуването на обектите. Динамични обекти в езиците за ООП. Динамични екземпляри на обекти – създаване, инициализация, манипулиране, унищожаване. Реализационни проблеми в следствие на наследяването – резервиране на памет за обекти, съвместимост на типовете. Форми на съвместимост – сравнение на езиците за ООП. |
| 12. Полиморфизъм – интуитивен смисъл, определение, видове (полиморфизъм по отношение на поведението, чист и параметричен полиморфизъм). Полиморфен код, полиморфни променливи. Начини на реализация на полиморфизъм в ООЕП. |
| 13. Множествено наследяване. Разрешаване на проблемите при. ООЕП с множествено наследяване. |
| 14. Обработка на изключения. Обработка на изключения в ООЕП. Начини за дефиниране, разпознаване (прихващане) и отговаряне (манипулатори на изключения) на изключения. |