Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
406.pdf
Скачиваний:
87
Добавлен:
07.01.2021
Размер:
479.9 Кб
Скачать

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

Широкое использование проверенных внешних библиотек.

2.ЛАБОРАТОРНЫЕ РАБОТЫ

2.1. Лабораторная работа № 1 «Модифицирование программного кода»

Рекомендуемая литература: 2.

Перечень дополнительных ресурсов: 2 ,3, перечень ресурсов в сети Интернет.

Цель: Изучить технологию модифицирования программного

кода

Задание:

Модифицируйте 2 программы, реализованные на C++:

1 программа

#include <iostream> #include <locale.h>

using namespace std;

int main()

{

int number; setlocale(LC_CTYPE,"Russian"); cout << "Введите число: "; cin >> number;

cin.ignore();

cout << "Вы ввели: "<< number <<"\n"; cin.get();

}

Описание: пользователю предлагаеться ввести цифру, но если он введет например: b6, то ему выдаст - "Вы ввели: 5 (Только номер). Необходимо добиться, чтобы программа различала отрицательные и положительные значения, цифры и буквы, а также автоматически выдавала значение введенного числа в квадрате.

2 программа

#include <stdio.h> /* Стандартный заголовочный файл ввода-вывода */ #include <iostream> /* Библиотека (стандарт) */

#include <locale.h> /* Русификатор */ #include <windows.h> /* Русификатор */ using namespace std;

int main(int argc, char* argv[])

{

setlocale(LC_CTYPE,"Russian");

double plus, minus, pow, div; // объявление переменных через запятую double a1; // отдельное объявление переменной a1

double a2; // отдельное объявление переменной a2 cout << "Введите первое число: ";

cin >> a1;

cout << "Введите второе число: "; cin >> a2;

plus = a1 + a2; // операция сложения minus = a1 - a2; // операция вычитания pow = a1 * a2; // операция умножения div = a1 / a2; // операция деления

cout << a1 << "+" << a2 << "=" << plus << endl; cout << a1 << "-" << a2 << "=" << minus << endl; cout << a1 << "*" << a2 << "=" << pow << endl; cout << a1 << "/" << a2 << "=" << div << endl; system("pause");

return 0;

}

Описание: простой калькулятор, который может: добавлять, вычитать, умножать и делить.

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

2.2 Лабораторная работа №2 «Рефакторинг программного кода»

Рекомендуемая литература: 1.

Перечень дополнительных ресурсов: 2, 3, перечень ресурсов в сети Интернет.

Цель: Изучить технологию рефокторинга программного кода

Задание: Задание 1:

В рамках лабораторной работы приведите примеры реализации рефакторинга в следующих системах:

Visual Studio.

Visual Assist X.

Refactor.

JustCode

ReSharper

CodeIt

Для поиска информации используйте сеть Интернет.

Задание 2:

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

Результаты работы представить в MS Word. Минимальное количество анализируемых систем – 5.

2.3 Лабораторная работа №3 «Оптимизация программного кода»

Рекомендуемая литература: 1, 2.

Перечень дополнительных ресурсов: 2, перечень ресурсов в сети Интернет.

Цель: Изучить технологию оптимизации программного кода

Задание:

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

Оптимизировать программу (можно использовать процедуры или функции).

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

Для созданных программ оценить метрические характеристики по Холстеду;

Сравнить полученные результаты. Оформить результаты в таблицу. Сделать соответствующие выводы.

Расчет метрики Холстеда:

Метрика Холстеда относится к метрикам, вычисляемым на

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

Метрика Холстеда позволяет оценить размер (в словах) и объем в битах программы на стадии анализа требований. Используя нормы выработки операторов в день можно оценить время на разработку.

Основу метрики Холстеда составляют четыре измеряемые характеристики программы: n1 — число уникальных операторов

программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); n2 — число уникальных операндов программы (словарь операндов); N1 — общее число операторов в программе; N2 — общее число операндов в программе.

+, *, /, - это операторы

x, у, z, 999, -25, number1 - это операнды

На основании этих характеристик рассчитываются оценки:

Словарь программы (Halstead Program Vocabulary, HPVoc): n = n1 + n2;

Длина программы (Halstead Program Length, HPLen): N = N1 +

N2;

Объем программы (Halstead Program Volume, HPVol): V = N

log2 n;

Сложность программы (Halstead Difficulty, HDiff): D = (n1/2) × (N2 / n2);

На основе показателя HDiff предлагается оценивать усилия программиста при разработке при помощи показателя HEff (Halstead Effort): H = D × V.

Пример метрики:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]