, що не вимагають участі великої кількості розробників. Трудомісткість розроблюваних програмних продуктів, як правило, невелика, а самі програмні продукти мають переважно прикладний характер.
При порушенні цих обмежень помітно знижується продуктивність праці розробників, падає якість розробки, і, як не парадоксально, збільшуються трудовитрати і вартість програмного продукту в цілому.
Автоматизоване проектування алгоритмів і програм виникло з необхідністю зменшити витрати на проектні роботи, скоротити терміни їх виконання, створити типові "заготівлі" алгоритмів і програм, багаторазово тиражованих для різних розробок, координації робіт великого колективу розробників, стандартизації алгоритмів і програм.
Автоматизація проектування може охоплювати всі або окремі етапи життєвого циклу програмного продукту, при цьому роботи етапів можуть бути ізольовані один від одного або складати єдиний комплекс, що виконується послідовно в часі. Як правило, автоматизований підхід вимагає технічного та програмного "переозброєння" праці самих розробників (потужних комп'ютерів, дорогого програмного інструментарію, а також підвищення кваліфікації розробників і т.п.). p align="justify"> Автоматизоване проектування алгоритмів і програм під силу лише великим фірмам, що спеціалізуються на розробці певного класу програмних продуктів, що займають стійке положення на ринку програмних засобів.
Проектування алгоритмів і програм може грунтуватися на різних підходах, серед яких найбільш поширені:
структурне проектування програмних продуктів;
інформаційне моделювання предметної області та пов'язаних з нею додатків;
об'єктно-орієнтоване проектування програмних продуктів.
В основі структурного проектування лежить послідовна декомпозиція, цілеспрямоване структурування на окремі складові. Початок розвитку структурного проектування алгоритмів і програм падає на 60-і рр.. Методи структурного проектування являють собою комплекс технічних і організаційних принципів системного проектування.
Типовими методами структурного проектування є:
спадний проектування, кодування і тестування програм;
модульне програмування;
структурне проектування (програмування) та ін
Залежно від об'єкта структурування розрізняють:
функціонально-орієнтовані методи - послідовне розкладання задачі або цілісної проблеми на окремі, досить прості складові, що володіють функціональної визначеністю;
методи структурування даних.
Для функціонально-орієнтованих методів у першу чергу враховуються задані функції обробки даних, відповідно до яких визначається склад і логіка роботи (алгоритми) окремих компонентів програмного продукту. Зі зміною змісту функцій обробки, їх складу, відповідного їм інформаційного входу і виходу потрібно перепроектування програмного продукту. Основний упор в структурному підході робиться на моделювання процесів обробки даних. p align="justify"> Для методів структурування даних здійснюється аналіз, структурування і створення моделей даних, стосовно до яких встановлюється необхідний склад функцій і процедур обробки. Програмні продукти тісно пов'язані зі структурою оброблюваних даних, зміна якої відображається на логіці обробки (алгоритмах) і обов'язково вимагає перепроектування програмного продукту. p align="justify"> Структурний підхід використовує:
діаграми потоків даних (інформаційно-технологічні схеми) - показують процеси та інформаційні потоки між ними з урахуванням "подій", що ініціюють процеси обробки;
інтегровану структуру даних предметної області (инфологическая модель, ER-діаграми);
діаграми декомпозиції - структура і декомпозиція цілей, функцій управління, додатків;
структурні схеми - архітектура програмного продукту у вигляді ієрархії взаємозалежних програмних модулів з ідентифікацією зв'язків між ними, детальна логіка обробки даних програмних модулів (блок-схеми).
Для повного уявлення про програмний продукт необхідна також текстова інформація описового характеру.
Ще більшу значимість інформаційні моделі та структури даних мають для інформаційно...