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

Post on 20-Jun-2015

1.044 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

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

Лекция 2

План

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

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

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

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

5. Книги

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

Нужно:

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

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

— согласовать состав команды по почте: michael@gurenkov.net

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Для чего:

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

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

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

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

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

Пример

Заключение 1

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

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

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

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

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

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

Заключение 2

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

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

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

Заключение 3

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

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

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

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

C# with .NET 3.0

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

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

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

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

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

top related