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

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

.pdf
Скачиваний:
0
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
Окончание табл. 2.3
Язык программирования SLOC / FP
HTML 34
Java 53
JavaScript 47
Perl 24 SQL 21
Visual Basic 42
VB.NET 52
Оценку срока (T) и стоимости (C) разработки кода можно получить по формулам:
T = SLOC / PP,
C = SLOC′ ⋅ С
уд
,
где PP – производительность работы программиста;
– удельная стоимость.
С
уд
2.3. Порядок выполнения работы
1. Получить у преподавателя свой вариант задания.
2. Определить границы приложения и выделить функцио-
нальные элементы.
3. Подсчитать элементы данных и определить ранги функ-
циональных элементов.
4. Рассчитать количество функциональных указателей.
5. Оценить размер программы, сроки и стоимость ее разра­ботки, взяв значения производительности и удельной стоимо­сти из результатов выполнения лабораторной работы № 1.
6. Заполнить табл. 2.4 результатами расчетов и оформить отчет о выполнении работы.
Таблица 2.4
Название параметра Обозначение Значение
Число функциональных указателей FP Оценка размера программы SLOC Оценка сроков разработки T Оценка стоимости разработки C
21
2.4. Пример выполнения расчетов
Произведем оценку программы «Студенческий офис», функ-
циональными требованиями к которой являются:
– ввод, хранение и вывод данных о студентах (ФИО, пол,
дата рождения, группа, размер стипендии);
– ввод преподавателями ведомостей с оценками; – хранение и вывод оценок студентов по дисциплинам, вы-
вод среднего балла индивидуально и по группе;
– взаимодействие с бухгалтерской программой для переда-
чи сведений об успеваемости и получения размера стипендии.
2.4.1. Определение границ приложения
и выделение функциональных элементов
Исходя из требований к программе, можно выделить сле-
дующие внешние по отношению к программе сущности:
– пользователь «сотрудник студенческого офиса»; – пользователь «преподаватель»; – внешняя программа «бухгалтерия».
Граница приложения будет проходить по графическому ин­терфейсу взаимодействия с пользователями и программному интерфейсу взаимодействия с внешней программой (рис. 2.2).
Рис. 2.2. Функциональные элементы программы
«Студенческий офис»
Различимы следующие файлы:
– внутренние логические файлы «студенты», «группы»,
«оценки»;
22
– внешний интерфейсный файл «стипендии».
Различимы следующие транзакции:
– внешние вводы «данные студента» и «ведомости»; – внешний вывод «успеваемость»; – внешние запросы «карточка студента», «карточка груп-
пы», «запрос стипендии».
2.4.2. Подсчет элементов данных
и определение рангов функциональных
элементов
Различимыми элементами данных во внутреннем логиче­ском файле «студенты» являются: «идентификатор студента», «фамилия», «имя», «отчество», «пол», «дата рождения», «раз­мер стипендии». Эти данные можно логически разделить на две группы: «персональные данные» и «финансовая информация». Таким образом, файл «студенты» имеет 7 элементов данных и 2 записи. Согласно табл. 2.1, такой файл имеет низкий ранг.
Различимыми элементами данных во внутреннем логиче­ском файле «группы» являются: «идентификатор группы», «название группы», «идентификатор студента». Все элементы являются частью одной записи. Таким образом, файл «груп­пы» имеет низкий ранг.
В файле «оценки» различимы элементы данных: «иденти­фикатор записи», «идентификатор студента», «дисциплина», «дата», «балл», образующие одну запись. Ранг файла – низкий.
Во внешнем интерфейсном файле «стипендии» различимы элементы данных: «минимальный балл», «величина стипен­дии», образующие одну запись. Ранг файла – низкий.
Внешний ввод «данные студента» оперирует элементами данных: «идентификатор студента», «фамилия», «имя», «от­чество», «пол», «дата рождения», «идентификатор группы», «название группы» и ссылается на два внутренних логических файла: «студенты» и «группы». Имеем восемь элементов дан­ных и две ссылки на файлы. Ранг внешнего ввода «данные сту­дента» по табл. 2.1 – средний.
Внешний ввод «ведомости» оперирует четырьмя элемента­ми данных: «идентификатор студента», «дисциплина», «дата»,
23
«балл» и изменяет один внутренний логический файл «оцен­ки». Ранг – низкий.
Внешний вывод «успеваемость» затрагивает три внутренних логических файла: «студенты», «группы» и «оценки» и опери­рует семью элементами данных: «идентификатор студента», «фамилия», «имя», «идентификатор группы», «название груп­пы», «балл по дисциплине», «средний балл». Ранг – средний.
Внешний запрос «карточка студента» выводит все данные, связанные со студентом, его успеваемостью и стипендией из трех внутренних логических файлов. Ранг – средний.
Ранг внешних запросов «карточка группы» и «запрос сти­пендии» – низкий.
2.4.3. Расчет количества функциональных указателей
По табл. 2.2 определяем весовые коэффициенты функцио-
нальных элементов и сводим результаты в табл. 2.5.
Таблица 2.5
Функциональный элемент Тип элемента Ранг Весовой коэффициент
«Студенты» ILF Низкий 7
«Группы» ILF Низкий 7 «Оценки» ILF Низкий 7
«Стипендии» EIF Низкий 5
«Данные студента» EI Средний 4
«Ведомости» EI Низкий 3
«Успеваемость» EO Средний 5
«Карточка студента» EQ Средний 4
«Карточка группы» EQ Низкий 3
«Запрос стипендии» EQ Низкий 3
Сумма транзакций и файлов с учетом весовых коэффици-
ентов
S = 7 3 + 5 2 + 4 2 + 3 3 = 48.
Из таблиц П1.1–П1.14 в прил. 1 выбираем те системные параметры, влияние которых оценивается выше нуля баллов и заполняем табл. 2.6.
24
Таблица 2.6
14
1
0,65 0,01 32,16.
i
i
FP S F
=

=⋅ +⋅ =

 
Системный параметр Оценка Обоснование Передача данных 1 Требуется обмен данными с бухгалтерией Эффективность работы
конечного пользователя
1 Подразумевается наличие меню и бумаж-
ной версии пользовательской докумен­тации
Определим итоговое количество функциональных указате-
лей:
Оценочный размер программы на языке C#, с учетом коэф-
фициента из табл. 2.3.
SLOC′ = 32,16 54 = 1737 строк.
Для оценки срока и стоимости разработки воспользуемся значениями производительности и удельной стоимости, полу­ченными в примере к лабораторной работе № 1:
T = SLOC / PP = 1737 / 56 = 31 ч,
C = SLOC′ ⋅ С
2.5. Вопросы для самоконтроля
1. В чем различие функциональных элементов «внешний
вывод» и «внешний запрос»?
2. Где по отношению к границе программы находится вну-
тренний логический файл?
3. Где по отношению к границе программы находится внеш-
ний интерфейсный файл?
4. Как связаны количество функциональных указателей и
количество строк кода?
5. Чем определяется ранг сложности функционального эле-
мента?
= 1737 17,86 = 31 023 руб.
уд
25
Лабораторная работа № 3
«РАЗРАБОТКА ГРАФИЧЕСКИХ
СПЕЦИФИКАЦИЙ»
3.1. Цель работы
Получение практических навыков в оформлении специфи­каций этапа анализа требований.
3.2. Теоретический минимум
Анализ требований к разрабатываемому программному обеспечению завершается разработкой спецификаций – фор­мализованного описания функций и ограничений программы, отвечающего требованиям полноты и точности.
Под полнотой подразумевается описание всех существенных для данной стадии проектирования функций и ограничений.
Под точностью подразумевается описание спецификаций в форме, исключающей неоднозначную трактовку.
Обеспечить соблюдение перечисленных требований позво­ляет только строго формализованная модель программного обе­спечения. В зависимости от подхода к разработке могут быть использованы различные модели и нотации.
В данной работе рассмотрены следующие виды диаграмм: ва- риантов использования, переходов состояний, потоков данных.
3.2.1. Диаграмма вариантов использования
Диаграмма вариантов использования (диаграмма преце­дентов, Use Case diagram) предназначена для определения
функциональных требований и позволяет наглядно описать предоставляемые программой сервисы. Основные элементы диаграммы приведены на рис. 3.1:
а) действующее лицо (actor) – внешняя по отношению к программе сущность, взаимодействующая с программой, или использующая ее сервисы;
б) вариант использования (прецедент, Use Case) – очевид­ная для действующего лица процедура, решающая конкретную задачу;
26
в) связь (ассоциация, association) – взаимодействие действу­ющего лица с вариантом использования;
г) расширение (extend) – добавление альтернативного функ­ционала в основной вариант использования;
д) включение (include) – задействование функционала как неотъемлемой части основного варианта использования;
е) наследование (generalization) – копирование потомком всех атрибутов и поведения предка.
Рис. 3.1. Элементы диаграммы вариантов использования
3.2.2. Диаграмма переходов состояний
Диаграмма переходов состояний (UML state machine) – гра­фическая модель, описывающая возможные состояния програм­мы и переходы из одного состояния в другое.
Для построения диаграмм используются условные обозна­чения, показанные на рис. 3.2:
а) начальное псевдосостояние (initial pseudostate) – точка старта (может быть только одна);
б) конечное состояние (final state) – точка завершения (мо­жет быть несколько или ни одной);
в) простое состояние (simple state) – состояние, не имею- щее регионов и вложенных состояний (может иметь внутрен­ние действия);
г) составное состояние (composite state) – состояние, име­ющее один или более регионов со вложенными состояниями;
д) переход (transition) – направленная связь между двумя состояниями, может содержать необязательные элементы:
триггеры – перечень событий, приводящих к переходу,охранное выражение – логическое условие, разрешающее
переход,
27
действия – операции, совершаемые при переходе;
е) выбор (choice) – псевдосостояние, реализующее услов- ный переход.
Рис. 3.2. Элементы диаграммы переходов состояний
3.2.3. Диаграмма потоков данных
Диаграмма потоков данных (data flow diagram) – графи­ческая модель системы, описывающая хранение, обработку и передачу данных.
Для построения диаграмм используются условные обозна­чения, показанные на рис. 3.3:
а) внешняя сущность (external entity) – объект, не входя­щий в систему, но являющийся источником и (или) получате­лем ее данных;
б) процесс (process) – функция обработки данных;
в) хранилище (data storage) – внутреннее хранилище дан­ных в системе;
г) поток (data flow) – направленное движение данных.
Рис. 3.3. Элементы диаграммы потоков данных
Чтобы сделать диаграмму более читаемой, ее разбивают на несколько уровней. Самым верхним в иерархии уровней явля­ется контекстный (нулевой), на котором отражены программа (одним процессом), внешние сущности и потоки данных между ними. На следующем (первом) уровне программа декомпозиру-
28
ется на несколько процессов, появляются внутренние потоки и хранилища данных. На втором уровне процессы могут разби­ваться на подпроцессы и т.д., до тех пор, пока не будет достиг­нут требуемый уровень детализации. Процедуры контекстного уровня имеют номера 1, 2, 3 и т.д. Процедуры первого уровня имеют номера, производные от процедур нулевого, например:
1.1, 1.2, 2.1, 2.2, 2.3. Процедуры второго уровня – производные от первого, например: 1.1.1, 2.3.5, и т.д.
3.3. Порядок выполнения работы
1. Получить у преподавателя свой вариант задания.
2. Определить внешние сущности, состояния программы,
выполняемые ею функции и данные, которые она обрабатывает.
3. Построить диаграмму вариантов использования.
4. Построить диаграмму переходов состояний.
5. Построить диаграмму потоков данных.
6. Оформить отчет о выполненной работе.
3.4. Пример выполнения работы
Построение диаграмм рассмотрим на примере программы клиента корпоративной почты, требования к которой описаны заказчиком следующим образом:
«Сотрудники организации должны иметь возможность
отправлять друг другу письма, прикреплять документы и вставлять фотографии. Руководители подразделений могут делать массовые рассылки в пределах подразделения».
3.4.1. Построение диаграммы вариантов использования
Действующими лицами являются: «сотрудник» и «руково­дитель». «Руководитель» имеет доступ ко всем сервисам «со­трудника», а также к дополнительному сервису «массовая рас­сылка», поэтому он является наследником действующего лица «сотрудник».
Вариантами использования являются: «проверка почты», «чтение письма», «отправка письма», «массовая рассылка».
29
Поскольку почтовая программа должна различать пользовате­лей, добавляется вариант «авторизация».
Вложение документа и вставка фотографии – это допол­нительный функционал отправки, поэтому оформляются как вспомогательные варианты использования со связью «расши­рение».
Чтение писем включает проверку почты, а массовая рас­сылка – отправку писем, поэтому между этими вариантами устанавливается связь «включение».
Результат построения диаграммы приведен на рис. 3.4.
Рис. 3.4. Диаграмма вариантов использования для почтовой
программы
3.4.2. Построение диаграммы переходов состояний
Различимые пользователем состояния, в которых может на-
ходиться программа начиная с момента ее запуска: «авториза-
30
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]