Методические указания к лабораторным работам №1 5 по дисциплине «Технология создания программных продуктов»




НазваниеМетодические указания к лабораторным работам №1 5 по дисциплине «Технология создания программных продуктов»
страница1/6
Дата публикации31.05.2013
Размер1.06 Mb.
ТипМетодические указания
shkolnie.ru > Информатика > Методические указания
  1   2   3   4   5   6


Министерство образования и науки, молодежи и спорта Украины
Севастопольский национальный технический

университет

МЕТОДИЧЕСКИЕ УКАЗАНИЯ
к лабораторным работам № 1 – 5

по дисциплине

«Технология создания программных продуктов»,

для студентов дневной формы обучения

направления 6.050101 – «Компьютерные науки»


Севастополь

2013
УДК 004.415.53

Методические указания к лабораторным работам по дисциплине «Технология создания программных продуктов» для студентов дневной формы обучения направления 6.050101 – «Компьютерные науки»/Сост. В. А. Строганов,

^ А. Ю. Дрозин – Севастополь: Изд-во СевНТУ, 2013. – 66 с.


Методические указания призваны обеспечить возможность выполнения студентами лабораторных работ по дисциплине «Технология создания программных продуктов».


Методические указания составлены в соответствии с требованиями программы дисциплины «Технология создания программных продуктов» для студентов направления 6.050101 и утверждены на заседании кафедры Информационных систем, протокол № от « » 2013 г.

Допущено учебно-методическим центром СевНТУ в качестве методических указаний.


Содержание
Общие положения......................................................................................................4

Лабораторная работа №1...........................................................................................5

Лабораторная работа №2..........................................................................................17

Лабораторная работа №3..........................................................................................25

Лабораторная работа №4..........................................................................................40

Лабораторная работа №5..........................................................................................46

Лабораторная работа №6..........................................................................................51

Лабораторная работа №7..........................................................................................58

Библиографический список......................................................................................66

^ Общие положения
Целью лабораторных работ является получения практических навыков модульного и интеграционного тестирования программного обеспечения, а также профилирования программного кода.

Данный раздел лабораторного практикума представляет собой цикл из шести лабораторных работ. В лабораторных работах № 4 и №  5 рассматриваются общие принципы модульного и интеграционного тестирования программного обеспечения. Лабораторная работа № 6 позволяет получить практические навыки модульного тестирования с использованием среды NUnit. В лабораторной работе № 7 рассматриваются основные принципы профилирования программного обеспечения на примере профилировщика EQATECProfiler. В лабораторной работе № 3 рассматриваются основные принципы работы с распределенными системами контроля версий, а также рассматриваются практические аспекты использования данных систем на примере Mercurial. Лабораторные работы № 1 и 2 посвящены использованию паттернов при объектно-ориентированном проектировании программных продуктов.

В качестве лабораторной установки используется персональный компьютер и программное обеспечение: среда разработки Microsoft Visual Studio, среда тестирования NUnit, профилировщик EQATECProfiler, а также распределенная система контроля версий Mercurial. Порядок работы со средой тестирования, профилировщиком и системой контроля версий подробно рассмотрен в разделах 2.2 работ № 3, № 6 и №7.

Время на выполнение лабораторных работ распределяется следующим образом: лабораторная работа № 1 – 2 часа, лабораторная работа № 2 – 2 часа, лабораторная работа № 3 – 2 часа, лабораторная работа № 4 – 3 часа, лабораторная работа № 5 – 4 часа, лабораторная работа № 6 – 2 часа, лабораторная работа № 7 – 2 часа. Варианты заданий выдаются преподавателем студенту лично.

Объем работы распределяется следующим образом: в ходе домашней самостоятельной подготовки студенты изучают необходимый теоретический материал. В ходе аудиторных занятий выполняется построение диаграмм классов (лабораторные работы №1 и №2), написание необходимых программных модулей, тестирование (работы № 4 – 6) и профилирование (работа № 7) программ, а также выполнение необходимых операций над репозиторием (работа № 3).

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

Лабораторная работа №1

^ Исследование способов применения структурных паттернов проектирования
1. Цель работы
Исследовать возможность использования структурных паттернов проектирования. Получить практические навыки применения структурных паттернов при объектно-ориентированном проектировании.
2. Основные положения
2.1. Паттерны проектирования
Паттерны (шаблоны) проектирования [3] представляют собой инструмент, который позволяет документировать опыт разработки объектно-ориентированных программ. В основе использования паттернов лежит следующая идея: при проектировании каждый проект не разрабатывается с нуля, а используется опыт предыдущих проектов. То есть паттерны проектирования упрощают повторное использование удачных проектных и архитектурных решений. Представление прошедших проверку временем методик в виде паттернов проектирования облегчает доступ к ним со стороны разработчиков новых систем.

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

Описание каждого паттерна принято разбивать на следующие разделы:

- Название и классификация паттерна. Название паттерна должно четко отражать его назначение. Классификация паттернов проводится в соответствии со схемой, которая будет рассмотрена ниже.

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

^ Известен также под именем. Другие распространенные названия паттерна, если таковые имеются.

Мотивация. Сценарий, иллюстрирующий задачу проектирования и то, как она решается данной структурой класса или объекта. Благодаря мотивации можно лучше понять последующее, более абстрактное описание паттерна.

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

Структура. Графическое представление классов в паттерне с использованием нотации, основанной на методике Object Modeling Technique (OMT). Могут использоваться также диаграммы взаимодействий для иллюстрации последовательностей запросов и отношений между объектами.

Участники. Классы или объекты, задействованные в данном паттерне проектирования, и их функции.

Отношения. Взаимодействие участников для выполнения своих функций.

Результаты. Насколько паттерн удовлетворяет поставленным требованиям? Результаты применения, компромиссы, на которые приходится идти. Какие аспекты поведения системы можно независимо изменять, используя данный паттерн?

Реализация. Сложности и так называемые подводные камни при реализации паттерна. Советы и рекомендуемые приемы. Есть ли у данного паттерна зависимость от языка программирования?

^ Пример кода программы. Фрагмент программного кода, иллюстрирующий вероятную реализацию на языках C++ или Smalltalk.

Известные применения. Возможности применения паттерна в реальных системах. Даются, по меньшей мере, два примера из различных областей.

Родственные паттерны. Связь других паттернов проектирования с данным. Важные различия. Использование данного паттерна в сочетании с другими.
^ 2.2. Порядок использования паттернов проектирования
1. Прочитать описание паттерна (см. ниже), чтобы получить о нем общее представление. Особое внимание обратить на разделы «Применимость» и «Результаты». Убедиться, что выбранный паттерн действительно подходит для решения данной задачи.

2. Изучить разделы описания паттерна «Структура», «Участники» и «Отношения». Детально проанализировать назначение упоминаемых в паттерне классов и объектов и то, как они взаимодействуют друг с другом.

3. Посмотреть на раздел «Пример кода», где приведен конкретный пример использования паттерна в программе. Изучение программного кода поможет понять, как нужно реализовывать паттерн.

4. Выбрать для участников паттерна подходящие имена. Имена участников паттерна обычно слишком абстрактны, чтобы употреблять их непосредственно в коде. Тем не менее, бывает полезно включить имя участника как имя в программе. Это помогает сделать паттерн более очевидным при реализации. Например, при использовании паттерна Стратегия в алгоритме размещения текста, классы могли бы называться SimpleLayoutStrategy или TeXLayoutStrategy.

5. Определить классы. Объявить их интерфейсы, установить отношения наследования и определить переменные экземпляра, которыми будут представлены данные объекты и ссылки на другие объекты. Выявить имеющиеся в вашем приложении классы, на которые паттерн оказывает влияние, и соответствующим образом модифицировать их.

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

7. Реализовать операции, которые выполняют обязанности и отвечают за отношения, определенные в паттерне. Советы о том, как это лучше сделать, можно найти в разделе «Реализация». Поможет и «Пример кода».
^ 2.3. Структурные паттерны
В структурных паттернах рассматривается вопрос о том, как из классов и объектов образуются более крупные структуры. Структурные паттерны уровня класса используют наследование для составления композиций из интерфейсов и реализаций. Простой пример – использование множественного наследования для объединения нескольких классов в один. В результате получается класс, обладающий свойствами всех своих родителей. Особенно полезен этот паттерн, когда нужно организовать совместную работу нескольких независимо разработанных библиотек.

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

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

Примером структурного паттерна уровня объектов является Компоновщик. Он описывает построение иерархии классов для двух видов объектов: примитивных и составных. Последние позволяют создавать произвольно сложные структуры из примитивных и других составных объектов.

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

Паттерн Приспособленец определяет структуру для совместного использования объектов. Владельцы разделяют объекты, по меньшей мере, по двум причинам: для достижения эффективности и непротиворечивости. Приспособленец акцентирует внимание на эффективности использования памяти. В приложениях, в которых участвует очень много объектов, должны снижаться накладные расходы на хранение. Значительной экономии можно добиться за счет разделения объектов вместо их дублирования. Но объект может быть разделяемым, только если его состояние не зависит от контекста. У объектов-приспособленцев такой зависимости нет. Любая дополнительная информация передается им по мере необходимости. В отсутствие контекстных зависимостей объекты-приспособленцы могут легко разделяться.

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

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

  1   2   3   4   5   6

Похожие:

Методические указания к лабораторным работам №1 5 по дисциплине «Технология создания программных продуктов» iconМетодические указания к лабораторным работам по дисциплине «Компьютерные Технологии»
Основы расчётов в системе mathcad: Методические указания к лабораторным работам – Набережные Челны: инэка, 2007, с
Методические указания к лабораторным работам №1 5 по дисциплине «Технология создания программных продуктов» iconМетодические указания к лабораторным работам по курсу «Метрология, стандартизация, сертификация»
Методические указания к лабораторным работам предназначены для дисциплины «Метрология, стандартизация, сертификация», изучаемой студентами...
Методические указания к лабораторным работам №1 5 по дисциплине «Технология создания программных продуктов» iconМетодические указания для лабораторных работ по дисциплине «Химия»
Методические указания к лабораторным работам по дисциплине «Химия». Екатеринбург, гоу впо «Рос гос проф пед университет», 2009. 43...
Методические указания к лабораторным работам №1 5 по дисциплине «Технология создания программных продуктов» iconМетодические указания к лабораторным работам Волгоград 2005
Машинно-ориентированные языки. Методические указания к лабораторным работам. /Сост. М. А. Кузнецов; Волгоград гос техн ун-т. Волгоград,...
Методические указания к лабораторным работам №1 5 по дисциплине «Технология создания программных продуктов» iconМетодические указания к лабораторным работам
В методических указаниях к лабораторным работам дополнительно рассматривается необходимый для их выполнения теоретический материал....
Методические указания к лабораторным работам №1 5 по дисциплине «Технология создания программных продуктов» iconМетодические указания к лабораторным работам
В методических указаниях к лабораторным работам дополнительно рассматривается необходимый для их выполнения теоретический материал....
Методические указания к лабораторным работам №1 5 по дисциплине «Технология создания программных продуктов» iconМетодические указания к лабораторным работам
В методических указаниях к лабораторным работам дополнительно рассматривается необходимый для их выполнения теоретический материал....
Методические указания к лабораторным работам №1 5 по дисциплине «Технология создания программных продуктов» iconМетодические указания к выполнению лабораторных работ №1 - №4 по...
Методические указания к лабораторным работам №1 — №4 по дисциплине “Основы теории марковских процессов”/ Сост. Ю. В. Доронина.  — Севастополь:...
Методические указания к лабораторным работам №1 5 по дисциплине «Технология создания программных продуктов» iconМетодические указания к лабораторным работам По дисциплине «Компьютерные технологии»
Расчет тепловых полей при обработке материалов концентрированным потоком энергии в среде mathcad
Методические указания к лабораторным работам №1 5 по дисциплине «Технология создания программных продуктов» iconМетодические указания и задания к лабораторным работам по курсу “Информатика...
Лабораторная работа № Создание базы данных индивидуального задания
Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2014
shkolnie.ru
Главная страница