Ім'я файлу: kursova.docx
Розширення: docx
Розмір: 1337кб.
Дата: 18.12.2020
скачати

__________________________________________________

Кафедра інформатики

КУРСОВА РОБОТА

на тему:

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

на основі інформаційної моделі

Виконала

студентка групи __________

_____________

Керівник:

________________

Національна шкала: _____________

Університетська шкала: __________

Оцінка ECTS: ____

__________________ – 2018

ЗМІСТ

ВСТУП 3


РОЗДІЛ 1 Етапи розробки програмного забезпечення 4

1.1 Аналіз вимог до ПЗ 4

1.2 Проблема побудови математичної моделі 6

1.3 Вибір алгоритмів розв’язування 9

1.4 Характеристика інтерфейсу, дружнього до користувача 12

1.5 Життєвий цикл ПЗ 17

1.6 Впровадження та супровід 19

РОЗДІЛ 2 Програмування розгалужених алгоритмів 20

2.1 Постановка задачі та її математична модель 21

2.2 Алгоритм виконання (графічний, псевдокод) 22

2.3 Тестування програми 24

РОЗДІЛ 3 Програмування циклічних алгоритмів 26

3.1 Постановка задачі та її математична модель 27

3.2 Алгоритм виконання (графічний, псевдокод) 28

3.3 Тестування програми 29

Висновки 30

Список використаних джерел 31


ВСТУП

У процесі проектування сучасного програмного забезпечення виникає ряд проблем: велика вартість та тривалі терміни проектування, складність вивчення та використання програмної системи, тривале навчання користувача, низька швидкість роботи користувача, значна кількість помилок у роботі користувача.

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

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

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

Завдання курсової робот:

– проаналізувати сучасний стан проблеми розробки програмного забезпечення;

– спроектувати процес дослідження заданої інформаційної моделі;

– написати програмні реалізації розроблених алгоритмів.

Об’єкт досліджень — процес розробки програмного забезпечення.

Предмет досліджень – розробка програмного забезпечення для дослідження заданої інформаційної моделі

РОЗДІЛ 1 ЕТАПИ РОЗРОБКИ ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ



    1. Аналіз вимог


Програмування — процес проектування, написання, тестування,
зневадження і підтримки комп'ютерних програм [1].

У вужчому значенні програмування розглядається як кодування — реалізація у вигляді програми одного чи кількох взаємопов'язаних алгоритмів (у сучасних умовах це здійснюється з застосуванням мов програмування).

Програмне забезпечення {англ. software) та апаратне забезпечення (hardware) — це два комплементарні компоненти комп'ютера, причому межа між ними нечітка: деякі фрагменти програмного забезпечення на практиці реалізуються суто апаратурою мікросхем комп'ютера, а програмне забезпечення, в свою чергу, здатне виконувати (емулювати) функції електронної апаратури.

По суті, призначення програмного забезпечення полягає в керуванні як самим комп'ютером так і іншими програмами та маніпулюванні інформацією.

Розробка програмного забезпечення (англ. softwareengineering, softwaredevelopment) — це рід діяльності (професія) та процес, спрямований на створення та підтримку працездатності, якості та надійності програмного забезпечення, використовуючи технології, методологію та практики з математики, інформатики, інженерії та інших областей знання.[3]

Складність розробки ПЗ.

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

Складність ПЗ порівнянна зі складністю найбільш складних з сучасних машин, таких як літаки.

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

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

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

Готовий документ необхідно передати на затвердження замовнику, щоб переконатися в тому, що всі поставлені вимоги були враховані, а також щоб проінформувати його про будь-які ризики, які можуть виникнути після релізу проекту.

Після того, як всі основні питання вирішені, рекомендується провести додаткові обговорення та інтерактивні семінари з усіма зацікавленими сторонами. Це допоможе виявити будь-які неочевидні моменти, які надалі можуть стати причиною внесення змін до інтерфейсу програми або необхідності переписування частин коду. Даний етап може також включати заповнення анкет, розгляд кейсів, мозковий штурм і т.д.[1]

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

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



    1. Проблема побудови математичної моделі


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

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

– Принцип інформаційної достатності

Якщо інформація про об’єкт відсутня, то в такому випадку процес побудови моделі стає неможливим. Якщо про об’єкт відомо все, то побудова моделі не має сенсу. Отже, для кожного об’єкта і явища існує критичний рівень апріорних відомостей про систему. Він називається рівнем інформаційної достатності.[2]

  • Принцип доцільності

Модель створюється для досягнення деякої мети.

  • Принцип здійсненності

Модель, яка створюється, повинна забезпечувати досягнення мети дослідження з урахуванням імовірності, суттєво відмінною від нуля, і часу. Звичайно задають деяке граничне значення Рр (ступінь ризику) ймовірності досягнення мети моделювання Р(1:), а також сам граничний термін г досягнення мети. Модель вважають здійсненною, якщо Р(ї) > Рр.

  • Принцип множинності моделей

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

  • Принцип агрегації

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

  • Принцип параметризації.

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

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

Валідація - це процес, який дає змогу встановити, чи є модель (а не комп'ютерна програма) точним відображенням системи для конкретних цілей
дослідження.[1]

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

Вимоги побудови моделі[2]:

  • незалежність результатів розв'язання задач від конкретної фізичної інтерпретації елементів моделі;

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

  • дедуктивність, тобто можливість конструктивного використання моделі для отримання результату;

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

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

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

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

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


    1. Вибір алгоритмів розв’язування


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

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

Алгоритм — однозначна кінцева послідовність точно визначених кроків або дій, яка забезпечує розв'язок задачі за кінцевий час при мінімальному обсязі
оперативної пам 'яті.[4]

Існує три типи алгоритмів:

  • Лінійний алгоритм (Рис.1.1);.




Рисунок 1.1 – Блок-схема лінійного алгоритму


  • Алгоритм з розгалуженням (Рис.1.2);



Рисунок 1.2 – Блок-схема алгоритму з розгалуженням



  • Циклічний алгоритм (Рис.1.3)

Рисунок 1.3 – Блок-схема циклічного алгоритму



Способи представлення алгоритмів:

  • описовий (словесний опис);

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

  • аналітичний;

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

  • графічний;

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

  • псевдокод;

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

  • алгоритмічна мова;

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

Кожний алгоритм повинен мати наступні основні властивості [2]:

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

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

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

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

  • Кінцевість — алгоритм повинен складатися з кінцевого числа кроків, кожний з яких вимагає для свого виконання кінцевий проміжок часу;

  • Ефективність - алгоритм повинен забезпечувати розв'язок за мінімальний час із мінімальними витратами оперативної пам'яті.

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



    1. Характеристика інтерфейсу, дружнього до користувача


Інтерфейс користувача (ІК)

Інтерфейс користувача – це сукупність засобів, за допомогою яких користувач спілкується з різними пристроями (з комп’ютером або побутовою
технікою) або іншим складним інструментарієм (системою).[1]

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

Інтерфейс користувача комп’ютерного додатку включає:

  • Засоби відображення інформації, відображувану інформацію, формати і коди;

– Командні режими, мову «користувач-інтерфейс»;

– Пристрої та технології введення-виведення;

– Діалоги, взаємодію та транзакції між користувачем та комп’ютером,

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

– Підтримку прийняття рішень в конкретній предметній області;

– Порядок використання програми і документації на неї. Інтерфейс користувача часто розуміють лише як зовнішній вигляд програми.

О
днак насправді користувач сприймає через нього всю програму в цілому, тобто таке розуміння є надто вузьким. В дійсності, інтерфейс користувача (ІК) об’єднує в собі всі елементи і компоненти програми, які здатні впливати на взаємодію користувача з програмним забезпеченням (рис. 1.4).



Рисунок 1.4 – Складові інтерфейсу користувача

На загальному рівні проектування ІК здається простою справою. Дійсно, спроектувати будь-який фрагмент ІК не складно, однак мало хто може впоратись з розробкою повного інтерфейсу з врахуванням всіх аспектів аж до етапу розгортки ІК.

Процес проектування ІК - це складний, нелінійний, недетермінований і
неортогональний процес.

Проектування ІК - нелінійний процес, оскільки існування фіксованого, впорядкованого і прямолінійного шляху від початку до кінця зовсім не обов’язкове.

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

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

Труднощі проектування ПС[2]:

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

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

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

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

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

Проектування ІК з орієнтацією на користувача

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

Якщо ІК продукту привертає увагу користувача, якщо він легкий у вивченні, простий у використанні, а також має прийнятну ціну та можливості, продукт має конкурентну перевагу. Конкурентну перевагу можна одержати в тому випадку, якщо заявки про нижчі витрати на навчання та виграш в продуктивності відповідають дійсності.

Умови, які дозволяють говорити про те, що проект ведеться
в орієнтованому на користувача стилі:

  • Розуміння користувачів та їх задач, залучення користувачів в усі аспекти життєвого циклу продукта;

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

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

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

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

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

Проблеми організаційного, групового та індивідуального характера, які виникають при проектуванні продукта, відрізняються набагато більшою складністю, ніж технічні проблеми. 80% проблем пов’язані з людьми і лише 20% носять технічний характер.

Г
оловна мета проектного колективу полягає в ефективній поставці продукту, який задовольняє вимогам до практичності, та узгодженості.(Рис. )


Рисунок 1.5 – Етапи проектування ІК, орієнтованого на користувача


1.5 Життєвий цикл ПЗ.
Тестування - це не ізольований процес. Це частина моделі життєвого циклу програмного забезпечення (Software Development Life Cycle, SDLC). Саме тому вибір засобів і методик тестування буде прямо залежати від обраної моделі розробки.

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

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

Основний нормативний документ, який регламентує життєвий цикл ПЗ -міжнародний стандарт ISO / ІЕС 12207 (ISO, International Organization of Standardization - Міжнародна організація по стандартизації, ІЕС, International Electrotechnical Commission - Міжнародна комісія з електротехніки). Він визначає структуру життєвого циклу, що містить процеси, дії і завдання, виконувані під час створення ПЗ.

Згідно з цим стандартом, структура життєвого циклу ПЗ базується на трьох групах процесів:

  • Основні процеси життєвого циклу ПЗ (придбання, поставка, розробка, експлуатація, супровід);

  • Допоміжні процеси (документування, управління конфігурацією, забезпечення якості, верифікація, атестація, оцінка, аудит, вирішення проблем);

  • Організаційні процеси (управління проектами, створення інфраструктури проекту, визначення, оцінка та поліпшення самого життєвого циклу, навчання).

Модель життєвого циклу ПЗ - структура, що визначає послідовність виконання і взаємозв’язку процесів, дій і завдань на протягом життєвого циклу. Модель життєвого циклу залежить від специфіки, масштабу і складності проекту і специфіки умов, в яких система створюється і функціонує[3].

М
одель життєвого циклу ПЗ включає в себе (Рис.1.6):

Рисунок 1.6 – Модель життєвого циклу ПЗ
1. Стадія - частина процесу створення ПЗ, обмежена певними тимчасовими рамками і закінчується випуском конкретного продукту (моделей, програмних компонентів, документації), що визначається заданими для даної стадії вимогами. На кожній стадії можуть виконуватися кілька процесів, визначених у стандарті, і навпаки, один і той же процес може виконуватися на різних стадіях.

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


Ось приклад однієї з моделей життєвого циклу програмного забезпечення(Рис.1.5):




1.6 Впровадження та супровід
Коли програма протестована і в ній більше не залишилося серйозних дефектів, приходить час релізу і передачі її кінцевим користувачам. Після випуску нової версії програми в роботу включається відділ технічної підтримки. Його співробітники забезпечують зворотний зв’язок з користувачами, їх консультування і підтримку.

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

РОЗДІЛ 2 ПРОГРАМУВАННЯ РОГАЛУЖЕНИХ АЛГОРИТМІВ
Алгоритм, що містить одну або кілька умов і відповідно дві та більше гілок, називають алгоритмом розгалуження.

Оператор розгалуження застосовують у випадках, коли в програмі потрібно організувати вибір, тобто зробити так, аби певний набір команд у ній виконувався лише після виконання деякої умови. Тому такі оператори називають умовними.[1]

Умова - це будь-яке твердження, яке або виконується або не виконується, тобто можна дістати одну з двох відповідей: «так» або «ні».

Слід зазначити, що оператори розгалуження використовуються майже в усіх мовах програмування. В більшості з них умовний оператор розпочинається ключовим словом Якщо (англ. ії) і може бути поданий в двох формах — скороченій (умовний оператор з однією гілкою) і повній (умовний оператор з двома гілками).

Якщо умова виконується, то виконується серія команд 1 (гілка так), якщо умова не виконується, то виконується команд 2 (гілка ні). Після виконання серії команд виконавець переходить до наступної команди після команди розгалуження.

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

Можливий випадок, що у випадку невиконання умови не потрібно виконувати ніяких дій. Тоді використовується скорочена форма розгалуження («Якщо-то»).
2.1 Постановка задачі та її математична модель
Задача. Охороняється об’єкт, для якого відома його форма та розміри. Датчики в конкретний момент часу передають інформацію про координати однієї рухомої точки на площині. Необхідно написати програму, яка визначатиме, чи ця точка знаходиться в межах заданого об’єкта, поза його межами чи на його межі. Заданий об’єкт зображено на рисунку заштрихованою областю та вказано рекомендований вибір системи координат. Тестування програми провести для трьох самостійно вибраних точок.

Математична модель.

Якщо , то точка знаходиться в межах об’єкта або на
межі об’єкта, якщо справджується попередня умова і умова ,
то точка знаходиться на межі об’єкта, а якщо ні, то точка знаходиться поза межами об’єкта.



2.2 Алгоритм виконання



Рисунок 2.2 – Блок-схема розгалуженого алгоритму


Лістинг програми (мова С++)


/* Завдання виконала студентка групи СО(І)з-21 Луцик Марія Павлівна

Варіант №5 */

//обчислення значення функції

#include

using namespace std;

int main() //оголошення основної функції

{

double x,y; //оголошення змінної

cout << "input x="; //виведення на екран запиту на ввід

cin >> x; //введення значення

cout << "input y="; //виведення на екран запиту на ввід

cin >> y; //введення значення

if (y<-x && y-15 && y<0) cout <<"YES";

else

if (y>-x || y>x || y<-15 || y>0) cout <<"NO";

else cout <<"na megi";

cout << endl;

cin.get (); // зупинка програми до натиснення клавіші

return 0; //завершення роботи основної функції

}

//Усі авторські права збережено: Луцик М.П.


2.3 Тестування програми
Щоб протестувати програму, виберемо пару точок. Точки вибираємо так, щоб протестувати кожну гілку виконання програми.

В межах об’єкту: (2; -7). (Рис.2.3)




Рисунок 2.3 – Скріншот тестування проекту


Поза межами (1; 10). (Рис.2.4)


Рисунок 2.4 – Скріншот тестування проекту


На межі (1; -1). (Рис.2.5)




Рисунок 2.5 – Скріншот тестування проекту




– точка в межах об’єкту (2; -7) ;

– точка поза межами об’єкту (1; 10);

– точка на межі об’єкта (1; -1).

Рисунок 2.6 – Графічне тестування задачі
Отже підводячи підсумки можна сказати, що результати, які видала програма є правильними, що необхідно і достатньо для коректної роботи програми, тобто програма працює як і планувалось.
РОЗДІЛ 3 ПРОГРАМУВАННЯ ЦИКЛІЧНИХ АЛГОРИТМІВ
Циклічний процес (цикл) - повторення одних і тих же дій.

Тіло циклу - послідовність дій, які виконуються в циклі.

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

При написанні циклічних алгоритмів слід пам'ятати наступне. Для того, щоб цикл закінчився, тіло циклу має обов'язково впливати на умову входу в цикл.

В C++ для зручності користувача передбачено два оператори, що реалізують циклічний процес: while, do .. while.

Циклічні, тобто повторювані, обчислення задано за допомогою інструкції циклу з передумовою (while-інструкції). Вона має загальний вигляд: while (умова) інструкція.

Слово while є зарезервованим, дужки обов'язкові, while (умова) - це заголовок циклу, а інструкція - тіло. Інструкція циклу виконується так. Спочатку обчислюється умова в заголовку. Якщо вона істинна, то виконується тіло циклу та знов обчислюється умова. Якщо вона істинна, то все повторюється. Виконання інструкції циклу закінчується, коли обчислено значення умови false, тобто хибність.

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

Умова перевіряється після виконання тіла циклу, тому її називають післяумовою. Тіло циклу, заданого сіо-інструкцією, виконується обов'язково хоча б один раз (на відміну від whiIe-iнcтpyкцiï). Інструкцію циклу з післяумовою використовують, коли потрібно спочатку виконати тіло циклу, і лише потім перевіряти умову продовження.
3.1 Постановка задачі та її математична модель
Задача. Вхідними даними вважаються координати N випадково заданих точок на площині. Скласти програму, яка визначає оптимальну точку, яка відповідає вказаним умовам. Тестування програми провести для 10 самостійно вибраних точок.

Математична модель.

Якщо , то точка знаходиться в межах об’єкта або на
межі об’єкта, якщо справджується попередня умова і умова ,
то точка знаходиться на межі об’єкта, а якщо ні, то точка знаходиться поза межами об’єкта.



3.2 Алгоритм виконання (графічний, псевдокод)


/* Завдання виконала студентка групи СО(І)з-21 Луцик Марія Павлівна

Варіант №5 */ З використанням статичних масивів

#include

#include
const int N=1000;

using namespace std;

int main()  //оголошення основної функції

{

 double x,y;  //оголошення змінної

 double coordX [N];

 double coordY [N];
  int N;

 cout << "Input number N < 1000: ";   cin >> N; // задання кількості точок
/////

   for (int i=0; i
   {

       coordX[i]= rand()%20-10;

       coordY[i]= rand()%20-10;

       cout << "(" << coordX[i] << "," << coordY[i] << ")" << endl;

   }

/////
int vOb=0, mega=0, pozaOb=0;
   for (int i=1; i
   {

       //////////////////Перевірка області попадання точки//////////////////////////////////////////////////
       if (coordY[i]<-coordX[i] && coordY[i]-15 && coordY[i]<0) vOb=vOb+1;

           else

               if (coordY[i]>-coordX[i] || coordY[i]>coordX[i] || coordY[i]<-15 || coordY[i]>0) pozaOb = pozaOb+1;

                   else mega=mega+1;

   ////////////////////////////////////////////////////////////////////

   }

   cout << "Na danyi moment v oblasti objecta znahodytsia " << vOb << " tochok" << endl;

   cout << "Na danyi moment poza mezhamy objecta znahodytsia " << pozaOb << " tochok" << endl;

    cout << "Na danyi moment na mezhi objecta znahodytsia " << mega << " tochok" << endl;

   cout <<"END";

 cin.get (); // зупинка програми до натиснення клавіші

 return 0; //завершення роботи основної функції

}

//Усі авторські права збережено: Луцик М.П.

Лістинг програми (мова С++)

3.3 Тестування програми
Щоб перевірити чи правильно працює програма, потрібно провести тестування. Тестування провести на 10 довільних точках. (Рис.3.2)


Рисунок 3.2 – Скріншот тестування проекту

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

ВИСНОВКИ

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

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

СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ

  1. Єжова Л. Ф. Алгоритмізація і програмування процедур обробки інформації: Навчально-методичний посібник для самостійного вивчення дисципліни / Єжова Л. Ф.. - Київ. - КНЕУ. - (2000).

  2. Катренко А. Системний аналіз об'єктів та процесів комп'ютеризації: Навчальний посібник / Катренко А.. - Львів, 2003. - Новий світ.

  3. Молодцова О.П. Управління якістю програмної продукції: навчальний посібник / Молодцова О.П.. - Київ, 2001. - 248 с. - КНЕУ.

  4. Стаття на сайті Студопедія про циклічні алгоритми studopedia.su/4_13158_tsiklichni-algoritmi.html

  5. Стаття Вікіпедії про тестування програмного забезпечення https://uk.wikipedia.org/wiki/Тестування_програмного_забезпечення

  6. Стаття Вікіпедії про математичну модель

https://uk.wikipedia.org/wiki/Математична_модель

  1. Стаття Вікіпедії про програмування

https://uk.wikipedia.org/wiki/Програмування

  1. Дідковська М.В. Тестування: Основні визначення, аксіоми та принципи. Текст лекцій.Частина І / Дідковська М.В., Тимошенко Ю.О., 2010.

http://mmsa.kpi.ua/sites/default/files/disciplines/didkovska_m_v_testing_definition_part1.pdf

  1. Електронні посібники ВНТУ математичні моделі

posibnyky.vntu.edu.Ua/b_ap/6.html
скачати

© Усі права захищені
написати до нас