2. Язык UML. Руководство пользователя. Буч_ Рамбо_ Якобсон (2-е издание) (2006) (Язык UML. Руководство пользователя. Буч_ Рамбо_ Якобсон (2-е издание) (2006).pdf), страница 11
Описание файла
PDF-файл из архива "Язык UML. Руководство пользователя. Буч_ Рамбо_ Якобсон (2-е издание) (2006).pdf", который расположен в категории "". Всё это находится в предмете "(uml) методы анализа и проектирования по" из 11 семестр (3 семестр магистратуры), которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст 11 страницы из PDF
Болееподробноеего описаниеприводитсяв «Унифицированномпроцессеразработкипрограммного обеспечения»и в «The Rational UnifiedProcess».Язык UML в основном независим от организации процессаразработки, то есть не привязан к какому-либо конкретному циклупроизводства программного продукта, но для того, чтобы в максимальной степени воспользоваться его преимуществами, вам стоитрассмотреть процесс, который должен быть: управляемым вариантами использования; сконцентрированным на архитектуре; итеративным и пошаговым.Процесс, управляемый вариантами использования (use case driven) – означает, что варианты использования используются в качестве первичных рабочих продуктов, на основании которых определяется желательное поведение системы, проверяется и подтверждаетсяправильность выбранной системной архитектуры, производится тестирование и ведется общение заинтересованных лиц, имеющих отношение к проекту.Процесс, сконцентрированный на архитектуре (architecturecentric) – означает, что архитектура системы является первичнымрабочим продуктом для процесса концептуализации, конструирования, управления и развития системы во время ее разработки.Итеративный (iterative) процесс – тот, который включает управление потоком исполняемых версий системы.
Пошаговый (incremental) процесс подразумевает непрерывную интеграцию системной архитектуры в целях выпуска версий, каждая последующаяиз которых усовершенствована по сравнению с предыдущей. Процесс, являющийся итеративным и пошаговым, называется процессомс управляемым риском (risk-driven), поскольку при выпуске каждойновой версии (релиза) серьезное внимание уделяется выявлениюфакторов, представляющих наибольший риск для проекта в целом,и сведения их к минимуму.Такой управляемый вариантами использования, сконцентрированный на архитектуре, итеративный и пошаговый процесс можетбыть разбит на фазы.
Фаза – это отрезок времени между двумя важными контрольными точками (milestones) процесса, в которых достигаются четко определенные цели, завершено создание рабочихпродуктов и принимается решение о переходе к следующей фазе.Как показано на рис. 2.24, существуют четыре фазы жизненногоцикла разработки: начальная фаза, разработка, конструированиеи внедрение. На диаграмме поток работ изображен в контексте этихфаз, в результате чего демонстрируется различный уровень концентрации на выполнении его составных частей.Рис.
2.24. Жизненный цикл разработки программной системыНачальная фаза (inception) – первая фаза процесса, на протяжении которой начальная идея получает достаточное обоснование(по крайней мере, внутреннее) для обеспечения перехода к фазеразработки.Разработка (elaboration) – вторая фаза процесса, когда определяются требования к продукту и архитектуре. Системные требования могут включать в себя широкий диапазон формулировок –от общих предложений до детальных критериев оценки, каждыйиз которых посвящен описанию определенного функциональногоили нефункционального поведения системы и закладывает основыдля организации тестирования.Конструирование (construction) – третья фаза процесса, когдаисполняемый архитектурный прототип приобретает форму, в которой он может быть представлен пользователям.
На этом этапе требования к системе, особенно критерии оценки, постоянно пересматриваются в соответствии с изменяющимися потребностями. Такжевыделяются необходимые ресурсы для уменьшения рисков.Внедрение (transition) – четвертая фаза процесса, в ходе которойпрограммное обеспечение передается пользователям. Но процессразработки редко завершается на этом, потому что даже на даннойфазе система непрерывно совершенствуется: устраняются ошибкии добавляются не вошедшие в ранние версии новые функциональные возможности.Один элемент, который отличает процесс разработки в целом и присутствует во всех четырех фазах, – это итерация. Итерация – четкоопределенная последовательность действий с ясно сформулированным52Введение в UMLпланом и критериями оценки, приводящая к появлению новой версиисистемы, которая может быть выполнена, протестирована и оценена.Исполняемая система не обязана быть реализована внешне.
Поскольку итерация порождает исполняемый продукт, достигнутый прогресси уровень риска могут быть оценены заново после каждой такой итерации. Это значит, что жизненный цикл разработки программного обеспечения можно характеризовать как непрерывный поток исполняемыхверсий, реализующих архитектуру системы с промежуточной коррекцией для снижения потенциального риска. Это подчеркивает значениеархитектуры как важнейшего элемента программной системы и фокусирует UML на моделировании различных ее представлений.Глава 3. Здравствуй, мир!В этой главе:Классы и артефактыСтатические и динамические моделиВзаимодействие моделейРасширения UMLБрайан Керниган (Brian Kernighan) и Деннис Ричи (Dennis Ritchie),авторы языка программирования C, указывали, что «единственныйспособ изучить новый язык программирования – это писать на немпрограммы».
То же верно и в отношении UML. Единственный способ изучить этот язык – писать модели на нем.Первая программа, которую многие разработчики пишут, приступая к освоению нового языка программирования, – простейшая: онаделает немногим больше, чем просто печатает строку «Здравствуй,мир!» (Hello, World!) Вполне разумное начало, потому что, справившись с таким тривиальным приложением, вы наверняка захотите продолжать учиться. Кроме того, эта программа позволяет раскрыть всюнеобходимую инфраструктуру, необходимую для ее сборки и запуска.Итак, начнем изучение UML с моделирования «Здравствуй,мир!» Это почти самое простое применение языка, которое только можно себе представить. Однако простота обманчива: в основеприложения, которое мы сейчас создадим, лежат некоторые интересные механизмы, обеспечивающие его работу.Ключевые абстракцииАпплет на языке Java, выводящий строку «Здравствуй, мир!» вWebFбраузере, достаточно прост:import java.awt.Graphics;class HelloWorld extends java.applet.Applet {public void paint (Graphics g) {g.drawString(“Здравствуй, мир!”, 10, 10);}}54Классыобсуждаютсяв главах 4и 9.Здравствуй, мир!Первая строка кодаimport java.awt.Graphics;обеспечивает доступ к классу Graphics (Графика) для последующегокода.
Префикс java.awt. специфицирует пакет Java, в котором находится класс Graphics.Вторая строка кодаclass HelloWorld extends java.applet.Applet {представляет новый класс по имени HelloWorld и указывает, что он является потомком класса Applet, находящегося в пакете java.applet.Следующие три строки кода:public void paint (Graphics g) {g.drawString(“Здравствуй, мир!”, 10, 10);}объявляют операцию по имени paint, реализация которой вызываетдругую операцию– drawString (выводСтроки), отвечающую за выводстроки «Здравствуй, мир!» по заданным координатам.
В обычнойобъектноFориентированной манере drawString является операциейобъекта, переданного в параметре g, тип которого – класс Graphics.Моделирование этого приложения на UML достаточно просто.Как показывает рис. 3.1, вы можете представить класс HelloWorld графически в виде прямоугольной пиктограммы. Его операция paint(рисование) показана здесь же, причем ее формальные параметрыопущены, а реализация указана в присоединенном примечании.Рис. 3.1.
Ключевые абстракции HelloWorldНа заметку. UML не является визуальным языком программирования, хотя, как видно по рисунку, он позволяет (но не требует) обеспечить тесную связь с разными языками программирования, такими как Java. UML позволяет трансформировать модели в код и обратно – из кода в модель. Некоторыедетали (например, математические выражения) при этом лучшевыразить на текстовом языке программирования, между темкак другие (например, иерархию классов) – визуализироватьграфически на UML.Ключевые абстракции55Эта диаграмма классов передает основную суть приложения«Здравствуй, мир!», но в то же время оставляет без внимания множество вещей. Как специфицирует приведенный выше код, в приложении участвуют два других класса – Applet (Апплет) и Graphics(Графика), причем они используются разными способами.
КлассApplet используется в качестве родительского для HelloWorld, а классGraphics используется в сигнатуре и реализации его операции print.Вы можете представить эти классы и их различные связи с классомHelloWorld на диаграмме классов, как показано на рис. 3.2.Рис.
3.2. Ближайшие соседи, окружающие HelloWorldСвязи обсужКлассы Applet и Graphics изображены в виде прямоугольныхдаютсяпиктограмм. Никакие операции для них не показаны, поэтому этив главах 5пиктограммы пусты. Линия с пустой стрелкой от HelloWorld к Appletи 10.представляет обобщение, которое в данном случае означает, чтоHelloWorld является дочерним по отношению к Applet. Пунктирнаялиния, напраленная от HelloWorld к Graphics, представляет связь зависимости, означающую, что HelloWorld использует Graphics.И это еще не вся структура, лежащая в основе HelloWorld. Если выизучите библиотеки Java, содержащие Applet и Graphics, то обнаружите,что оба этих класса являются частями более крупной иерархии. Просматривая только те классы, которые расширяет и реализует Applet, высможете нарисовать другую диаграмму классов, показанную на рис.