1.Верно ли утверждение, что между эффективностью и опти-
мизацией программы существует связь?
2.Что такое оптимизация программ:
a)улучшение работы существующей программы
b)создание удобного интерфейса пользователя
c)разработка модульной конструкции программы
d)применение методов объектно-ориентированного программирования
3.Критерии оптимизации:
a)время выполнения или размер требуемой памяти
b)размер программы и ее эффективность
c)независимость модулей
d)качество программы, ее надежность
4.Возможна ли оптимизация программ без участия програм-
миста?
5.Оптимизация программы это:
a)модификация
b)отладка
c)повышение сложности программы
d)уменьшение сложности программы
4.5.Типовой вариант по теме
«Дебаггинг»
8.Отладка программы – это
a)работы, связанные с обслуживанием программы в процессе
ееэксплуатации
b)контроль логически сложных участков программы
c)испытание, проверка правильности работы программы в целом либо ее составных частей
d)процесс поиска и устранения ошибок в программе, производимый по результатам ее прогона на ПК
e)определение функциональных возможностей системы
9.Какой этап выполняется раньше:
a)отладка
b)тестирование
10.Процедура поиска ошибки, когда известно, что она есть это:
a)отладка
b)тестирование
c)компоновка
d)транзакция
e)трансляция
11.Верно ли утверждение, что между отладкой и тестированием
существует различие?
12.Инструментальные средства отладки (НЕ правильный от-
вет):
a)компиляторы
b)отладчики
c)трассировка
13.Как называется процесс преобразования кода программы в
машинный код?
a)трансляция
b)отладка
c)тестирование
d)компиляция
e)компоновка
Контрольная работа № 1 «Рефакторинг и технологии управления программным кодом»
Задание 1. Подготовьте письменные ответы на следующие вопросы:
1.2 Основные причины и предпосылки рефакторинга
2.2Основные принципы и методы рефакторинга
2.3Признаки “плохого” кода
2.4Возможности рефакторинга кода, которые распознаются в Visual Studio (заполните таблицу)
Прием рефакторинга |
Описание |
Укажите источники информации, используемые при подготовке ответов на задание.
Задача 2. Существует программа на языке C++
#include <iostream> using namespace std;
//Structure for a bank certificate of deposit: struct CDAccount
{
double balance; double interest_rate;
int term;//months until maturity
};
void get_data(CDAccount& the_account);
//Postcondition: the_account.balance and the_account.interest_rate //have been given values that the user entered at the keyboard.
int main( )
{
CDAccount account; get_data(account);
double rate_fraction, interest; rate_fraction = account.interest_rate/100.0;
interest = account.balance*rate_fraction*(account.term/12.0); account.balance = account.balance + interest;
cout.setf(ios::fixed);
cout.setf(ios::showpoint);
cout.precision(2);
cout << "When your CD matures in "
<<account.term << " months,\n"
<<"it will have a balance of $"
<<account.balance << endl; system("Pause");
return 0;
}
//Uses iostream:
void get_data(CDAccount& the_account)
{
cout << "Enter account balance: $"; cin >> the_account.balance;
cout << "Enter account interest rate: "; cin >> the_account.interest_rate;
cout << "Enter the number of months until maturity\n" << "(must be 12 or fewer months): ";
cin >> the_account.term;
}
Перепишите данную программу так, чтобы:
−переопределить CDAccount, чтобы это был класс а не
structure;
−member variable - были бы private;
−включить member functions для: to return the initial balance, to return the balance at maturity, to return the rent interest rate, to return term.
−включить конструктор который опрелит все member variables to any specified values, как же как default constructor.
Задача 3. Решите задача на С++/С#. Проведите оптимизацию полученного кода.
В городе M строятся N новых микрорайонов, между которыми запланировано M магистральных дорог. Каждая дорога имеет свою стоимость строительства Pij. В прошлом году из этих M дорог муниципалитет успел построить K штук. К сожалению, в этом году финансирование строительства решено было сократить, и теперь из запланированных, но не построенных M-K дорог нужно оставить такие, чтобы из любого микрорайона в любой другой существовал хотя бы один путь, но при этом стоимость их строительства была минимальной (гарантируется, что такой набор существует).
Какова минимальная стоимость P завершения строительства дорожной сети по новому плану, и сколько новых дорог по нему предстоит построить?
1.Лаврищева, Е. М. Программная инженерия. Парадигмы, технологии
иcase-средства : учебник для вузов / Е. М. Лаврищева. — 2-е изд., испр. — М. : Издательство Юрайт, 2018. — 280 с. — (Серия : Университеты России). — Ре-
жим |
доступа: |
www.biblio-online.ru/book/DCE62C40-BE54-4478-9BA5- |
7BE6200A8967. — |
Загл. с экрана. |
|
2.Малявко, А. А. Формальные языки и компиляторы : учебное пособие для вузов / А. А. Малявко. — М. : Издательство Юрайт, 2018. — 429 с. — (Серия : Университеты России). — ISBN 978-5-534-04288-7. — Режим доступа : www.biblio-online.ru/book/B4D96654-71D5-4748-986D-66E8309C25E3.
1.Казарин, О. В. Программно-аппаратные средства защиты информации. Защита программного обеспечения : учебник и практикум для вузов / О. В. Казарин, А. С. Забабурин. — М. : Издательство Юрайт, 2018. — 312 с. — (Серия
:Специалист). — ISBN 978-5-9916-9043-0. — Режим доступа : www.biblio- online.ru/book/E458AFCD-826E-4A1F-9BAB-68BB83EA616F.
2.Лаврищева, Е. М. Программная инженерия и технологии программирования сложных систем : учебник для вузов / Е. М. Лаврищева. — М. : Издательство Юрайт, 2018. — 432 с. — (Серия : Бакалавр. Академический курс). —
ISBN 978-5-534-04591-8. — Режим доступа : www.biblio- online.ru/book/DCD7188A-4AAB-4B59-84CD-40A05E3676A7. — Загл. с экрана.
3.Черткова, Е. А. Компьютерные технологии обучения : учебник для вузов / Е. А. Черткова. — 2-е изд., испр. и доп. — М. : Издательство Юрайт,
2018. — 297 с. — (Серия : Университеты России). — ISBN 978-5-534-01255-2. — Режим доступа : www.biblio-online.ru/book/69B7DCC2-98A7-4367-9F26- 07D7C339F64E.
1.http://elibrary.ru - Научная электронная библиотека eLIBRARY.RU
2.http://e.lanbook.сот/ - ЭБС издательства ЛАНЬ
3.http://msdn.microsoft.com/ru-ru/library/719exd8s.aspx - Microsoft Developer Networks / Рефакторинг (С#)
4.http://www.ibm.com/developerworks/ru/library/os-ecref/ - IBM / Рефакто-
ринг для всех