Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Технологии разработки ПО. Лабораторный практикум

.pdf
Скачиваний:
0
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
№ 4484
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
«НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ ТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ «МИСиС»
МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РФ
ВЫСШЕГО ОБРАЗОВАНИЯ
ИНСТИТУТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ И КОМПЬЮТЕРНЫХ НАУК
Кафедра инфокоммуникационных технологий
А.В. Карпишук
Лабораторный практикум
Рекомендовано редакционно-издательским советом университета
Москва 2021
УДК 004.4 К20
Рецензент
канд. техн. наук, доц., доц. кафедры ФН-7 В.А. Румянцева
(МГТУ им. Н.Э. Баумана)
Карпишук А.В.
К20 Технологии разработки ПО : лаб. практикум / А.В. Кар-
пишук. – Москва : Издательский Дом НИТУ «МИСиС»,
2021. – 79 с.
Приведены лабораторные работы по всем темам дисциплины
«Технологии разработки ПО».
Практикум предназначен для студентов, обучающихся в бака­лавриате по направлениям 09.03.02 «Информационные системы и технологии», 09.03.03 «Прикладная информатика».
УДК 004.4
Карпишук А.В., 2021
НИТУ «МИСиС», 2021
ОГЛАВЛЕНИЕ
Введение ........................................................................ 4
Лабораторная работа № 1
«Расчет показателей масштабности» ................................. 5
Лабораторная работа № 2
«Определение трудозатрат на разработку» ........................ 17
Лабораторная работа № 3
«Разработка графических спецификаций» ....................... 26
Лабораторная работа № 4
«Определение связности класса» ..................................... 35
Лабораторная работа № 5
«Структурное тестирование» .......................................... 40
Лабораторная работа № 6
«Функциональное тестирование» .................................... 49
Лабораторная работа № 7
«Разработка интерфейса пользователя» ........................... 61
Заключение ................................................................. 69
Библиографический список ............................................ 70
Приложение 1.............................................................. 71
Приложение 2.............................................................. 78
3
ВВЕДЕНИЕ
Целью освоения дисциплины «Технологии разработки ПО»
является получение студентами знаний, умений и навыков, формирование профессиональных компетенций в области ана­лиза, проектирования, реализации, тестирования, отладки, внедрения и сопровождения программного обеспечения вычис­лительной техники.
Цикл лабораторных работ по дисциплине направлен на за­крепление знаний, полученных в лекционном курсе, и приоб­ретение навыков решения типовых задач, стоящих перед раз­работчиками сложных программных средств. Данное учебное пособие содержит описание методик решения таких задач, примеры выполнения и вопросы для самоконтроля. В прил. 2 приведены требования к оформлению отчетов.
4
Лабораторная работа № 1
«РАСЧЕТ ПОКАЗАТЕЛЕЙ
МАСШТАБНОСТИ»
1.1. Цель работы
Освоение методики определения масштабов программных средств и получение практических навыков в оценке произво­дительности и качества работы программиста.
1.2. Теоретический минимум
В оценке сроков и стоимости разработки программного проекта выделяют два основных этапа: оценивание размера программы и, опираясь на полученные данные, оценивание трудозатрат и стоимости. При этом трудоемкость разработки в рамках одного класса решаемых задач практически линейно зависит от масштаба проекта. Организации, сферой деятель­ности которых является разработка программ, имеют соб­ственные наработки и стандарты в методике определения тру­доемкости, опирающиеся на опыт выполнения предыдущих проектов и позволяющие оптимально распределить ресурсы. Важными параметрами в учете ресурсов являются произво­дительность и качество работы отдельных программистов или групп разработчиков, для оценки которых необходим расчет численных показателей (метрик) программного кода.
В данной лабораторной работе выполняются задачи расче­та размерно-ориентированных метрик программы и определе­ния индивидуальных показателей производительности и ка­чества работы программиста.
1.2.1. Метрика SLOC
К размерно-ориентированным метрикам относится метри­ка строки кода (source lines of code, SLOC) – совокупное коли­чество строк кода в модулях программы. Различают физиче- ские (physical) и логические (logical) строки кода. Физической строке соответствует одна строка листинга программы, логи­ческой строке соответствует, как правило, один оператор язы-
5
ка программирования. Поскольку один и тот же программный код, даже в рамках одного языка, может быть описан разным количеством физических строк, для оценки трудоемкости ис­пользуют логические строки кода.
При подсчете показателя SLOC в программах на языках C/C++, С# считаются:
1) операторы ветвления: if, else if, else,?, try, catch, switch;
2) операторы цикла: for, while, do…while. Инициализация, условие и инкремент в заголовке цикла for, фигурные скобки {}, ограничивающие тело цикла, а также закрывающий опера­тор цикла разделитель точка с запятой не считаются;
3) операторы перехода: return, break, goto, exit, continue, throw. Метки, используемые совместно с оператором goto, не считаются;
4) прочие операторы, оканчивающиеся точкой с запятой;
5) разделитель блоков: {}. Пара фигурных скобок считаются как один разделитель. Фигурные скобки, оканчивающиеся раз­делителем точка с запятой, не считаются. Фигурные скобки, ис- пользуемые в операторах ветвления и цикла, также не считаются;
6) директивы препроцессора.
Для того чтобы оценить масштаб проекта, модули которого написаны на разных языках программирования, необходимо выбрать универсальную единицу измерения и привести к ней объемы этих модулей. Такой единицей может выступать чис­ло машинных команд в объектном коде после трансляции. Коэффициенты перевода зависят от компилятора, среды раз­работки и стиля программирования, и должны определяться для каждого разработчика или группы разработчиков на осно­вании опыта предыдущих проектов.
1.2.2. Метрики Холстеда
Еще одной группой размерно-ориентированных метрик яв­ляются метрики Холстеда (Halstead complexity measures), в ос- нове методики расчета которых лежат четыре измеряемые ха­рактеристики программы:
– число уникальных операторов программы, включая
h
1
символы-разделители, имена процедур и знаки операций (сло­варь операторов);
6
h2 – число уникальных операндов программы (словарь опе-
рандов);
– общее число операторов в программе;
N
1
– общее число операндов в программе.
N
2
При определении этих характеристик руководствуются сле­дующими правилами.
1. Все переменные и константы считаются операндами.
2. Глобальные переменные и константы, используемые в разных модулях программы, считаются множественными вхож­дениями одного операнда.
3. Локальные переменные с одинаковыми именами в раз­ных функциях (методах) считаются уникальными операн­дами.
4. Циклические конструкции, например do {…} while (), while () {…}, for () {…}, управляющие конструкции, например if () {…}, if () {…} else {…}, и т.д., считаются операторами.
5. В управляющей конструкции switch () {case:…}, ключе­вое слово switch и все вхождения case считаются операторами.
6. Зарезервированные ключевые слова, такие как return, default, continue, break, sizeof и т.д., считаются операторами.
7. Вызовы функций и методов считаются операторами.
8. Знаки арифметических, логических и поразрядных опе­раций, скобки, запятые и разделители считаются операторами.
9. Оператор перехода goto считается оператором, а связан­ная с ним метка – операндом.
10. В обращениях к элементам массива, имя массива и ин­декс считаются операндами, а квадратные скобки – оператором.
11. В обращениях к полям (свойствам, данным-членам) структур или объектов имя экземпляра структуры (объекта) и имя поля считаются операндами, а разделяющий их опера­тор доступа – оператором. Поля, имеющие одинаковые имена, но принадлежащие разным типам структур или разным клас­сам, считаются уникальными операндами.
12. Комментарии, типы данных, объявления идентифика­торов, функций и методов, а также директивы препроцессора в расчетах не учитываются.
На основании подсчетов операторов и операндов, вычисля-
ют следующие метрики.
7
Словарь программы (program vocabulary, h) – суммарное
12
.h=h +h
12
.NN N= +
1 21 2 22
.log logN∧=h +h⋅h ⋅h
2
lo .gVN= h
12
2
.
2
N
D =
h
h
.E VD=
количество уникальных операторов и операндов в программе:
Длина программы (program length, N) – суммарное количе-
ство операторов и операндов в программе:
Оценочная длина программы (estimated program length, ∧N) –
ожидаемая сумма операторов и операндов в программе:
Для стилистически корректного кода расхождение вели­чин длины и оценочной длины программы не превышает, как правило, 10 %.
Объем программы (program volume, V) – размер реализации алгоритма вне зависимости от конкретного языка программи­рования:
Сложность программы (program difficulty, D) – мера слож­ности написания (и понимания) программного кода:
Трудоемкость написания программы (program effort, E) – суммарное количество усилий, затрачиваемое на написание программы:
Прогноз времени реализации (time required to program, T) – оценка времени (в часах), необходимого для написания про­граммы:
8
64 0.80
E
T =
0
.
300
V
B =
к
.
SLOC
PPT=
Число ошибок,
внесенных и обнаруженных на этапе
100 %
Общее число ошибок, внесенных на э апе
.
т
DDE =
к
уд
.
C
C
SLOC
=
Прогноз числа ошибок (тumber of delivered bugs, B) – оцен­ка потенциального количества ошибок, допущенных при реа­лизации кода:
1.2.3. Параметры производительности и качества работы программиста
После завершения всех этапов разработки программы у ру­ководителя проекта набирается достаточно информации для оценки эффективности отдельных разработчиков. В данной ра­боте будем использовать следующие измеряемые параметры.
Производительность работы программиста (programmer productivity, PP) – отношение количества строк в коде (SLOC)
ко времени, затраченному на его разработку (T
):
к
Эффективность обнаружения ошибок (defect detection ef- ficiency, DDE) – отношение количества ошибок, внесенных и
обнаруженных в течение одного этапа разработки, к общему числу ошибок, внесенных на данном этапе:
Удельная стоимость кода (Суд)отношение финансовых затрат на разработку кода (C
) к количеству строк в нем:
к
9
1.3. Порядок выполнения работы
Работа выполняется в пять этапов: анализ, проектирование, кодирование, тестирование и расчет метрик. Для каждого этапа, кроме последнего, необходимо фиксировать время выполнения этапа и количество обнаруженных ошибок, заполняя табл. 1.1.
Таблица 1.1
Этап Время, ч
Анализ X X Проектирование X Кодирование Тестирование
анализа проектирования кодирования
Выявлено ошибок этапа
Этап анализа:
– получить у преподавателя свой вариант задания; – осмыслить суть задачи, при необходимости задать пре-
подавателю уточняющие вопросы;
– выявить функциональные требования к программе; – определить формат входных и выходных данных.
Этап проектирования:
– разработать алгоритм решения задачи; – определить типы и структуры хранения данных; – определить перечень подключаемых библиотек.
Этап кодирования:
– создать проект в среде разработки программ; – осуществить кодирование модулей; – скомпилировать исполняемый файл.
Этап тестирования:
– разработать тестовые наборы данных и условия запуска, позволяющие проверить работы программы на соответствие функциональным требованиям;
– осуществить прогон программы по всем тестовым набо- рам, фиксируя результаты тестирования;
– в случае обнаружения критической ошибки, препятству- ющей выполнению тестов (зависание программы, необработан­ное исключение), устранить причину ошибки и продолжить тестирование.
10
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]