Главная » Все файлы » Просмотр файлов из архивов » PDF-файлы » Дж. Арлоу, А. Нейштадт - UML 2 и Унифицированный процесс - Практический объектно-ориентированный анализ и проектирование

Дж. Арлоу, А. Нейштадт - UML 2 и Унифицированный процесс - Практический объектно-ориентированный анализ и проектирование, страница 85

PDF-файл Дж. Арлоу, А. Нейштадт - UML 2 и Унифицированный процесс - Практический объектно-ориентированный анализ и проектирование, страница 85 Объектно-ориентированный анализ и проектирование (53090): Книга - 7 семестрДж. Арлоу, А. Нейштадт - UML 2 и Унифицированный процесс - Практический объектно-ориентированный анализ и проектирование: Объектно-ориентированный ан2019-09-18СтудИзба

Описание файла

PDF-файл из архива "Дж. Арлоу, А. Нейштадт - UML 2 и Унифицированный процесс - Практический объектно-ориентированный анализ и проектирование", который расположен в категории "". Всё это находится в предмете "объектно-ориентированный анализ и проектирование" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Просмотр PDF-файла онлайн

Текст 85 страницы из PDF

20.17. Она была разработана с помощью инструUseCaseEditorCreateUseCaseSpecificationFromSchemaEditUseCaseSpecificationSyntaxHilightUseCaseSpecificationGenerateXMLUseCaseSpecificationAutoNumberUseCaseSpecificationUseCaseEngineerCreateActorSpecificationFromSchemaEditActorSpecificationSyntaxHilightActorSpecificationGenerateXMLActorSpecificationРис. 20.17. Модель прецедентов для системы UseCaseEditor20.8.

Пример реализации прецедента на этапе проектирования465Прецедент: CreateUseCaseSpecificationFromSchemaID: 1Краткое описание:Система создает спецификацию нового прецедента из схемы прецедента.Главные актеры:UseCaseEngineerВторостепенные актеры:Нет.Предусловия:1.

Существует схема прецедента.Основной поток:1. Прецедент начинается, когда UseCaseEngineer выбирает «create new use case».2. Система запрашивает имя прецедента.3. UseCaseEngineer вводит имя прецедента.4. Система создает новый прецедент из схемы прецедента.5. Система представляет новый прецедент для редактирования.Постусловия:1. Система создала новый прецедент.Альтернативные потоки:UseCaseAlreadyExistsUseCaseEngineerCancelsРис. 20.18. Описание прецедента CreateUseCaseSpecificationFromSchemaментального средства моделирования UML MagicDraw (www.magic+draw.com), поэтому иллюстрации немного отличаются от всех остальных иллюстраций этой книги.Основным прецедентом этой системы, вероятно, является CreateUseCaseSpecificationFromSchema (создать спецификацию прецедента по схеме).Он отражает назначение системы – предоставление возможности создания (и редактирования) описаний прецедентов на основании заранеесуществующей схемы.

Прецедент CreateUseCaseSpecificationFromSchemaпредставлен на рис. 20.18.Поскольку система очень проста, аналитическая модель не уточняласьдо очень глубокого уровня, и мы смогли быстро перейти к проектированию. Аналитическая диаграмма классов показана на рис. 20.19. Онаотражает наши исходные идеи о том, какие классы будут нужны.Как часть реализации прецедента на этапе анализа была создана аналитическая диаграмма последовательностей (рис. 20.20). Она иллюстрирует наше предположение о том, как система создает файл новогопрецедента из существующего файла схемы.Проектная модель классов представлена на рис. 20.21. Как видите,аналитическая диаграмма классов сильно отличается от проектной.Как упоминалось, это настолько простая система, что мы очень быстроперешли к проектированию, и основная работа по исследованию былапроведена в этом рабочем потоке.

Если бы система была более сложной,на определение требований и анализ понадобилось бы больше времени.466Глава 20. Реализация прецедента на этапе проектированияUseCaseEditor1useCases1..*useCaseModelDirectory : StringcreateUseCaseFromSchema()editUseCase()createActorFromSchema()editActor()syntaxHilight()autoNumber()1actors1..*ActorFileSUMRFileschema0..1fileName : StringschemaFileName : String0..*loadUseCaseFile()loadSchemaFile()saveUseCaseFile()UseCaseFileSchemaFileXMLRendererrenderUseCaseToXML()renderActorToXML()Рис. 20.19.

Аналитическая диаграмма классовРедактор прецедентов был исследовательским проектом, и мы не понимали понастоящему, чем он мог быть полезен, пока не провели несколько итераций и не получили некоторые предварительные исполняемые базовые версии архитектуры, с которыми можно было экспериментировать. Также мы не пытались предугадывать самые эффективные центральные механизмы для файлов SUMR – мы установилиих, когда создали первую итерацию системы.Приложение редактора прецедентов разрабатывалось на языке программирования Python, и все классы, имена которых начинаются с буквwx, являются классами библиотеки GUI wxPython (www.wxpython.org).sd CreateUseCaseFromSchema:UseCaseEditor:SchemaFile:UseCaseEngineernewUseCase( name )load()«create»save()edit()Рис.

20.20. Аналитическая диаграмма последовательностейname:UseCaseFile46720.8. Пример реализации прецедента на этапе проектированияwxFrameУровеньGUIUseCaseEditor!hilights : Dictionary!actorList : wxListCtrl!useCaseList : wxListCtrl!textControl : wxTextCtrl+__init__(parent : wxPySimpleApp, id : String, title : String, size : Point, style : int)#makeToolBar()#makeMenu()#connectEvents()#enableButtonsAndMenus( enabled : Boolean )#updateView()#update( event : wxEvent)#newActor( event : wxEvent)#newUseCase( event : wxEvent)#newUseCaseFromSchema( schemaName : String )#newAlternativeFlow( event : wxEvent)#newExtensionUseCase( event : wxEvent)#generateXML( event : wxEvent)#itemSelected( event : wxEvent)#openUseCaseModel( event : wxEvent)#save( event : wxEvent)#setFont( event : wxEvent)#getNewName( message : String, caption : String ) : String#autoNumber()#autoNumberSelected( event : wxEvent)#syntaxHilight()#hilightSelected( event : wxEvent)#findAIIAndHilight( regularExpression : String, hilight : wxTextAttr)#saveFile()#loadFile()1!useCaseModelУровеньприложе!ния1UseCaseModel!useCasePath : String!useCaseFileNames : Dictionary!actorFileNames : Dictionary!actorExtension : String = ".ac"!useCaseExtension : String = ".uc"+__init__()+setUseCasePath( useCasePath : String )+load()+getModelElement( name : String ) : SUMRUseCaseParser+getUseCaseNames() : String[]+getUseCaseFileName( name : String ) : String+getNewUseCaseFileName( name : String ) : String+getUseCase( name : String ) : SUMRUseCaseParser+newUseCaseFromSchema( schemaName : String,useCaseName : String ) : SUMRUseCaseParser+useCaseNameExists( name : String ) : Boolean+getActorNames() : String[]+getActorFileName( name : String ) : String+getNewActorFileName( name : String ) : String+getActor( name : String ) : SUMRUseCaseParser+newActorFromSchema( schemaName : String,actorName : String ) : SUMRUseCaseParser+namelsValid( name : String ) : Boolean+nameExists( name : String ) : Boolean+actorNameExists( name : String ) : BooleanSUMRToXMLRenderer!fileName : String!buffer : String[]!root : String+render( fileName : String )+saveAs( fileName : String )+save()+printOut()!clean( line : String )Рис.

20.21. Проектная модель классов1{dictionary}!actors0..*1SUMRUseCaseParser!includedUseCases : String[]!extensionPoints : String[]{dictionary}!useCases0..*+__init__( fileName : String )+getName(): String+getlD(): String+autoNumber()+deNumber()SUMRValidRleParser!schemaName : String!legalTags : Dictionary!illegalTags : Dictionary+__init__( fileName : String )+getMissingTags() : String[]+getExtraTags() : String[]AutoNumber+autoNumber( lines : String[] )+autoDeNumber( lines : String[] )!removeNumbers( line : String )!getlndent( line : String )+__init__()0..1!schema1SUMRFileParser!fileName : String!filePath : String!lines : String[]!tags : String[]!elements : Dictionary+__init__(fileName : String )+refresh()+saveAs( fileName : String )+save()+search( pattern : String )+getTagMultiplicity( tagName : String )+isTag() : Boolean468Глава 20.

Реализация прецедента на этапе проектированияЭто мощная межплатформенная библиотека GUI, основанная на wxWidgets (www.wxwidgets.org). Эти классы придерживаются другогостандарта присваивания имен: начинаются с маленькой буквы, а некак обычно с большой. Разные стандарты наименования в разработкепрограммного обеспечения сложились исторически.И наконец, давайте посмотрим на диаграмму последовательностей дляCreateUseCaseSpecificationFromSchema уровня проектирования (рис. 20.22).Эта диаграмма используется для иллюстрации центральных механизмов создания файла нового прецедента из существующего файла схемы. Эта диаграмма имеет важное значение, потому что данный механизм должен использоваться неизменно во всей системе. Можно убедиться в работоспособности нашего проекта – имеются все необходимые классы и операции для выполнения поставленных задач.Хотя в этом примере мы представили артефакты определения требований, анализа и проектирования последовательно, необходимо помнить,что UP является итеративным процессом и что наборы этих артефактовна самом деле создаются параллельно.

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

Что мы узналиРеализация прецедента на этапе проектирования – это на самом делерасширение реализации прецедента, созданной при анализе. Мы узнали следующее:• Деятельность UP Проектирование прецедента заключается в выявлении проектных классов, интерфейсов и компонентов, взаимодействие которых обеспечивает поведение, описанное прецедентом.• Проектные реализации прецедентов – это взаимодействия проектных объектов и классов, направленные на реализацию прецедента.Они включают:• проектные диаграммы взаимодействий – уточненные аналитические диаграммы взаимодействий;• проектные диаграммы классов – уточненные аналитическиедиаграммы классов.• Диаграммы взаимодействий могут использоваться в проектировании для моделирования центральных механизмов, таких как сохранение объектов; эти механизмы могут охватывать многие прецеденты.load()Рис. 20.22. Диаграмма последовательностей уровня проектированияобновить модель из фай!лов прецедентов на дискесохранить файлпрецедента на дискесоздать новыйпрецедентполучить имя файладля нового прецедентаsaveAs( newUseCaseFileName)setUseCaseName( newUseCaseName)SUMRFileParser(schemaFileName ):SUMRFileParsernewUseCaseFileName = getNewUseCaseFileName( newUseCaseName )newUseCaseFromSchema( schemaName, newUseCaseName )создать новыйпрецедент в моделиnewUseCaseFromSchema( "UseCase.sss" ):UseCaseModelnewllseCaseName = getNewName( "Enter use case name", "New use case name")newUseCase( event ):UseCaseEditorполучить имяпрецедентанажать кнопку“New use case”:UseCaseEngineer20.9.

Что мы узнали469470Глава 20. Реализация прецедента на этапе проектирования•••Моделирование параллелизма.• Используются активные классы и объекты.• Диаграммы последовательностей:• par – все операнды выполняются параллельно;• critical – операнд выполняется автоматически без прерываний.• Коммуникационные диаграммы:• порядковый номер дополняется меткой для обозначения потока управления.• Диаграммы деятельности:• ветвления;• объединения.Диаграммы взаимодействий подсистем показывают взаимодействия между разными частями системы на высоком уровне абстракции:• в них могут входить актеры, подсистемы, компоненты и классы;• части подсистем (например, предоставляемые интерфейсы) могутотображаться в прямоугольниках, примыкающих снизу к пиктограмме подсистемы.Временные диаграммы – моделируют временные ограничения:• очень полезны для моделирования аппаратных систем реального времени и встроенных систем;• время увеличивается вдоль горизонтальной оси слева направо;• линии жизни, состояния и условия располагаются по вертикали;• переходы между состояниями или условиями изображаются в виде графика;• можно показать временные ограничения и события;• компактная форма временной диаграммы делает акцент на относительном времени.21Конечные автоматы21.1.

План главыВ этой главе обсуждаются конечные автоматы – важное средство моделирования динамического поведения классификаторов.Глава начинается с введения в конечные автоматы (раздел 21.2), затемобсуждаются два типа конечных автоматов (раздел 21.2.1), автоматыи классы (раздел 21.2.2) и синтаксис конечных автоматов (раздел 21.4).Далее основное внимание уделяется базовым компонентам автоматов:состояниям (раздел 21.5), переходам (раздел 21.6) и событиям (раздел21.7).21.2.

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Нашёл ошибку?
Или хочешь предложить что-то улучшить на этой странице? Напиши об этом и получи бонус!
Бонус рассчитывается индивидуально в каждом случае и может быть в виде баллов или бесплатной услуги от студизбы.
Предложить исправление
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5138
Авторов
на СтудИзбе
443
Средний доход
с одного платного файла
Обучение Подробнее