Владимир Биллигпрофессор кафедры информатики Тверского госуниверситетаVLADIMIR.BILLIG@TVERSU.RU

Содержание

Слайд 2

Основные положения

Программистская составляющая курса информатики
ОО проектирование и ОО программирование –основной метод современной

Основные положения Программистская составляющая курса информатики ОО проектирование и ОО программирование –основной
программной инженерии
Объектный подход. Когда начинать?
ОО подход и ОО язык.

Слайд 3

ОО язык и среда. Три кандидата

Язык C# и среда Visual Studio .Net
Язык

ОО язык и среда. Три кандидата Язык C# и среда Visual Studio
Eiffel и среда Eiffel EnViSioN 2.0
Язык Visual Basic и среда Microsoft Office

Слайд 4

Кандидаты. Достоинства и недостатки

C#. Достоинства
Перспективный язык разработки современных систем
Изначально объектный язык
Ориентирован на

Кандидаты. Достоинства и недостатки C#. Достоинства Перспективный язык разработки современных систем Изначально
компонентное программирование
Открытая многоязычная среда, облегчающая интеграцию.
С#. Недостатки
Не поддерживает всех возможностей объектного подхода
Нет учебников, ориентированных на начальный курс обучения

Слайд 5

Eiffel

Достоинства
Тщательно спроектирован Бертраном Мейером. Не отягощен прошлым наследием.
Поддержан авторской книгой “Object-Oriented Software

Eiffel Достоинства Тщательно спроектирован Бертраном Мейером. Не отягощен прошлым наследием. Поддержан авторской
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

Слайд 7

О сути подхода. Основные понятия

Классы. Две ипостаси – Тип и Модуль
Встроенные классы

О сути подхода. Основные понятия Классы. Две ипостаси – Тип и Модуль

Семейства классов. Отношения. Клиенты и наследники
Повторное использование
Динамическое связывание. Полиморфизм.

Слайд 8

Объектное проектирование

Абстрактные классы
Универсальные классы
Ограниченная универсальность

Объектное проектирование Абстрактные классы Универсальные классы Ограниченная универсальность

Слайд 9

Проектирование по контракту

Качество программ и спецификации
Система как совокупность классов, связанных контрактами
Корректные программы

Проектирование по контракту Качество программ и спецификации Система как совокупность классов, связанных
и триады Хоара
Корректность класса
Определение: Корректность класса
Класс 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

Исключительные ситуации. Когда контракт нарушается

Что такое исключительная ситуация по Мейеру?
Как обрабатывать исключительные

Исключительные ситуации. Когда контракт нарушается Что такое исключительная ситуация по Мейеру? Как
ситуации.
Два исхода – повторение и возврат управления вызывающей программе

Слайд 11

Классы и события

Модель событий в C#

Классы и события Модель событий в C#

Слайд 12

Детали C#

Указатели и автоматическая сборка мусора (Garbage Collector)
Ссылочные и значимые типы
Boxing и

Детали C# Указатели и автоматическая сборка мусора (Garbage Collector) Ссылочные и значимые
Unboxing
Иерархия классов и прародитель Object
Встроенные классы. Пример строковых классов – класс регулярных выражений
Структуры, интерфейсы, классы.
Наследование.

Слайд 13

Эйфель. Детали

Факторы: корректность, устойчивость, расширяемость, повторное использование, совместимость, эффективность, переносимость, простота использования,

Эйфель. Детали Факторы: корректность, устойчивость, расширяемость, повторное использование, совместимость, эффективность, переносимость, простота
функциональность, своевременность.
Критерии (Метод и язык): Бесшовность, Классы (как модули, как типы), Утверждения, Механизм вычислений. Скрытие информации, Обработка исключений, Статическая типизация, Наследование, Переопределение, Полиморфизм, Динамическое связывание, Отложенные классы, Универсальность, Ограниченная универсальность. Управление памятью и сборка мусора.
Критерии (Реализация и окружение): Автоматическое обновление, Быстрое обновление, Сохраняемость, Документирование, Просмотр и поиск.
Критерии (Библиотеки): Базисные библиотеки, Графические и пользовательские интерфейсы

Слайд 14

5 критериев, 5 правил, % принципов

Метод проектирования, претендующий на звание «модульного» должен

5 критериев, 5 правил, % принципов Метод проектирования, претендующий на звание «модульного»
удовлетворять следующим критериям, правилам, принципам:
Критерии: Декомпозиции, Композиции, Понимаемости, Непрерывности, Защищенности
Правила: Прямое отображение, Минимум интерфейсов, Слабая связность, Явные интерфейсы, Скрытие информации
Принципы: Лингвистических единиц, Самодокументирование, Единый доступ, Открыт-Закрыт, Однозначный выбор.

Слайд 15

Итоги

Одна цитата (из предисловия к русскому изданию книги Б. Мейера):
Слишком часто, объектно-ориентированные

Итоги Одна цитата (из предисловия к русскому изданию книги Б. Мейера): Слишком
механизмы использовались просто как некоторый способ обтесывания программы, а не как систематический подход ко всему процессу разработки программного продукта в бесшовной модели, покрывающей не только реализацию, но и этапы анализа, проектирования, сопровождения. Упор на качество компонентов должен быть особенно важен для российских читателей. Россия может поддерживать свое лидерство в глобальном оффшорном рынке только при условии представления точной и документированной гарантии качества, на самом высоком уровне сертификации для программных продуктов и компонентов, которые она производит.

Слайд 16

Итоги

ОО Метод следует вводить в начальном курсе информатики с тем, чтобы он

Итоги ОО Метод следует вводить в начальном курсе информатики с тем, чтобы
стал основой во всем процессе обученийя инженерии программ.
Для программистов реальными кандидатами в поддержке ОО метода могут быть языки C# и Eiffel
Офисное программирование может быть положено в основу обучения студентов других специальностей.
Имя файла: Владимир-Биллигпрофессор-кафедры-информатики-Тверского-госуниверситетаVLADIMIR.BILLIG@TVERSU.RU.pptx
Количество просмотров: 91
Количество скачиваний: 0