Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
UML.doc
Скачиваний:
213
Добавлен:
10.05.2015
Размер:
2.54 Mб
Скачать

4. Объектно-ориентированное проектирование, основы uml

4.1 Значение моделирования

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

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

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

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

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

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

Проведение аналогии со строительством позволяет лучше понять работу над очень крупными программными проектами. При создании очень крупного объекта цена неудачи слишком высока, поэтому объект надо спроектировать тщательнейшим образом. Строительные организации скрупулезно разрабатывают и инспектируют свои планы. Все крупные здания создаются с большим запасом прочности; лучше заплатить на 10 % больше за более прочный материал, чем рисковать крушением небоскреба. Кроме того, большое внимание уделяется времени. При возведении Эмпайр Стейт Билдинг время прибытия каждого грузовика, поставлявшего материалы, задавалось с точностью до 15 минут. Если грузовик не прибывал в нужное время, задерживалась работа над всем проектом.

Моделирование - это устоявшаяся и повсеместно принятая инженерная практика. Архитектурные модели зданий создаются, чтобы помочь их будущим обита­телям во всех подробностях представить себе готовый продукт. Математические модели зданий позволяют учесть влияние сильного ветра или землетрясения. Электрические при­боры, от микропроцессоров до телефонных коммутаторов, также требуют моде­лирования для лучшего понимания системы и организаций общения с коллегами. Даже в кинематографии успех фильма невозможен без предварительно написан­ного сценария (тоже своеобразная форма модели). В социологии, экономике или менеджменте также прибегают к моделированию, которое позволяет проверить теории и испытать новые идеи с минимальным риском и затратами.

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

Модели строятся для того, чтобы лучше понимать разрабатываемую систему и позволяют решить четыре различных задачи:

  • визуализировать систему в ее текущем или желаемом состоянии;

  • определить структуру или поведение системы;

  • получить шаблон, позволяющий затем сконструировать систему;

  • документировать принимаемые решения, используя полученные модели.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]