2-software_engineering_design (Основы программной инженерии (по SWEBOOK)), страница 4

PDF-файл 2-software_engineering_design (Основы программной инженерии (по SWEBOOK)), страница 4 Основы программной инженерии (40495): Книга - 6 семестр2-software_engineering_design (Основы программной инженерии (по SWEBOOK)) - PDF, страница 4 (40495) - СтудИзба2019-05-12СтудИзба

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

Файл "2-software_engineering_design" внутри архива находится в папке "Основы программной инженерии (по SWEBOOK)". PDF-файл из архива "Основы программной инженерии (по SWEBOOK)", который расположен в категории "". Всё это находится в предмете "основы программной инженерии" из 6 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

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

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

Могут быть использованы для количественной оценки ожиданий вотношении различных аспектов конкретного дизайна, например, размера <проекта>, структуры (еесложности) или качества (например, в контексте требований, предъявляемых к производительности).Чаще всего, все метрики разделяют по двум категориям: функционально-ориентированные объектно-ориентированные5. Нотации проектирования (Software Design Notations)Нотация есть соглашение о представлении. Часто под нотацией подразумевают визуальное(графическое) представление.

Нотация может задаваться: стандартом; например, OMG UML – Unified Modeling Language, развиваемый консорциумомOMG (Object Management Group, http://www.omg.org);Copyright © Сергей Орлик, 2004-2010.http://swebok.sorlik.ru9Основы программной инженерии (по SWEBOK)Программная инженерия. Проектирование программного обеспечения.общепринятой практикой; например, в eXtreme Programming часто используются карточкифункциональной ответственности и связей класса - Class Responsibility Collaborator или CRCCard (CRC по свое природе является текстовой, то есть невизуальной нотацией);внутренним методом проектной команды (“будем рисовать и обозначать так...”).Определенные нотации используются на стадии концептуального проектирования, ряд нотацийориентирован на создание детального дизайна, многие могут использоваться на обеих стадиях.Кроме того, нотации чаще всего используют в контексте (выбор нотации может быть обусловлентаким контекстом) применяемой методологии или подхода (см.

6 “Software Design Strategies andMethods” данной области знаний). Ниже мы будем рассматривать нотации, исходя из описанияструктурного (статического) или поведенческого (динамического) представления.5.1 Структурные описания, статический взгляд (Structural Descriptions, static view)Следующие нотации, в основном (но, не всегда), являются графическими, описывая и представляяструктурные аспекты программного дизайна. Чаще всего они касаются основных компонент и связеймежду ними (статических связей, например, таких как отношения “один-ко-многим”).Языки описания архитектуры (Architecture description language, ADL): текстовые языки,часто – формальные, используемые для описания программной архитектуры в терминахкомпонентов и коннекторов (специализированных компонентов, реализующих нефункциональность, но обеспечивающих взаимосвязь функциональных компонентов междусобой и с “внешним миром”);Диаграммы классов и объектов (Class and object diagrams): используются дляпредставления набора классов и <статических> связей между ними (например,наследования);Диаграммы компонентов или компонентные диаграммы (Component diagrams): вопределенной степени аналогичны диаграммам классов, однако, в силу спецификиконцепции или понятия компонента*, обычно, представляются в другой визуальной форме;* здесь необходимо отметить различие в понятиях класса (или объекта) и компонента:компонент рассматривается как физически реализуемый элемент программногообеспечения, несущий <в определенной степени> самодостаточную логику и реализуемыйкак конгломерат интерфейса и его реализации (часто, в виде комплекса классов);Карточки <функциональной> ответственности и связей класса (Class responsibilitycollaborator card, CRC): используются для обозначения имени класса, его ответственности (тоесть, что он должен делать) и других сущностей (классов, компонентов, актѐров/ролей и т.п.),с которыми он связан; часто их называют карточками “класс-обязанность-кооперация”;Диаграммы развѐртывания (Deployment diagrams): используется для представления(физических) узлов, связей между ними и моделирования других физических аспектовсистемы;Диаграммы сущность-связь (Entity-relationship diagram, ERD или ER): используется дляпредставления концептуальной модели данных, сохраняемых в процессе работыинформационной системы;Языки описания/определения интерфейса (Interface Description Languages, IDL): языки,подобные языкам программирования, не включающие возможностей описания логикисистемы и предназначенные для определения интерфейсов программных компонентов (имѐни типов экспортируемых или публикуемых операций);Структурные диаграммы Джексона (Jackson structure diagrams): используются для описанияструктур данных в терминах последовательности, выбора и итераций (повторений);Структурные схемы (Structure charts): описываю структуру вызовов в программах (какоймодуль вызывает, кем и как вызываем).5.2 Поведенческие описания, динамический взгляд (Behavioral Descriptions, dynamic view)Следующие нотации и языки (часть из которых – графические, часть - текстовые) используются дляописания динамического поведения программных систем и их компонентов.

Многие из этих нотацийуспешно используются для проектирования деталей дизайна, но не только для этого.Copyright © Сергей Орлик, 2004-2010.http://swebok.sorlik.ru10Основы программной инженерии (по SWEBOK)Программная инженерия. Проектирование программного обеспечения.Диаграммы деятельности или операций (Activity diagrams): используются для описанияпотоков работ и управления;Диаграммы сотрудничества (Collaboration diagrams): показывают динамическоевзаимодействие, происходящее в группе объектов и уделяют особое внимание объектам,связям между ними и сообщениям, которыми обмениваются объекты посредством этихсвязей;Диаграммы потоков данных (Data flow diagrams, DFD): описывают потоки данных внутринабора процессов (не в терминах процессов операционной среды, но в понимании обменаинформацией в бизнес-контексте);Таблицы и диаграммы <принятия> решений (Decision tables and diagrams): используютсядля представления сложных комбинаций условий и действий (операций);Блок-схемы и структурированные блок-схемы (Flowcharts and structured flowcharts):применяются для представления потоков управления (контроля) и связанных операций;Диаграммы последовательности (Sequence diagrams): используются для показавзаимодействий внутри группы объектов с акцентом на временной последовательностисообщений/вызовов;Диаграммы перехода и карты состояний(State transition and statechart diagrams):применяются для описания потоков управления переходами между состояниями;Формальные языки спецификации (Formal specification languages): текстовые языки,использующие основные понятия из математики (например, множества) для строгого иабстрактного определения интерфейсов и поведения программных компонентов, часто втерминах пред- и пост-условий;Псевдокод и программные языки проектирования (Pseudocode and program designlanguages, PDL): языки, используемые для описания поведения процедур и методов, восновном на стадии детального проектирования; подобны структурным языкампрограммирования.6.

Стратегии и методы проектирования программного обеспечения (Software Design Startegiesand Methods)Существуют различные общие стратегии, помогающие в проведении работ по проектированию. Вотличие от общих стратегий, методы проектирования более специфичны и, в основном, предлагаюти предоставляют нотации (или наборы нотаций) для использования совместно с этими методами, атакже процессы, которым необходимо следовать в рамках используемого метода.Таким образом, методы в данном контексте это не просто некие “слабоформализованные” илипросто частные практические подходы или техники. Методы здесь являются более общимипонятиями, это - методологии, сконцентрированные на процессе (в частности, проектирования) ипредполагающие следование определенным правилам и соглашениям, в том числе – поиспользуемым выразительным средствам.

Такие методы полезны как инструмент систематизации(иногда, формализации) и передачи знаний в виде общего фреймворка (то есть комплексного наборапонятий, подходов, техник и инструментов) не только для отдельных специалистов, но для команд ипроектных групп программных проектов.6.1 Общие стратегии (General Strategies)Это обычно часто упоминаемые и общепринятые стратегии: “разделяй-и-властвуй” и пошаговое уточнение проектирование “сверху-вниз” и “снизу-вверх” абстракция данных и сокрытие информации итеративный и инкрементальный подход и другие...6.2 Функционально-ориентированное или структурное проектирование (Function-Oriented –Structured Design)Это один из классических методов проектирования, в котором декомпозиция сфокусирована наидентификации основных программных функций и, затем, детальной разработке и уточнении этихфункций “сверху-вниз”. Структурное проектирование, обычно, используется после проведенияCopyright © Сергей Орлик, 2004-2010.http://swebok.sorlik.ru11Основы программной инженерии (по SWEBOK)Программная инженерия.

Проектирование программного обеспечения.структурного анализа с применением диаграмм потоков данных и связанным описанием процессов.Исследователи предлагают различные стратегии и метафоры или подходы для трансформации DFDв программную архитектуру, представляемую в форме структурных схем. Например, сравниваяуправление и поведение с получаемым эффектом.6.3 Объектно-ориентированное проектирование (Object-Oriented Design)Представляет собой множество методов проектирования, базирующихся на концепции объектов.Данная область активно эволюционирует с середины 80-х годов, основываясь на понятиях объекта(сущности), метода (действия) и атрибута (характеристики).

Здесь главную роль играютполиморфизм и инкапсуляция, в то время, как в компонентно-ориентированном подходе большеезначение придается мета-информации, например, с применением технологии отражения (reflection).Хотя корни объектно-ориентированного проектирования лежат в абстракции данных (к которымдобавлены поведенческие характеристики), так называемый responsibility-driven design илипроектирование на основе <функциональной> ответственности по SWEBOK* может рассматриватьсякак альтернатива объектно-ориентированному проектированию.*С точки зрения автора книги, такое противопоставление – достаточно спорный вопрос, так какфункциональная ответственность столь же близка принципам современного объектноориентированного проектирования, сколь и абстракция данных. Это вопрос эволюционированиявзглядов и степени их консерватизма.6.4 Проектирование на основе структур данных (Data-Structure-Centered Design)В данном подходе фокус сконцентрирован в большей степени на структурах данных, которымиуправляет система, чем на функциях системы.

Инженеры по программному обеспечению частовначале описывают структуры данных входов (inputs) и выходов (outputs), а, затем, разрабатываютструктуру управления этими данными (или, например, их трансформации).6.5 Компонентное проектирование (Component-Based Design)Программные компоненты являются независимыми единицами, которые обладают однозначноопределенными (well-defined) интерфейсами и зависимостями (связями) и могут собираться иразвертываться независимо друг от друга.

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