Опубликован: 23.10.2005 | Доступ: свободный | Студентов: 4094 / 202 | Оценка: 4.44 / 4.19 | Длительность: 33:04:00
Специальности: Программист
Лекция 1:

Объектно-ориентированная методология: Правильно применяйте метод

Лекция 1: 1234 || Лекция 2 >
Аннотация: В этих лекциях рассматривается методология объектной ориентации: как применять мощное множество концепций и технических приемов для получения преимуществ наших проектов и успешной их организации.

О методологии

Следующие несколько лекций с 1-й по 11-ю, составляющие часть этого курса, полностью посвящены методологии. В них исследуются проблемы, возникающие при создании ОО-проектов: как находить классы, как не делать ошибок при использовании наследования, роль и место ОО-анализа, фундаментальные идеи проектирования ("образцы"), как учить Методу, новый цикл жизни ПО. В результате, я надеюсь, придет понимание того, как наилучшим образом использовать преимущества ОО-техники, изученной в предыдущих лекциях курса "Основы объектно-ориентированного программирования".

Прежде чем изучать методологические правила, рассмотрим общую роль методологии в построении ПО. Это позволит определить метаправила, помогающие обоснованию методологических советов и выделению лучшего из того, что есть в литературе. Попутно мы изобретем таксономию правил и покажем, что некоторый вид правил предпочтительнее других. Наконец, мы покажем привлекательную и опасную роль метафор и отметим полезность скромности.

Методология: что и почему

Люди верят заповедям. Сражения за незыблемые "Принципы Истинной Веры" не являются чем-то новым и характерны не только для разработчиков ПО.

Программистская литература, включая ОО-ветвь, учитывает эти естественные желания и предлагает массу рецептов. В результате существует много полезных советов, наряду с еще большим количеством весьма спорных идей.

Следует помнить, что нет простых путей, ведущих к созданию качественного ПО. В предыдущих лекциях несколько раз звучала мысль, что конструирование ПО - это не тривиальная задача, каждый раз бросающая вызов разработчику. За последние годы наше понимание проблем существенно усовершенствовалось, о чем свидетельствует техника, представленная в этой книге. Одновременно выросли наши амбиции и желание создавать проекты больших размеров, работающие быстрее. В конечном счете проблемы остались такими же трудными, как и ранее.

По этим причинам важно понимать достоинства и ограничения, присущие методологии конструирования ПО. От последующих лекций этой книги, как и от всей обширной ОО-литературы, вы имеете право ожидать полезных советов и тех преимуществ, которые может дать опыт людей, создававших ПО. Но ни здесь, и нигде вы не найдете надежного и легкого пути создания качественного ПО.

Во многих отношениях построение ПО сродни построению математической теории. Математике, как и разработке ПО, можно учить на примерах и общих принципах, помогающих талантливым студентам достигать выдающихся результатов, но никакое обучение не может гарантировать успех в этой деятельности.

Конечно, не все так безнадежно. Если оставаться в пределах одной проблемной области, где уже существует множество образцов, то возможно определить пошаговый процесс, приводящий к успеху. Эта ситуация встречается в некоторых областях обработки данных, где методология выработала сравнительно небольшое число широко применимых схем решения. Как правило, в результате таких схем создаются тиражируемые программные комплексы или повторно используемые библиотеки программ. Но как только вы переходите к новой проблемной области, простые подходы перестают работать, и разработчик должен проявить все свое искусство. Методология может служить общим руководством благодаря примерам предыдущих удачных решений, а также примерам того, что не работает, - но не более того.

Пусть эти рассуждения остаются в подсознании как при чтении любой методологической литературы, где предлагаются разнообразные советы. Нет причин их полного отрицания - они могут быть полезными, - но отделяйте зерна от плевел.

Замечание к терминологии: в литературе некоторого сорта становится обычным говорить о специфических "методологиях", в действительности означающих методы, а чаще всего вариации одного общего ОО-метода. Эта практика может рассматриваться как пример вербального мыльного пузыря - это все равно, что называть ремонтника инженером по сопровождению, - опасность в том, что читатель может подозревать отсутствие содержания за красивой вывеской. В этой книге слово "методология" используется в единственном числе и несет общепринятый смысл - изучение методов, применение принципов умозаключений в научных и философских исследованиях, система методов.

Лекция 1: 1234 || Лекция 2 >