К недостаткам ООП относятся некоторое снижение производительности функционирования ПО (которое, однако, по мере роста производительности компьютеров становится все менее заметным) и высокие начальные затраты.
Концептуальной основой объектно-ориентированного анализа и проектирования ПО (ООАП) является объектная модель. Ее основные принципы (абстрагирование, инкапсуляция, модульность и иерархия) и понятия (объект, класс, атрибут, операция, интерфейс и др.) наиболее четко сформулированы Гради Бучем в его фундаментальной книге [2] и последующих работах.
Объектно-ориентированный подход не дает немедленной отдачи. Эффект от его применения начинает сказываться после разработки двух-трех проектов и накопления повторно используемых компонентов, отражающих типовые проектные решения в данной области. Переход организации на объектно-ориентированную технологию - это смена мировоззрения, а не просто изучение новых CASE-средств и языков программирования.
Под моделью ПО в общем случае понимается формализованное описание системы ПО на определенном уровне абстракции.
UML обладает механизмами расширения, предназначенными для того, чтобы разработчики могли адаптировать язык моделирования к своим конкретным нуждам, не меняя при этом его метамодель. Наличие механизмов расширения принципиально отличает UML от таких средств моделирования, как IDEF0, IDEF1X, IDEF3, DFD и ERM. Перечисленные языки моделирования можно определить как сильно типизированные (по аналогии с языками программирования), поскольку они не допускают произвольной интерпретации семантики элементов моделей. UML, допуская такую интерпретацию (в основном за счет стереотипов), является слабо типизированным языком.
Поскольку для многих компаний возрастает стратегическое значение программного обеспечения, индустрия озабочена поиском методов автоматизации производства программного обеспечения, повышения его качества, а также снижения стоимости и времени выпуска на рынок. Эти методы основаны на компонентных технологиях, визуальном программировании, использовании образцов (pattern) и инструментальных сред (framework). Важной проблемой является также поиск методов управления сложностью систем, поскольку увеличиваются не только охватываемые ими области, но и их масштабы. В частности, признается необходимость решения существующих архитектурных проблем такого рода, как физическое распределение, параллелизм, тиражирование данных, безопасность, сбалансированность нагрузки и отказоустойчивость. Наряду с этим, разработка Web, хотя она и упростила некоторые вещи, вместе с тем усугубила указанные архитектурные проблемы. Именно в связи с указанными потребностями был создан Унифицированный язык моделирования (UML).
Хотя UML предназначен для того, чтобы упростить и стандартизировать моделирование, он отнюдь не является всеобъемлющим языком. Благодаря этому достигается его гибкость.
Несмотря на свою молодость, UML уже прекрасно зарекомендовал себя на множестве успешных программных проектов. Средства автоматической кодогенерации позволяют переводить модели на языке UML в исходный код объектно-ориентированных языков программирования, что еще более ускоряет процесс разработки.
Практически все мировые производители CASE-средств заявили о реализации поддержки UML в ближайших версиях своих продуктов. Модели, разработанные в UML, позволяют значительно упростить процесс кодирования и направить усилия программистов непосредственно на реализацию системы.
Комментариев нет:
Отправить комментарий