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

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

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

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

На ранніх етапах розвитку програмування, коли програми писалися у вигляді послідовностей машинних команд, яка-небудь технологія програмування була відсутня. Після досягнення спочатку уявного непереборного рівня складності виникла інженерія програмування.  До кінця 70-х років програмування, як правило, було роботою окремих обдарованих людей. Із-за недосконалості перших методик програмування навіть відносно короткі програми (завдовжки близько 600 рядків) створювалися впродовж декількох місяців. Початок 80-х років відповідав широкому впровадженню в практику програмування методів проектування, запозичених з техніки. Наприклад, за прикладом техніки, впроваджується Госты, що регламентує стадії і етапи програмних розробок. Стандарт входить до групи стандартів єдиної системи програмної документації (ЕСПД). ЕСПД зіграла значиму позитивну роль в практиці програмування і пережила без значних змін вже декілька нових технологій програмування, наприклад, технологію структурного програмування і технологію об'єктно-орієнтованого програмування.

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

До теперішнього часу поняття процесу програмування якісно змінилися. Виробництво програм набуло масового характеру, істотно збільшився їх об'єм і складність. Розробка програмних комплексів зажадала значних зусиль великих колективів фахівців. Програми перестали бути тільки обчислювальними і почали виконувати найважливіші функції по управлінню і обробці інформації в різних галузях науки, техніка, в економіці та ін. З появою систем автоматизованого проектування (САПР) в 80-х роках були зроблені узагальнення теорії проектування технічних систем і пристроїв з виявленням інваріантів у вигляді проектних процедур, особливо евристичних. Були намічені шляхи і зроблені перші спроби їх автоматизації. Найбільш високу трудність представляє автоматизація ранніх етапів проектування. На цих етапах для задоволення потреби подолання дискомфорту необхідно синтезувати ідеї реалізації систем і пристроїв. Паралельний розвиток теорії програмування і теорії проектування зробив актуальним їх системне дослідження. Мета досліджень полягала в досягненні позитивного подальшого взаємного проникнення цих теорій.

 

В курсі розглядаються наступні теми:

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

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

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

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

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

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

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

У восьмій темі розглядається технологія об'єктно-орієнтованого проектування. Розбираються основні поняття технології. Розглядаються кроки етапів виконуваних робіт. Розглядаються приклади виконання проектів малої і середньої складності.

Дев'ята тема містить поняття технологій візуального програмування. Ця технологія дозволяє в діалоговому режимі створювати «скелет» програми.

У десятій темі розкривається поняття САПР програмних розробок, заснованих на CASE -средствах, що дозволяють в наочній формі моделювати предметну область, аналізувати цю модель на усіх етапах розробки і супроводу програмного проекту і розробляти застосування відповідно до інформаційних потреб користувачів. В главі розглядається CASE -средство IBM Rational Rose, призначене для автоматизації етапів аналізу і проектування програмних систем, а також для генерації кодів на різних мовах і випуску проектної документації.

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

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


Кредити: 5
Семестр: 123