Методические рекомендации преподавателям для проведения лабораторных занятий

Лабораторные работы выполняются в среде программирования Visual Studio. Каждый студент выполняет индивидуальное задание.

Перечень лабораторных работ приведен в табл. 1.

                       Таблица 1

№ п/п

Наименование лабораторных работ

1

Разработать алгоритм и программу в соответствии с вариантом

2

Оценивание характеристик качества разработанного программного средства

3

Оценка сложности программы

4

Разработать документацию  в соответствии с ГОСТ ЕСПД

5

Оценка технико-экономических показателей программных средств


ЛАБОРАТОРНАЯ РАБОТА 1

Разработать алгоритм и программу в соответствии с вариантом

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

Порядок выполнения работы

1. Получить индивидуальное задание у преподавателя.

2. Запустить среду программирования Microsoft Visual Studio.

3. Создать новый проект (Console application).

4. Разработать программное средство в соответствии с полученным заданием.

5. Отладить программу и продемонстрировать преподавателю.

Отчетность по лабораторной работе

1. Проект программы в Visual Studio.

2. Отчет, содержащий:

- цель работы;

- текст разработанной программы;

- выводы.

ЛАБОРАТОРНАЯ РАБОТА 2

Оценивание характеристик качества разработанного программного средства

НЕ нашли? Не то? Что вы ищете?

Цель работы: в лабораторной работе тестируем и  оцениваем качественные показатели программного продукта (далее - ПП).

Порядок выполнения работы

1. Выбрать показатели качества (не менее 5) и сформулировать их сущность. Каждый показатель должен быть существенным, т. е. должны быть ясны потенциальные выгоды его использования. Показатели представить в виде таблицы (таблица 2).


Показатели качества

Сущность показателя

Экспертная оценка (вес) wi

Оценка, установленная экспериментом ri


2. Установить веса показателей wi (∑wi =1). 3. Для каждого показателя установить конкретную численную оценку ri от 0 до 1, исходя из следующего:
    0 – свойство в ПП присутствует, но качество его неприемлемо; 0.5 - 1 – свойство в ПП присутствует и обладает приемлемым качеством; 1 – свойство в ПП присутствует и обладает очень высоким качеством. Возможно, присвоение промежуточных значений в соответствии с мнением оценивающего лица относительно полезности того или иного свойства ПП.

Отчетность по лабораторной работе

1. Проект программы в Visual Studio.

2. Отчет, содержащий:

- цель работы;

- текст разработанной программы;

- показатели, представленные в форме таблицы 2.

- выводы.

ЛАБОРАТОРНАЯ РАБОТА 3

Оценка сложности программы

Цель работы: научиться оценивать сложность алгоритмов.

Краткие теоретические и учебно-методические материалы по теме практической  работы

Для решения той или иной задачи может существовать несколько алгоритмов. Вопрос выбора конкретного алгоритма является одним из важнейших вопросов программирования.

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

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

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

Данной оценкой является математическая оценка количества операций, или  тредоемкость (сложность) алгоритма в зависимости от количества входных данных или длины входной последовательности.

Рассмотрим алгоритм нахождения значения многочлена в точке x:

= + + ... + + ... + + .

Для вычисления трудоемкости решения данной задачи может быть предложен следующий алгоритм: для каждого i-го слагаемого (кроме ) возвести x в степень последовательным умножением, а затем домножить на коэффициент. Для вычисления i-го (i=1..n) слагаемого требуется

  =

операций умножения, кроме того требуется - сложение, таким образом для решения данной задачи потребуется выполнение

= + + 1

элементарных операций. 

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

Функция приблизительно возрастает как (отбрасываем сравнительно медленно возрастающаю часть ). Далее, избавляемся от константного множителя , так как он не играет существенной роли. Получаем следующую асимптотическую оценку: функция возрастает приблизительно как . Записывается как (“О-большое от эн-квадрат”).

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

Далее приведена таблица скорости роста некоторых основных функций:


1

0

0

1

16

4

64

256

256

8

2,048

65,536

4,096

12

49,152

16,777,216

65,536

16

1,048,565

4,294,967,296

1,048,576

20

20,969,520

1,099,301,922,576

16,775,616

24

402,614,784

281,421,292,179,456

       Представим себе, что значения в столбцах таблицы - это значение в миллисекундах. Т. е. для алгоритму с временем работы для решения данной задачи потребуется порядка 20мс, алгоритму с временем работы порядка 16 минут, алгоритму со сложностью ) - порядка 13 дней.

       Наилучшей оценкой является , т. е. количество операций не зависит от длины входа. Далее приводятся два основных правила выполнения расчета оценки :

При оценке за функцию принимается количество операций, возрастающее быстрее всего. Т. е. при некотором достаточно большом n основное влияние на скорость работы будет оказывать именно наибольшее число операций данного типа (например, если данный алгоритм выполняет сложений и умножения, наибольшее влияние на время работы будут оказывать регулярные операции сложения, чем редкие операции умножения). При оценке константы не учитываются. Т. е. 2000n+10000 и 3n+1 возрастают линейно и имеют сложность . При этом второй алгоритм может быть в 2000 раз эффективнее первого, но важно лишь то, что их сложность возрастатает линейно.

Важно помнить что учитывается лишь асимптотика. Понятно, что при малых n сложность алгоритма может быть меньше чем 10000000n, однако при достаточно больших n первый алгоритм растет гораздо быстрее.

Внутри основание логарифма не пишется (это следует из правила 2, т. к. по правилу преобразования логарифмов можно перейти к любому основанию, а выносимая константа отбрасывается).

Дадим математическое толкование символа : - множество функций для которых существуют такие константы C и N, что для всех . Запись дословно обозначает, что принадлежит множеству . При этом обратное выражение не имеет смысла.

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

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

Порядок выполнения работы

1. Произвести расчет сложности программы, разработанной в ходе выполнения лабораторной работы № 1.

2. Оформить отчет.

Отчетность по лабораторной работе

1. Проект программы в Visual Studio.

2. Отчет, содержащий:

- цель работы;

- текст разработанной программы;

- рассчитанную сложность программы.

- выводы.

ЛАБОРАТОРНАЯ РАБОТА 4

Разработать документацию  в соответствии с ГОСТ ЕСПД

Цель работы: освоение технологии документирования программных средств на начальных стадиях проектирования в соответствии с ЕСПД

Краткие теоретические и учебно-методические материалы по теме практической  работы

Основу отечественной нормативной базы в области документирования ПС составляет комплекс стандартов Единой системы программной документации (ЕСПД).

Основная и большая часть комплекса ЕСПД была разработана в 70-еи80-егоды 20 века. Сейчас этот комплекс представляет собой систему межгосударственных стандартов стран СНГ (ГОСТ), действующих на территории Российской Федерации на основе межгосударственного соглашения по стандартизации.

Единая система программной документации − это комплекс государственных стандартов, устанавливающих взаимоувязанные правила разработки, оформления и обращения программ и программной документации. Стандарты ЕСПД в основном охватывают ту часть документации, которая создается в процессе разработки программных средств, и связаны, по большей части, с документированием функциональных характеристик программных средств. Следует отметить, что стандарты ЕСПД (ГОСТ 19) носят рекомендательный характер. Впрочем, это относится и ко всем другим стандартам в области ПС (ГОСТ 34, международному стандарту ISO/IEC и др.). Дело в том, что в соответствии с Законом РФ «О техническом регулировании» эти стандарты становятся обязательными на контрактной основе, т. е. при ссылке на них в договоре на разработку (поставку) программного средства.

Говоря о состоянии ЕСПД в целом, можно констатировать, что большая часть стандартов ЕСПД морально устарела. Тем не менее до пересмотра всего комплекса многие стандарты могут с пользой применяться в практике документирования программных средств. К числу программных ЕСПД относит документы, содержащие сведения, необходимые для разработки, изготовления, сопровождения и эксплуатации программ.

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

Техническое задание (ТЗ) содержит совокупность требований к программному средству и может использоваться как критерий проверки и приемки разработанной программы. Поэтому достаточно полно составленное (с учетом возможности внесения дополнительных разделов) и принятое заказчиком и разработчиком ТЗ является одним из основополагающих документов проекта программного средства.

ГОСТ 19.201-78,входящий в ЕСПД, устанавливает порядок построения и оформления технического задания на разработку программы или программного изделия для вычислительных машин, комплексов и систем независимо от их назначения и области применения.

Список и описание разделов, которые должны содержаться в техническом задании согласно ГОСТу 19.201-78 Техническое задание. Требования к содержанию и оформлению:

1. Введение

2. Основания для разработки

3. Назначение разработки

4. Требования к программе или программному изделию

4.1. Требования к функциональным характеристикам

4.2. Требования к надежности

4.3. Условия эксплуатации

4.4. Требования к составу и параметрам технических средств

4.5. Требования к информационной и программной совместимости

4.6. Требования к маркировке и упаковке

4.7. Требования к транспортированию и хранению

4.8. Специальные требования

5. Требования к программной документации

6. Технико-экономические показатели

7. Стадии и этапы разработки

8. Порядок контроля и приемки

Порядок выполнения работы

1. Получить индивидуальное задание у преподавателя.

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

3. Оформить отчет.

Отчетность по лабораторной работе

1. Отчет, содержащий:

- цель работы;

- текст индивидуального задания;

- разработанную документацию;

- выводы.

ЛАБОРАТОРНАЯ РАБОТА 5

Оценка технико-экономических показателей программных средств

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

Краткие теоретические и учебно-методические материалы по теме практической  работы

       Технико-экономический анализ разработки проектов программных средств - это выбор и прогнозирование наиболее адекватных экономических и функциональных критериев для обобщенного описания эффективности, стоимости создания и использования проектов программных средств в зависимости от их назначения, области применения и прочих факторов.        Цели технико-экономического анализа - выяснить влияние на финансовые показатели технологии, уровня техники, организации труда, производства:

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

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

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

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

Показатели технико-экономического анализа:

1) объём программного средства (в операторах языка или строках текста) - О;

2) длительность разработки (по фактическому времени) - Д; Д=Д1-Д2, где Д1 - дата начала разработки технического задания на ПС, Д2- дата сдачи ПС;

3) число программных и информационных модулей в ПС - Р;

4) количество фактически затраченного времени на разработку ПС - М;

5) трудоёмкость разработки ПС (по фактически затраченному времени по стадиям разработки) - Т; 6) абсолютное снижение трудовых затрат - ДТ ДТ =Т0-Т1, где Т0- трудовые затраты на решение транспортной задачи по базовому варианту ( вручную, на данных, представленных преподавателем), Т1- трудовые затраты на решение транспортной задачи по предлагаемому варианту;

7) коэффициент относительного снижения трудовых затрат – КТ; КТ= ДТ /Т0*100

8) индекс снижения трудовых затрат или повышение производительности труда - Iт; Iт=Т0/Т1

9) абсолютное снижение стоимостных затрат - ДС ДС =С0-С1, где С0 - стоимостные затраты на решение транспортной задачи по базовому варианту, С1- стоимостные затраты на решение транспортной задачи по предлагаемому варианту;

10)коэффициент относительного снижения стоимостных затрат – КС; КС= ДС /С0 * 100

11)индекс снижения стоимости затрат – Ic; Ic =С0/С1

12)срок окупаемости ПС - К К=КТ/ ДС, где КТ - затраты на разработку и внедрение программного средства.

Порядок выполнения работы

1. Получить индивидуальное задание у преподавателя.

2. Для заданного варианта необходимо произвести расчет показателей, указанных в теоретических сведениях.

3. Оформить отчет.

Отчетность по лабораторной работе

1. Отчет, содержащий:

- цель работы;

- текст индивидуального задания;

- рассчитанные показатели;

- выводы.