Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
екзамен Алгортми і стр даних.docx
Скачиваний:
2
Добавлен:
19.09.2019
Размер:
88.29 Кб
Скачать
  1. Основні концепції індустріалізації програми.

Ідея індустріалізації програмування, тобто використання промислових методів для розв’язування творчих задач, побудови програмного забезпечення, відповідно до кінця 70-х початок 80-х років. У виборі найбільш досконалих методів як базових для розв’язування задач і винесення інформації і настроювання до формату інформаційних об’єктів програмування, тобто підготовка таких об’єктів повинна забезпечити настроювання систем програм на розв’язування конкретних задач. У випадку системних програм це може бути використано і для побудови компіляторів, або реалізації мов директив, або мов програмування, чи настроювання лексичного та семантичного аналізу та всіх випадків семантичної обробки.

При розробці комплексів програмування доцільно використовувати однакові, або схожі формати подання даних, з тим, щоб спростити структури програм та використовувати одноманітні методи комплектації та підготовки програмного забезпечення.

Іншим боком системного програмування на рівні розрізняння програм є побудова (синтез) програмного забезпечення для розв’язання таких задач.

Після підготовки системних (як і інших) програм необхідно мати надійну систему верифікації або коректності системних програм з використанням методів програмного тестування та математичних методів формування верифікації.

Методи синтезу та верифікації взагалі є загальними не тільки для систем системного аналізу але і взагалі.

Зараз створюються багато систем супроводження процесів створення програм, які дозволяють частково автоматизувати цей процес і спланувати процесс розробки або від лагодження програм.

2. Задача супроводження проектів проблемних програм.

Супровід програмного забезпечення - процес покращення, оптимізації та усунення дефектів програмного забезпечення (ПО) після передачі в експлуатацію. Супровід ПЗ - це одна з фаз життєвого циклу програмного забезпечення, наступна за фазою передачі ПО в експлуатацію. В ході супроводу в програму вносяться зміни, з тим, щоб виправити виявлені в процесі використання дефекти і недоробки, а також для додавання нової функціональності, з метою підвищити зручність використання (юзабилити) і застосовність ПО. У моделі водоспаду, супровід ПЗ виділяється в окрему фазу циклу розробки. В спіральної моделі, що виникла в ході розвитку об'єктно-орієнтованого програмування, супровід не виділяється як окремий етап. Тим не менш, ця діяльність займає значне місце, враховуючи той факт, що зазвичай близько 2/3 життєвого циклу програмних систем займає супровід. Сопровождаемость програмного забезпечення - характеристики програмного продукту, що дозволяють мінімізувати зусилля по внесенню до нього змін:     для усунення помилок;     для модифікації відповідно до мінливих потреб користувачів.

3. Задача налагодження проектів системних програм.

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

узнавать текущие значения переменных;

выяснять, по какому пути выполнялась программа.

Существуют две взаимодополняющие технологии отладки.

Использование отладчиков — программ, которые включают в себя пользовательский интерфейс для пошагового выполнения программы: оператор за оператором, функция за функцией, с остановками на некоторых строках исходного кода или при достижении определённого условия.

Вывод текущего состояния программы с помощью расположенных в критических точках программы операторов вывода — на экран, принтер, громкоговоритель или в файл. Вывод отладочных сведений в файл называется журналированием.

Инс румен ы отладки

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

Также полезными инструментами в руках программиста могут оказаться:

Профилировщики. Они позволят определить сколько времени выполняется тот или иной участок кода, а анализ покрытия позволит выявить неисполняемые участки кода.

API логгеры позволяют программисту отследить взаимодействие программы и Windows API при помощи записи сообщений Windows в лог.

Дизассемблеры позволят программисту посмотреть ассемблерный код исполняемого файла

Сниферы помогут программисту проследить сетевой трафик генерируемой программой

Сниферы аппаратных интерфейсов позволят увидеть данные которыми обменивается система и устройство.

Логи системы.

Использование языков программирования высокого уровня, таких как Java, обычно упрощает отладку, поскольку содержат такие средства как обработка исключений, сильно облегчающие поиск источника проблемы. В некоторых низкоуровневых языках, таких как ассемблер, ошибки могут приводить к незаметным проблемам — например, повреждениям памяти или утечкам памяти, и бывает довольно трудно определить что стало первоначальной причиной ошибки. В этих случаях, могут потребоваться изощрённые приёмы и средства отладки.

Инс румен ы, сниж ющие по ребнос ь в о е

Другое направление — сделать, чтобы отладка нужна была как можно реже. Для этого применяются:

Контрактное программирование — чтобы программист подтверждал другим путём, что ему на выходе нужно именно такое поведение программы. В языках, в которых контрактного программирования нет, используется самопроверка программы в ключевых точках.

Модульное тестирование — проверка поведения программы по частям.

Статический анализ кода — проверка кода на стандартные ошибки «по недосмотру».

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