Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛАбРАБОТА1-5.doc
Скачиваний:
52
Добавлен:
08.11.2018
Размер:
629.25 Кб
Скачать

Лабораторна робота № 3. Стадія "Технічний проект"

Мета роботи: вивчити питання проектування програмного забезпечення

Лабораторна робота розрахована на 6 академічних годин.

Теоретична частина

Складові технічного проекту

Технічний проект - образ наміченого до створення об'єкту, представленого у вигляді його опису, схем, креслень, розрахунків, обґрунтувань, числових показників.

Технічний проект

Мета технічного проекту - визначення основних методів, використовуваних при створенні інформаційної системи, і остаточне визначення її кошторисної вартості.

Технічне проектування підсистем здійснюється відповідно до затвердженого технічного завдання.

Технічний проект програмної системи детально описує:

  • виконувані функції і варіанти їх використання;

  • відповідні ним документи;

  • структури оброблюваних баз даних;

  • взаємозв'язки даних;

  • алгоритми їх обробки.

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

При розробці технічного проекту оформляються:

  • відомість технічного проекту. Загальна інформація за проектом;

  • пояснювальна записка до технічного проекту. Ввідна інформація, що дозволяє її споживачеві швидко освоїти дані за конкретним проектом;

  • опис систем класифікації і кодування;

  • перелік вхідних даних (документів). Перелік інформації, яка використовується як вхідний потік, і служить джерелом накопичення;

  • перелік вихідних даних (документів). Перелік інформації, яка використовується для аналізу накопичених даних;

  • опис використовуваного програмного забезпечення. Перелік програмного забезпечення і СУБД, які планується використовувати для створення інформаційної системи;

  • опис використовуваних технічних засобів. Перелік апаратних засобів, на яких планується робота проектованого програмного продукту;

  • проектна оцінка надійності системи. Експертна оцінка надійності з виявленням найбільш благополучних ділянок програмної системи і її вузьких місць;

  • відомість устаткування і матеріалів. Перелік обладнання і матеріалів, які будуть потрібні в ході реалізації проекту.

Структурна схема

Структурною називають схему, що відбиває склад і взаємозв’язки по управлінню частинами програмного продукту, який розробляється. Структурна схема визначається архітектурою ПЗ. Розробку структурної схеми програми зазвичай виконують методом покрокової деталізації.

Компонентами структурної схеми програмної системи або програмного комплексу можуть служити програми, підсистеми, бази даних, бібліотеки ресурсів і тому подібне.

Приклад структурної схеми програмного комплексу для рішення математичних завдань зображений на рис. 3.1.

диспетчер

Блок рішення

Блок виводу результату

Рисунок 3.1 - Приклад структурної схеми програмного комплексу

Функціональна схема

Функціональна схема – це схема взаємодії компонентів програмного забезпечення з описом інформаційних потоків, складу даних в потоках і вказівкою використовуваних файлів і пристроїв.

Для зображення функціональних схем використовують спеціальні позначення, встановлені стандартом (таблиця. 3.1).

Таблиця 3.1. Позначення елементів функціональних схем

Назва блоку

Позначення

Призначення блоку

Зберігання даних

Для позначення таблиць і інших структур даних, які мають бути збережені без уточнення типу пристрою

Оперативний запам'ятовуючий пристрій

Для позначення таблиць і інших структур даних, які зберігаються в оперативній пам'яті

Пристрій, що запам'ятовує, з прямим доступом

які зберігаються на магнітних дисках

Документ

Для позначення таблиць і інших структур даних, які виводяться на друк

Ручне введення

Для позначення ручного введення даних з клавіатури

Дисплей

Для позначення даних, які виводяться на дисплей комп'ютера

Функціональні схеми більш інформативні, ніж структурні. На рис. 3.2 приведена функціональна схема програмного комплексу, що реалізовує різні методи сортування масивів.

Рисунок 3.2 - Приклад функціональної схеми програмного комплексу

Розробка алгоритмів

Метод покрокової деталізації реалізує низхідний підхід до програмування і припускає покрокову розробку алгоритму.

Приклад 4.1. Нехай вимагається визначити найбільше значення в деякому наборі даних і вивести ці дані, поділені на найбільше значення. Скажімо, якщо дані представляють собою послідовність чисел:

5.0, -3.24, 10.0, -1.25, 8.33,

то виведення повинно бути таким:

0.5, -0.324, 1, -0.125, 0.833

Рівень 1: Програма

ввести дані

знайти максимум введених даних

вивести результати

Кінець.

Деталізація 1.1. Введення даних можна деталізувати на псевдокоді таким чином:

Ввести дані:

визначити кількість чисел

Цикл-пока: не усі елементи введені

прочитати і запам'ятати значення елементу

Кінець-цикл

Деталізація 1.2. Відшукування максимуму можна деталізувати таким чином:

Знайти максимум:

вибрати як максимум перший елемент даних порівняти усі значення з максимумом, замінюючи поточний максимум на чергове значення, якщо воно не перевищило його

Деталізація 1.3. Виведення результатів можна деталізувати таким чином:

Цикл-пока не усі елементи виведені

вивести значення елементу

Кінець-цикл

Рівень 2. Він включає три деталізовані вище частини, з яких тільки деталізація 1.2 вимагає додаткової уваги. Її можна деталізувати на псевдокоді слідуючим чином:

Знайти максимум:

вибрати як максимум перший елемент даних

Цикл-пока не усі елементи перевірені

порівняти усі значення з максимумом

Якщо поточне значення більше максимуму

Максимум = поточне значення

Кінець-якщо

Кінець-цикл

Завдання в наведеному прикладі просте і не вимагає розбиття на модулі.

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

Структурні карти

Методика структурних карт використовується на етапі проектування ПВ для того, щоб продемонструвати, яким чином програмний продукт виконує системні вимоги. Структурні карти Константайна призначені для опису відношень між модулями. Структуру програмної системи складають модулі, які в будь-якій мові програмування мають наступні загальні властивості:

- модуль має ім'я, по якому до нього можна звертатися як до єдиного фрагмента;

- модуль складається з безлічі операторів мови програмування, записаних послідовно;

- модуль може приймати і/або передавати дані як параметри в послідовності яку викликають або зв'язувати дані через фіксовані осередки або загальні області.

Вузли структурних карт відповідають модулям і областям даних, потоки виражають міжмодульні зв'язки. На діаграмі спеціальними вузлами зображаються циклічні і умовні виклики модулів, а потоки проходять через ці спеціальні вузли. Потоки, які зображують міжмодульні зв'язки за даними і управлінням, також зображаються на діаграмі спеціальними вузлами, а стрілками вказуються напрями потоків. На рис. 3.3 приведені основні компоненти структурних карт Константайна.

г

Рисунок 3.3 – Елементи структурних карт: а – модуль, б – виклик модуля, в – зв'язок по даним, г – зв'язок по управлінню

Модуль є базовим елементом структурної карти. Розрізняють наступні типи модулів (рис. 3.3) :

  • модуль (рис. 3.3, а);

  • підсистема - деталізований модуль або програма. Може використовуватися повторно будь-яку кількість разів (рис. 3.3, б);

  • бібліотека - сукупність підпрограм, розміщених в модулі окремо від даної системи (рис. 3.3, в);

  • область даних - описує модулі, що містять, виключно області глобальних/ розподілених даних (рис. 3.3, г).

Окремі частини програмної системи (програми, підпрограми) можуть викликатися послідовно, паралельно або як співпрограми (рис. 3.4).

г

Рис. 3.4. Типи модулів. Типи викликів модулів

Для моделювання умовних і циклічних викликів використовуться наступні вузли (рис. 3.5):

  • умовний вузол застосовується для моделювання конструкцій IF - THEN - ELSE (на діаграмі з вузла виходять два потока) і IF - THEN (з вузла виходить один потік). Умовний вузол зображається у вигляді ромба, потоки - альтернативні виклики - зображаються такими, що виходять з нього;

  • ітераційний вузол використовується для того, щоб показати, що модуль, що викликається, виконується в циклі. Він зображується півколом із стрілкою з потоками, що виходять з нього.

Рис. 3.5 - Умовні і циклічні виклики модулів:

а - циклічний; б - умовний; в - одноразовий

Якщо необхідно показати, що підлеглий модуль викликається одноразово, це здійснюється вказівкою цифри "1" поруч зі стрілкою, що означає виклик модуля-спадкоємця. Зв'язки за даними і управлінням між модулями (які передаються як параметри) позначаються стрілками, паралельними дузі виклику, які показують напрями зв'язків (рис. 3.6).

Рис. 3.6. Зв'язки: а - за даними; б - по управлінню

Приклад 4.2. Розробити структурну карту Константайна для завдання сортування одновимірного масиву за допомогою алгоритмів Бульбашки, прямого вибору і Шелла.

Програма складається з модулів Меню, Методи сортування і Виведення результату. Користувач вибирає потрібний метод, уводить масив і отримує в результаті відсортований масив. Результат приведений на рис. 3.7.

Рис. 3.7. Приклад структурної карти Константайна

Техніка структурних карт Джексона заснована на методі структурного програмування Джексона, який виявляє відповідність між структурою потоків даних і структурою програми. Основна увага в методі сконцентрована на відповідності вхідних і вихідних потоків даних. Структури на діаграмах Джексона будуються з чотирьох основних компонентів, представлених на рис. 3.8:

  • операція - блок кодів, що має один вхід і один вихід (рис. 3.8, а);

  • дотримання - послідовне виконання операцій зліва направо (рис. 3.8, б);

  • вибір - виконання однієї з операцій залежно від виконання умови (рис. 3.8, в);

  • ітерація - багатократне виконання блоку (рис. 3.8, г).

Рис. 3.8 - Елементи структурних діаграм Джексона

Приклад 4.3. У менеджера торгівельної фірми є файл, що містить записи про принтери з наступними полями: фірма-виготовник, марка, швидкість друку, вартість, кількість одиниць на складі. Ці поля утворюють структуру вхідних даних. По запиту менеджера програма видає відомості про потрібні покупцю принтери відповідно до критерію пошуку. Критеріем може бути: ціна, швидкість або фірма-виготовник. Вихідними даними є список, що містить найменування вибраних принтерів.

З точки зору структурного програмування Джексона алгоритм програми буде наступним:

Програма

Цикл-пока не кінець файлу

Прочитати запис

Порівняти задані поля з критерієм пошуку

Якщо співпали

Зберегти у вихідний список

Кінець-якщо

Кінець-цикл

Виведення результуючого списку

Кінець-програма

Рис. 3.9. Структурна карта Джексона

Отримана структурна карта Джексона приведена на рис. 3.9.

Порядок виконання роботи

  1. На основі технічного завдання з лабораторної роботи № 1 і специфікацій з лабораторної роботи № 2 розробити уточнені алгоритми програм, що становлять заданий програмний модуль. Використовувати метод покрокової деталізації.

  2. На основі уточнених і допрацьованих алгоритмів розробити структурну схему програмного продукту.

  3. Розробити функціональну схему програмного продукту.

  4. Представити структурну схему у вигляді структурних карт Константайна.

  1. Представити структурну схему у вигляді структурних карт Джексона.

  1. Оформити результати, використовуючи MS Office або Ration Rose у вигляді технічного проекту.

  2. Здати і захистити роботу.

Захист звіту по лабораторній роботі

Звіт по лабораторній роботі повинен складатися з:

  1. Структурної схеми програмного продукту.

  2. Функціональної схеми.

  3. Алгоритму програми.

  4. Структурної карти Константайна.

  5. Структурної карти Джексона.

  6. Закінченого технічного проекту програмного модуля.

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

Контрольні питання

  1. Назвіть етапи розробки програмного забезпечення.

  2. У чому полягає проектування програмного забезпечення?

  3. Перерахуєте складові технічного проекту.

  4. Охарактеризуйте структурний підхід до програмування.

  5. З чого складається структурна і функціональна схеми?

  6. Охарактеризуйте метод покрокової деталізації при складанні алгоритмів програм.

  7. Приведіть поняття псевдокоду.

  8. У чому полягає методика Константайна?

  9. У чому полягає методика Джексона?

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

Етапи розробки програмного забезпечення.

Стадія "Реалізація"

Мета роботи: розробити програмний продукт відповідно варіанту.

Лабораторна робота розрахована на 9 академічних годин.

Теоретична частина

Складання програмної документації

Важливим етапом розробки програмного продукту є складання програмної документації. На кожен програмний продукт повинні складатися два типи документації - для розробників і для різних груп користувачів. Програмна документація користувачів повинна містити усі необхідні відомості по експлуатації ПО. Аналогічно, документація розробника повинна містити відомості, необхідні для розробки і супроводу програмного забезпечення.

Види програмних документів

Документування програмного забезпечення здійснюється відповідно до Єдиної системи програмної документації (ДСТУ 19.ХХХ). ДСТУ 19.101-77 містить види програмних документів для програмного забезпечення різних типів. У цьому статуті перераховані документи наступних типів:

  • специфікація повинна містити перелік і короткий опис призначення усіх файлів програмного забезпечення, у тому числі і файлів документації на нього, і являється обов’язковою для програмних систем, а також їх компонентів, що мають самостійне застосування;

  • відомість утримувачів оригіналів (код виду документу - 05) повинна містити список підприємств, на яких зберігаються оригінали програмних документів. Необхідність цього документу визначається на етапі розробки і затвердження технічного завдання тільки для програмного забезпечення із складною архітектурою;

  • текст програми (код виду документу - 12) повинен містити текст програми з необхідними коментарями. Необхідність цього документу визначається на етапі розробки і затвердження технічного завдання;

  • опис програми (код виду документу - 13) повинен містити відомості про логічну структуру і функціонування програми. Необхідність цього документу також визначається на етапі розробки і затвердження технічного завдання;

  • відомість експлуатаційних документів (код виду документу - 20) повинна містити перелік експлуатаційних документів на програму, до яких відносяться документи з кодами 30, 31, 32, 33, 34, 35, 46. Необхідність цього документа також визначається на етапі розробки і затвердження технічного завдання;

  • формуляр (код виду документу - 30) повинен містити основні характеристики програмного забезпечення, комплектність і відомості про експлуатацію програми;

  • опис застосування (код виду документу - 31) повинен містити відомості про призначення програмного забезпечення, сферу застосування, вживані методи, клас вирішуваних завдань, обмеження для застосування, мінімальної конфігурації технічних засобів.

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

Контрольні питання

  1. У чому полягає етап реалізації і відладки програмного забезпечення?

  2. Які існують інструментальні засоби розробки?

  3. Охарактеризуйте етап стихійного програмування.

  4. Охарактеризуйте етапи структурного і модульного програмування.

  5. Що таке документація до програмного забезпечення?