У нас: 141825 рефератів
Щойно додані Реферати Тор 100
Скористайтеся пошуком, наприклад Реферат        Грубий пошук Точний пошук
Вхід в абонемент


Основні етапи розвитку програмування. Життєвий цикл програмного забезпечення

План

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

2. Життєвий цикл програмного забезпечення

Література

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

Швидкий розвиток нових технологій програмування безпосередньо пов’язаний з бурхливим розвитком науково-технічного прогресу і комп’ютерної техніки зокрема. Щоб розібратись в деяких існуючих технологіях програмування, звернімось всього на декілька десятиліть назад і спробуємо визначити основні етапи розвитку програмування як науки.

Програми для перших обчислювальних машин створювались, як правило, в машинних кодах або на асемблері і були схожі на витвір мистецтва, бо повинні були поміститись у мініатюрному за сучасними поняттями об’ємі пам’яті. Пошуки помилки в програмі можна було, мабуть, порівняти з муками Тантала. Програмісти були схожі на “вищу касту” серед нормальних людей, бо вони єдині були здатні на спілкування з обчислювальною технікою. Цей етап програмування називають “стихійним програмуванням”. Створення нових алгоритмічних мов програмування, таких як FORTRAN та ALGOL, дещо покращило, але не змінило в корені ситуацію. Революційний винахід засобів, що підтримували можливість використання підпрограм, привів до підвищення складності програм. Були створені цілі бібліотеки службових та розрахункових програм, які можна було використовувати в різних програмних системах. Дані в програмах зберігались, як правило, в глобальних областях, які спільно використовувались різними підпрограмами. В 60-х роках минулого вже століття вибухнув так званий кризис програмування. Вираженням його стали програмні проекти, які встигали морально застаріти ще на рівні розробки, і перевищували всі можливі терміни в часі та вартості. Бідою більшості програмних проектів ставали численні помилки, пошуки та виправлення яких займали до 90% часу, відведеного на розробку. Багато з них так і не були завершені. Причиною такого положення речей стала відсутність ретельно продуманих технологій або методів програмування.

Глибокий та ретельний аналіз причин даного кризису привів до створення робочої групи з методології програмування при Міжнародній федерації по обробці інформації. До її складу увійшло багато відомих програмістів, наприклад, Н. Вірт, П. Наур, Ч.Хоар, У. Дал, Е. Дейкстра. Їх спільні зусилля привели до оформлення нової технології (інколи кажуть – парадігми) програмування – структурного програмування [3, 4, 9, 12, 15]. Завдяки принципам структурного програмування вдалося подолати фактор складності та зрозуміти причини невдач програмних проектів великого масштабу. Ці принципи детально будуть розглянуті нижче, тут лише зазначимо, що вони спрямовані на створення програмних проектів з прозорою логікою функціонування. Цього вдається досягти завдяки правильному структуруванню проекту в цілому і кожного його модуля зокрема.

Сучасні технології програмування базуються на принципах об’єктно-орієнтованого програмування, завдяки якому складні програмні проекти реалізуються у вигляді сукупності об’єктів певної ієрархії. Їх взаємодія встановлюється шляхом передачі повідомлень між об’єктами. На підтримку нової технології програмування були створені нові мови, наприклад C++, Java, Modula. Організація програм на засадах інкапсуляції, успадкування, поліморфізму дозволила значно підвищити рівень програмних проектів.

Перспективи подальшого розвитку програмування вбачаються у так званому компонентному підході [8].

2. Життєвий цикл програмного забезпечення

Процес створення та використання програмної системи включає декілька стадій: від початкової ідеї до остаточного морального застаріння. Цей процес називається життєвим циклом програмного забезпечення [6, 8, 11]. Він складається з наступних 6 етапів.

Специфікація вимог:

а) підготовка повного і чіткого визначення задачі;

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

Аналіз:

а) вивчення задачі, визначення специфікацій (тобто структури вхідних та вихідних даних);

б) оцінка альтернативних методів розв’язання (алгоритмів);

в) вибір оптимального метода (алгоритма).

Проектування:

а) визначення структури програмної системи та її проектування;

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

Реалізація:

а) створення алгоритмів і кодів окремих модулів вибраною мовою програмування;

б) створення вихідного текста програми;

в) налагодження вихідного текста.

Тестування і верифікація:

а) тестування вихідного текста;

б) участь користувачів і спеціальних колективів (тестерів) у всіх перевірках системи.

Експлуатація і супроводження:

а) використання готової програмної системи;

б) оцінка її ефективності;

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

г) внесення необхідних змін для підтримки актуальності програмної системи;

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

Життєвий цикл програмного забезпечення є ітеративним, тобто допускає багатократне повторення своїх етапів. В ході розробки (етап 3) можуть виникнути проблеми, які будуть вимагати змін вимог до системи (етап 1); під час реалізації (етап 4) може виникнути необхідність переглянути результати, отримані під час розробки (на етапі 3); під час тестування (етап 5) можуть бути виявлені помилки і так далі.

Розглянемо детальніше деякі аспекти програмування згідно хронології життєвого циклу програмного продукту.

ЛІТЕРАТУРА

Н. Вирт. Систематическое программирование. – М.: Мир, 1977. – 183 с.

Ален И. Голуб. С и С++. Правила программирования. – М.: БИНОМ, 1996. – 272 с.

У. Дал, Э. Дейкстра, К. Хоор. Структурное программирование. – М.: Мир, 1973. – 247 с.

Э. Дейкстра. Дисциплина программирования. – М.: Мир, 1978. – 275 с.

Д. Ван Тассел. Стиль, разработка, эффективность, отладка и испытание программ. – М.: Мир, 1985. – 332 с.

М. Зелковиц, А. Шоу, Дж. Гэннон. Принципы разработки программного обеспечения. – М.: Мир, 1982. – 368 с.

Г. С. Иванова. Основы программирования: Учебник для вузов. – М.: Изд-во МГТУ им. Н.Э. Баумана, 2002. – 416 с.