Файл: Практическая работа 1 Анализ предметной области по Цель работы.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 27.03.2024

Просмотров: 9

Скачиваний: 0

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.


Если нельзя изобрести метод, чтобы определить, отвечает ли программное обеспечение определенному требованию, то это требование следует исключить или пересмотреть.

ж) Модифицируемой;

Спецификация требований к ПО является модифицируемой, если и только, если ее структура и стиль таковы, что любые изменения требований могут быть выполнены легко, полностью и непротиворечивым образом при сохранении структуры и стиля. Как правило, модифицируемость требует, чтобы спецификация требований:

1) Имела связанную и легкую в использовании структуру с оглавлением, алфавитным указателем и явно выраженными перекрестными ссылками;

2) Не была избыточной (то есть, одно и то же требование не должно появляться в спецификации требований более чем в одном месте);

3) Выражала каждое требование раздельно, не смешивая его с другими требованиями.

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

з) Отслеживаемой.

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

  1. Обратная отслеживаемость (то есть, к предыдущим стадиям разработки).

Зависит от каждого требования, которое в явном виде ссылается на его источник в более ранних документах.

  1. Прямая отслеживаемость (то есть, ко всем документы, порождаемым спецификацией требований.

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

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

Задание.

  1. Оформить внешнюю спецификацию к задаче.

  2. Составить в виде блок-схемы алгоритм решения задачи.

  3. Создать программу решения задачи на любом алгоритмическом языке программирования.

  4. Отладить программу.

  5. Составить отчет по практической работе.

Отчет по практической работе должен включать:

  1. Внешнюю спецификацию.

  2. Алгоритм решения задачи.

  3. Текст программы на языке программирования.

  4. Набор тестов для отладки программы.


Задача: Составить алгоритм и написать программу нахождения экстремального значения и/или его порядкового номера для заданных одномерных массивов (A[N], B[M], где N и M – размер массивов).

Варианты индивидуальных заданий.

              1. Определить наименьшую среди сумм , (K=1,.., N) соответствующий номер K.

              2. Определить две наибольшие по абсолютной величине разности Ai-Ai-1, где i=2..N, и соответствующие значения индекса i.

              3. Определить наибольшее из отношений , где i=1,...,N и соответствующий индекс i.

              4. Определить наименьшее и наибольшее значения разности Ai - BN-i+1, где i=1..N, и соответствующий индекс i.

              5. Определить наибольшую среди сумм , , (K=1,..,N) и соответствующий номер K.

              6. Определить два наименьших из значений , (K=1,..,M) и соответствующие номера K.

              7. Определить наименьшее из значений , (K=1,..,N) и соответствующий номер K.

              8. Определить наименьшую среди сумм , , (K=1,..,N) и соответствующий номер K.

              9. Определить наибольшее из произведений , .

              10. Определить наибольшее из произведений и соответствующий номер K.

              11. Определить наименьшее среди произведений , (K=1,..,M) и соответствующий номер K.

              12. Определить наименьшую среди сумм и , (K=1,..,N) и соответствующий номер K.

              13. Определить два наибольших из абсолютных значений , , (K=1,..,M) и соответствующие номера K.

              14. Определить наименьшее из значений , (K=1,.., M) и соответствующий номер K.

              15. Определить наибольшее по абсолютной величине из отношений ,(K=1,..,N) и соответствующий номер K.

              16. Определить наименьшее из значений , (i=1,.., N) и соответствующий индекс i.

              17. Определить два наибольших из произведений , (K=1,…,N) и соответствующий номер K.

              18. Определить наименьшее из значений , (i=1,.., N) и номер соответствующего индекса i.

              19. Определить наибольшее среди произведений , (K=1,..,M) и соответствующий номер K.

              20. Определить наименьшее из значений , , (K=1,..,M) и соответствующий номер K.

              21. Определить два наибольших из произведений , (i=1,.., N) и соответствующие значения индекса i.

              22. Определить наименьшее по абсолютной величине из значений и , (K=1,..,N) и соответствующие номера K.

              23. Определить наибольшее по абсолютной величине из значений , (K=1,..,N), и соответствующее значение K.

              24. Определить два наименьших по абсолютной величине из значений , (K=1,..,M) и соответствующее значение K.

              25. Определить наименьшее и наибольшее из произведений , (K=1,..,N) и соответствующие значения K.




Практическая работа №3

«Построение архитектуры программного средства»



Цель: освоение навыка определения будущей архитектуры программного комплекса.

Задание: построить схему архитектуры проектируемого ПО.

+Рекомендуемая литература: конспект лекций.

Этапы выполнения.

Определить архитектуру разрабатываемого программного средства.

Описать взаимосвязи и взаимодействия частей системы.

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

«Изучение работы в системе контроля версий»
Цель работы: получить навыки использования систем контроля версий при разработке программного обеспечения.
 Задание 

1 Создайте репозиторий на локальном компьютере для системы контроля версий Mercurial c использованием графической оболочки TortoiseHg.

2 Создайте тестовый проект на любом знакомом языке программирования.

3 Для тестового проекта выполните команды системы контроля версий Mercurial для:

- добавления файла в репозиторий;

- удаления файла из репозитория;

- создания коммитов;

- создания отдельных веток в репозитории.

 

Теоретический материал

Установка системы контроля версий

 Последнюю стабильную версию графической оболочки TortoiseHg, можно скачать с репозитория проектов Source Forge по ссылке [4]. Процесс установки стандартный для MS Windows. Отдельно ядро системы контроля версий Mercurial устанавливать не нужно, посколько оно интегрировано в TortoiseHg.

 Создание репозитория

 Для того чтобы начать управлять историей изменений какого-либо файла, необходимо создать репозиторий, где эти изменения будут хранится. Для этого следует нажать правой кнопкой мыши на папке, вызвав контекстное меню, и выполнить команду TortoiseHg — «Create a repository here».



Рисунок 1 – контекстное меню TortoiseHg при создании репозитория

После выполнения этой команды, внутри выбранной папки, появится папка с именем .hg, в которой будут храниться все отмеченные версии файлов. При этом следует заметить, что репозиторий всегда будет создаваться внутри выбранной папки.


Далее необходимо указать, для каких именно файлов будет храниться история изменений, т.е. внести их в репозиторий.

Для того чтобы создать первую, начальную версию проекта, необходимо вызвать контекстное меню на папке с репозиторием и выполнить команду TortoiseHg — «Commit».



Рисунок 2 – Контекстное меню TortoiseHg для папки с репозиторием
 Следует заметить, что команда Commit, становится доступной из контекстного меню, только после создания репозитория. Далее на экране должно появится окно, показанное на рисунке 3. Здесь необходимо отметить все или конкретные файлы, по которым будем отслеживать изменения. Также, нужно ввести имя для сохраняемой версии. Затем необходимо нажать кнопку Commit, и первая версия проекта будет сохранена.

Комманда Commit (одно из значений в английском — фиксировать), является основной при работе с Mercurial. То есть после того как кто-либо внес какие-либо серьезные изменения, или просто завершил очередной этап работы, необходимо зафиксировать изменения, в виде следующей ветки проекта.



Рисунок 3 Окно фиксации изменений в TortoiseHg

 

Внесение изменений

 

Далее, внесем несколько незначительных изменений в один из файлов файлов. Прежде чем зафиксировать следующий этап работы над проектом, можно проследить, какие именно изменения были внесены после сохранения последней версии. Для этого, из контекстного меню, нужно выполнить команду: TortoiseHg — «VisualDiff».

Окно разделено на две области, левая область отображает прежний вариант файла, правая - измененный. Здесь можно внимательно проанализировать внесенные изменения, и если нужно отменить их, с помощью команды «Undo Changes», доступной все по тому же контекстному меню.



Рисунок 4 – Окно отображения разницы между файлами TortoiseHg

 

Если изменения внесены правильно, то можно выполнить команду «Commit», и сохранить вторую версию проекта. После этого можно посмотреть историю версий проекта, по команде TortoiseHg — «View Changelog».


Рисунок 5 – Окно отображения истории версий TortoiseHG
Здесь можно увидеть все отмеченные этапы разработки, список измененных файлов и внесенных в них изменений на каждом этапе. Этапы нумеруются с нуля.


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

Практическая работа №5

«Проектирование модулей ПО»



Цель работы. Освоить процесс проектирования модулей программного обеспечения.
Задание.

  1. Описать этапы проектирования модулей программы.

  2. Составить в виде блок-схемы алгоритм решения задачи.

  3. Составить отчет по практической работе.


Отчет по практической работе должен включать:

  1. Алгоритм решения задачи.

  2. Набор тестов для отладки программы.


Задача. Составить алгоритм решения задачи, приведенной ниже, с использованием структурных единиц: процедур и/или функций.
Варианты индивидуальных заданий.

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

              2. Даны два двумерных массива натуральных элементов. Размер исходных массивов не превосходит 10х10 элементов. Для каждого из массивов указать номера столбцов, содержащих только кратные 5 или 7 элементы. Если таких столбцов в массиве нет, то вывести соответствующее сообщение. Проверку столбца на наличие указанных элементов оформить в виде процедуры с передачей в нее всех элементов текущего столбца.

              3. Даны пять одномерных массива вещественных элементов. Размер каждого массива не превосходит 100 элементов. Для каждого из массивов определить, составляют ли его элементы знакочередующуюся последовательность. Если да, то указать порядковый номер такого массива, в противном случае вывести отрицательный ответ. Проверку массива на выполнение условия оформить в виде процедуры с передачей в нее всех элементов рассматриваемого массива.

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

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

              6. Даны пять одномерных массива вещественных элементов. Размер каждого массива не превосходит 100 элементов. Для каждого из массивов определить, составляют ли его элементы одного знака. Если да, то указать порядковый номер такого массива, в противном случае вывести отрицательный ответ. Проверку массива на выполнение условия оформить в виде процедуры с передачей в нее всех элементов рассматриваемого массива.

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

              8. Даны пять одномерных массива символьных (только латинские буквы) элементов. Размер каждого массива не превосходит 100 элементов. Для каждого из массивов определить, чередуются ли в нем буквы строчные и прописные. Если да, то указать порядковый номер такого массива, в противном случае вывести отрицательный ответ. Проверку массива на выполнение условия оформить в виде процедуры с передачей в нее всех элементов рассматриваемого массива.

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

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

              11. Даны пять одномерных массива символьных (только латинские буквы) элементов. Размер каждого массива не превосходит 100 элементов. Для каждого из массивов определить, расположены ли в нем строчные буквы в алфавитном порядке. Если да, то указать порядковый номер такого массива, в противном случае вывести отрицательный ответ. Проверку массива на выполнение условия оформить в виде процедуры с передачей в нее всех элементов рассматриваемого массива.

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

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

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

              15. Даны пять одномерных массива символьных (только латинские буквы) элементов. Размер каждого массива не превосходит 100 элементов. Преобразовать все массивы так, чтобы все строчные буквы были расположены по алфавиту. При этом переставлять только строчные буквы, оставив прописные буквы на своих местах. Преобразование каждого массива оформить в виде процедуры с передачей в нее всех необходимых элементов. Если перестановка элементов не потребовалась, то есть исходные массивы удовлетворяют требуемому условию, то вывести соответствующее сообщение.

Смотрите также файлы