Слайд 2Основные положения
Программистская составляющая курса информатики
ОО проектирование и ОО программирование –основной метод современной
![Основные положения Программистская составляющая курса информатики ОО проектирование и ОО программирование –основной](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/436696/slide-1.jpg)
программной инженерии
Объектный подход. Когда начинать?
ОО подход и ОО язык.
Слайд 3ОО язык и среда. Три кандидата
Язык C# и среда Visual Studio .Net
Язык
![ОО язык и среда. Три кандидата Язык C# и среда Visual Studio](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/436696/slide-2.jpg)
Eiffel и среда Eiffel EnViSioN 2.0
Язык Visual Basic и среда Microsoft Office
Слайд 4Кандидаты. Достоинства и недостатки
C#. Достоинства
Перспективный язык разработки современных систем
Изначально объектный язык
Ориентирован на
![Кандидаты. Достоинства и недостатки C#. Достоинства Перспективный язык разработки современных систем Изначально](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/436696/slide-3.jpg)
компонентное программирование
Открытая многоязычная среда, облегчающая интеграцию.
С#. Недостатки
Не поддерживает всех возможностей объектного подхода
Нет учебников, ориентированных на начальный курс обучения
Слайд 5Eiffel
Достоинства
Тщательно спроектирован Бертраном Мейером. Не отягощен прошлым наследием.
Поддержан авторской книгой “Object-Oriented Software
![Eiffel Достоинства Тщательно спроектирован Бертраном Мейером. Не отягощен прошлым наследием. Поддержан авторской](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/436696/slide-4.jpg)
Construction”
На его основе автор читает начальный курс информатики в ETH, Цюрих.
Доступна академическая версия языка и среды EnViSioN 2.0 : www.eiffel.com
Недостатки
Менее популярен, как практический язык разработки
Слайд 6Офисное программирование
См. доклад на предыдущей конференции:
«ОФП и его роль в образовании»
http:/www.it-education.ru/archive/2003/reports/presentation/billig.ppt
![Офисное программирование См. доклад на предыдущей конференции: «ОФП и его роль в образовании» http:/www.it-education.ru/archive/2003/reports/presentation/billig.ppt](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/436696/slide-5.jpg)
Слайд 7О сути подхода. Основные понятия
Классы. Две ипостаси – Тип и Модуль
Встроенные классы
![О сути подхода. Основные понятия Классы. Две ипостаси – Тип и Модуль](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/436696/slide-6.jpg)
Семейства классов. Отношения. Клиенты и наследники
Повторное использование
Динамическое связывание. Полиморфизм.
Слайд 8Объектное проектирование
Абстрактные классы
Универсальные классы
Ограниченная универсальность
![Объектное проектирование Абстрактные классы Универсальные классы Ограниченная универсальность](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/436696/slide-7.jpg)
Слайд 9Проектирование по контракту
Качество программ и спецификации
Система как совокупность классов, связанных контрактами
Корректные программы
![Проектирование по контракту Качество программ и спецификации Система как совокупность классов, связанных](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/436696/slide-8.jpg)
и триады Хоара
Корректность класса
Определение: Корректность класса
Класс C корректен по отношению к своим утверждениям, если и только если:
С1. Для любого правильного множества аргументов xp процедуры создания p:
{ DefaultC and prep(xp)} Bodyp { postp(xp) and Inv}
С2. Для каждой экспортируемой программы r и для любого множества правильных аргументов xr:
{ prer(xr) and Inv} Bodyr { postr(xr) and Inv}
Слайд 10Исключительные ситуации. Когда контракт нарушается
Что такое исключительная ситуация по Мейеру?
Как обрабатывать исключительные
![Исключительные ситуации. Когда контракт нарушается Что такое исключительная ситуация по Мейеру? Как](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/436696/slide-9.jpg)
ситуации.
Два исхода – повторение и возврат управления вызывающей программе
Слайд 11Классы и события
Модель событий в C#
![Классы и события Модель событий в C#](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/436696/slide-10.jpg)
Слайд 12Детали C#
Указатели и автоматическая сборка мусора (Garbage Collector)
Ссылочные и значимые типы
Boxing и
![Детали C# Указатели и автоматическая сборка мусора (Garbage Collector) Ссылочные и значимые](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/436696/slide-11.jpg)
Unboxing
Иерархия классов и прародитель Object
Встроенные классы. Пример строковых классов – класс регулярных выражений
Структуры, интерфейсы, классы.
Наследование.
Слайд 13Эйфель. Детали
Факторы: корректность, устойчивость, расширяемость, повторное использование, совместимость, эффективность, переносимость, простота использования,
![Эйфель. Детали Факторы: корректность, устойчивость, расширяемость, повторное использование, совместимость, эффективность, переносимость, простота](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/436696/slide-12.jpg)
функциональность, своевременность.
Критерии (Метод и язык): Бесшовность, Классы (как модули, как типы), Утверждения, Механизм вычислений. Скрытие информации, Обработка исключений, Статическая типизация, Наследование, Переопределение, Полиморфизм, Динамическое связывание, Отложенные классы, Универсальность, Ограниченная универсальность. Управление памятью и сборка мусора.
Критерии (Реализация и окружение): Автоматическое обновление, Быстрое обновление, Сохраняемость, Документирование, Просмотр и поиск.
Критерии (Библиотеки): Базисные библиотеки, Графические и пользовательские интерфейсы
Слайд 145 критериев, 5 правил, % принципов
Метод проектирования, претендующий на звание «модульного» должен
![5 критериев, 5 правил, % принципов Метод проектирования, претендующий на звание «модульного»](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/436696/slide-13.jpg)
удовлетворять следующим критериям, правилам, принципам:
Критерии: Декомпозиции, Композиции, Понимаемости, Непрерывности, Защищенности
Правила: Прямое отображение, Минимум интерфейсов, Слабая связность, Явные интерфейсы, Скрытие информации
Принципы: Лингвистических единиц, Самодокументирование, Единый доступ, Открыт-Закрыт, Однозначный выбор.
Слайд 15Итоги
Одна цитата (из предисловия к русскому изданию книги Б. Мейера):
Слишком часто, объектно-ориентированные
![Итоги Одна цитата (из предисловия к русскому изданию книги Б. Мейера): Слишком](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/436696/slide-14.jpg)
механизмы использовались просто как некоторый способ обтесывания программы, а не как систематический подход ко всему процессу разработки программного продукта в бесшовной модели, покрывающей не только реализацию, но и этапы анализа, проектирования, сопровождения. Упор на качество компонентов должен быть особенно важен для российских читателей. Россия может поддерживать свое лидерство в глобальном оффшорном рынке только при условии представления точной и документированной гарантии качества, на самом высоком уровне сертификации для программных продуктов и компонентов, которые она производит.
Слайд 16Итоги
ОО Метод следует вводить в начальном курсе информатики с тем, чтобы он
![Итоги ОО Метод следует вводить в начальном курсе информатики с тем, чтобы](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/436696/slide-15.jpg)
стал основой во всем процессе обученийя инженерии программ.
Для программистов реальными кандидатами в поддержке ОО метода могут быть языки C# и Eiffel
Офисное программирование может быть положено в основу обучения студентов других специальностей.