МІНІСТЕРСТВО ОСВІТИ УКРАЇНИ
Бердичівський політехнічний коледж
Контрольна робота
з дисципліни “Технологія розробки програмного забезпечення”
(варіант №1)
Виконав: студент групи Пзс-504
Аранчій І. О
Перевірив: викладач
Тростянський Б.Г.
м. Бердичів 2007 р.
1. Визначення технології розробки програмного забезпечення та основні поняття цього процесу: інформаційне середовище процесу обробки даних, формальний опис задачі, поняття про програмний засіб, поняття помилки і надійності програмних засобів
2. Порядок розробки програмного модуля.
3. Атестація програмних засобів
4. Практичне завдання
Список використаної літератури
Технологія - це загально-технічне поняття, яке об’єднує процеси, методи та засоби, що супроводжують виробництво будь - якої продукції. Якщо мова йде про технічну продукцію, то можна чітко визначити два етапи підготовки її виробництва - конструкторський і технологічний. На конструкторському етапі відбувається розробка та проектування самого виробу, а на технологічному - вирішуються питання, пов’язані з організацією виробництва даної продукції (причому, досить часто для конкретного підприємства). Коли поняття технології застосовується до розробки програмного забезпечення, то зміст, що у нього вкладається, значно змінюється. Це пов’язано з тим, що для програмного забезпечення неможливо відокремити процеси розробки (проектування), виробництва і експлуатації, тому що в даному випадку ці процеси проходять у значній мірі проходять паралельно і залежать один від одного. Так, наприклад, в процесі експлуатації програмного засобу, можуть бути виявлені помилки, усунення яких, потребує внесення змін у програмні модулі, тобто повернення до етапу розробки, що є цілком закономірним. З урахуванням зроблених зауважень можна ввести наступне визначення:
Технологія розробки програмного забезпечення (технологія програмування) - це сукупність процесів, пов’язаних із створенням надійного програмного засобу, починаючи з моменту виникнення ідеї створення цього засобу і закінчуючи процесом вилучення його з експлуатації. Якщо для різних галузей практичної діяльності людини технологічні процеси, які супроводжують виробництво, розвивалися на протязі століть (а іноді тисячоліть), то технології, пов’язані з розробкою комп’ютерного програмного забезпечення виникли всього декілька десятиріч тому, і мабуть немає в наш час такої сфери виробництва, для якої технологічні процеси та засоби розвивалися настільки ж динамічно. Як в будь - якому технологічному процесі, в технології розробки програмного забезпечення існують основні базові принципи та методи, але у зв’язку із швидким розвитком комп’ютерної техніки, інструментальних систем програмування, розширенням сфер застосування програмного забезпечення та зростанням вимог до його якості, ці базові принципи поступово модифікуються у відповідності до наявних вимог. Тому було б великою помилкою розглядати технологічні процеси пов’язані з розробкою програмного забезпечення як статичні, обмежуючись вивченням тільки їх загальних основ, особливо, якщо розглядати “Технологію розробки програмного забезпечення”, як навчальну дисципліну. У цьому випадку охопити весь спектр питань пов’язаних з розробкою різнотипного програмного забезпечення є просто неможливим, і тому мова в першу чергу йде про розгляд питань, пов’язаних з розробкою надійного прикладного програмного забезпечення, з застосуванням як базових технологічних принципів розробки, так і сучасних методик і засобів. Технологія програмування складається з трьох взаємопов’язаних частин:
основних етапів, які визначають послідовність технологічних операцій проектування;
критеріїв і правил, які використовуються для оцінки результатів виконання технологічних операцій;
програмних та апаратних засобів, які використовуються при проектуванні системи.
Кількість та склад етапів проектування залежить від декількох факторів, а саме від типу життєвого циклу програмного засобу, вибраного в якості базової моделі проекту, складності системи, що проектується, наявних ресурсів і т.д. Але можна відокремити етапи, які будуть присутні у будь - якому випадку:
визначення функцій та основних вимог до програмного засобу;
розробка структури, алгоритмів рішень та програмних модулів;
тестування та відладка програмного засобу;
впровадження та супровід програмного засобу.
Що стосується критеріїв і правил, які призначені для оцінки виконання окремих технологічних етапів або програмного засобу в цілому, то вони можуть базуватися на певній системі стандартів або технічному завданні на розробку. Головне, щоб ці критерії не мали протиріч і довали об’єктивну оцінку програмному продукту. Вибір програмного забезпечення та апаратних засобів для розробки системи не має принципового значення, якщо це не обумовлено у технічному завданні, але може значно вплинути на продуктивність виконання роботи, а в кінцевому результаті і на її якість. Кожна з вказаних частин та її вплив на процес розробки програмного забезпечення буде розглянута в подальшому, але необхідно пам’ятати, що будь який технологічний процес, включаючи і технологію розробки програмного забезпечення є складним процесом, який залежить від багатьох факторів, серед яких значну роль відіграє суб’єктивний фактор - власний підхід розробника до вирішення поставленої задачі. Головне при цьому, що б незалежно від вибору технологічних рішень і засобів, в результаті був отриманий якісний програмний продукт, якій виконує задані функції, з найменшими витратами ресурсів.
Для оцінки програмного модуля застосовуються наступні характеристики:
розмір модуля,
міцність модуля,
зчеплення з іншими модулями,
рутинність модуля (незалежність від передісторії звертань до нього).
Розмір модуля вимірюється числом операторів, що містяться в ньому, чи рядків. Модуль не повинний бути занадто маленьким чи занадто великим. Маленькі модулі приводять до громіздкої модульної структури програми і можуть не окупати накладних витрат, зв'язаних з їхнім оформленням. Великі модулі незручні для вивчення і змін, вони можуть істотно збільшити сумарний час повторних трансляцій програми при налагодженні програми. Звичайно рекомендуються програмні модулі розміром від декількох десятків до декількох сотень операторів. Міцність модуля - це міра його внутрішніх зв'язків. Чим вище міцність модуля, тим більше зв'язків він може зкрити від зовнішньої стосовно нього частини програми і, отже, тим більший внесок у спрощення програми він може внести. Самим слабким ступенем міцності володіє модуль, міцний по збігу. Це такий модуль, між елементами якого немає осмислених зв'язків. Такий модуль може бути виділений, наприклад, при виявленні в різних місцях програми повторення однієї і тієї ж послідовності операторів, що і оформляється в окремий модуль. Необхідність зміни цієї послідовності в одному з контекстів може привести до зміни цього модуля, що може зробити його використання в інших контекстах помилковим. Функціонально міцний модуль - це модуль, що виконує одну яку-небудь визначену функцію. При реалізації цієї функції такий модуль може використовувати й інші модулі. Такий клас програмних модулів рекомендується для використання. Інформаційно міцний модуль - це модуль, що виконує кілька операцій (функцій) над однією і тією же структурою даних (інформаційним об'єктом), що вважається невідомою поза цим модулем. Для кожної з цих операцій у такому модулі мається свій вхід зі своєю формою звертання до нього. Такий клас варто розглядати як клас програмних модулів з вищим ступенем міцності. Інформаційно міцний модуль може реалізовувати, наприклад, абстрактний тип даних. Зчеплення модуля - це міра його залежності за даними від інших модулів. Характеризується способом передачі даних. Чим слабкіше зчеплення модуля з іншими модулями, тим сильніше його незалежність від інших модулів. Найгіршим видом зчеплення модулів є зчеплення по змісту. Таким є зчеплення двох модулів, коли один з них має прямі посилання на вміст іншого модуля (наприклад, на константу, що міститься в іншому модулі). Не рекомендується використовувати також зчеплення по загальній області - це таке зчеплення модулів, коли кілька модулів використовують ту саму область пам'яті. Єдиним видом зчеплення модулів, що рекомендується для використання сучасною технологією програмування, є параметричне зчеплення - це випадок, коли дані передаються модулю або при звертанні до нього як до значень його параметрів, або як результат його звертання до іншого модуля для обчислення деякої функції. Такий вид зчеплення модулів реалізується на мовах програмування при використанні звертань до процедур (функцій). Рутинність модуля - це його незалежність від передісторії звертань до нього. Модуль називається рутинним, якщо результат (ефект) звертання до нього залежить тільки від значень його параметрів (і не залежить від передісторії звертань до нього). Модуль називається залежним від передісторії, якщо результат (ефект) звертання до нього залежить від внутрішнього стану цього модуля, який змінюється в результаті попередніх звертань до нього. Не рекомендується використовувати залежні від передісторії модулі, тому що вони провокують появу в програмах хитрих (невловимих) помилок. Однак така рекомендація є неконструктивною, тому що в багатьох випадках саме залежний від передісторії модуль є кращою реалізацією інформаційно міцного модуля. Тому більш прийнятна наступна рекомендація: