Декомпозиция

15
Объектно- ориентированное программирование Лекция 2

Upload: constantin-kichinsky

Post on 20-Jun-2015

1.044 views

Category:

Technology


0 download

DESCRIPTION

Лекция Михаила Гуренкова по декомпозиции в рамках курса по ООП. Каф. Вычислительная математика и программирование, МАИ.

TRANSCRIPT

Page 1: Декомпозиция

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

Лекция 2

Page 2: Декомпозиция

План

1. Лабораторные работы

2. Требования к ПО

3. Декомпозиция

4. Заключение

5. Книги

Page 3: Декомпозиция

Лабораторные работы

Нужно:

— команда из 2—3 человек

— выбрать проект

— согласовать состав команды по почте: [email protected]

Page 4: Декомпозиция

Требования к проектам

1. Работа с данными (сложная обработка данных)

2. Нормальный пользовательский интерфейс

3. Использование системы управления версиями (SVN, VSS)

4. К концу семестра должен получиться прототип (объем проекта должен укладываться в рамки курса)

Page 5: Декомпозиция

Лабораторная работа №1

Когда: 2-го марта

Что нужно:— определиться с командой— идея проекта— архитектура (проект системы)— набросок пользовательского интерфейса— план работы над проектом (с указанием

сроков и исполнителей)

Page 6: Декомпозиция

Возможные темы для проектов

— Собственный Jabber-клиент

— Собственный twitter-клиент

— Собственный RSS-ридер

— Переводчик на основании нескольких интернет-сервисов

— Простой веб-браузер (html с простыми фиксированными стилями)

— Визуализатор MathML

— Визуализатор формул в формате TeX

Page 7: Декомпозиция

Требования к ПО

— простой текст, описывающий какие задачи должна решать программная система

Page 8: Декомпозиция

Декомпозиция

Для чего:

— постепенная разработка

— повторное использование кода

— модульный анализ (чем меньше объем, тем проще его понять)

— локализация изменений

— изолирование возникающих ошибок

Page 9: Декомпозиция

Пример

Page 10: Декомпозиция

Заключение 1

Декомпозиция позволяет:

— постепенная разработка

— повторное использование кода

— модульный анализ (чем меньше объем, тем проще его понять)

— локализация изменений

— изолирование возникающих ошибок

Page 11: Декомпозиция

Заключение 2

Распределение модулей по уровням:

— позволяет четко определить уровень абстракции каждого модуля

— позволяет избежать лишних зависимостей между модулями

Page 12: Декомпозиция

Заключение 3

Принцип ортогональности:

— каждый модуль выполняет только свою функцию

— исключено взаимодействие между объектами, не относящимися друг к другу

Page 13: Декомпозиция

C# и платформа .NET 3.0

C# with .NET 3.0

Эндрю Троелсен

http://www.ozon.ru/context/detail/id/3938065/

Page 14: Декомпозиция

Программист-прагматик

Эндрю Хант, Дэйв Томас

http://www.ozon.ru/context/detail/id/3353337/

Page 15: Декомпозиция