
- •1. Загальні питання створення сапр
- •1.1. Загальні відомості про проектування
- •1.2. Поняття сапр
- •Передумова автоматизованого проектування
- •1.3. Переваги сапр
- •2.Класифікація і позначення
- •2.1. Структура сапр
- •2.2. Різновиди сапр
- •2.3. Функції, характеристики і приклади cae / cad / cam – систем
- •2.4. Поняття про cals-технології
- •2.5. Комплексні автоматизовані системи
- •3.1. Проектні процедури
- •3.2. Еврістичні і систематичні рішення
- •3.3. Види проектних задач
- •3.4. Ідеологія сапр
- •3.5. Декомпозиція проектних задач і системний підхід
- •3.6. Концепція і методологія автоматизованого проектування
- •4. Структура сапр
- •4.1. Л інгвистичне забезпечення сапр
- •Загальна характеристика
- •Управляюче лінгвістичне забезпечення
- •Базове лінгвістичне забезпечення
- •4.2. Програмне забезпечення сапр
- •4.3. Склад і функціональне призначення програмного забезпечення сапр
- •4.4. Основні принципи проектування пз сапр
- •4.5. Стадії розробки пз
- •4.6. Загальна характеристика методів проектування програмного забезпечення сапр
- •Методи проектування програмних систем
- •Методи програмування пз сапр
- •Модульне і структурне програмування. Програмування в стандартизованому стилі.
- •4.7. Документування програмного забезпечення сапр
- •Види програмних документів
- •Склад програмного документа
- •Зміст основних документів
- •4.8. Нисхідне і висхідне проектування
- •5. Математичне забезпечення автоматизованого проектування
- •Класифікація математичних моделей
- •6. Інформаційно- пошукові системи сапр
- •7. Технічні засоби сапр
- •8. Програмне забезпечення машинної графіки
- •Программное обеспечение сапр
- •Требования, которым должно удовлетворять по сапр
- •Прикладное по
- •По, созданное пользователем (приложение)
- •Средства двумерного черчения
- •3D моделирование
- •Каркасные модели
- •Поверхностное моделирование
- •Твердотельное моделирование (тм).
- •Функції пакета програм машинної графіки
- •Каркасне та об’ємне моделювання
- •Сучасні графічні пакети для інженерів машинобудівельників
- •Автоматизована розробка виробничих процесів
- •Автоматизовані системи розробки виробничих процесів пошукового типу
- •Генеруючі автоматизовані системи розробки виробничих процесів
- •Переваги автоматизованої розробки виробничих процесів
- •Експертні системи
- •Система управління виробничою інформацією pdm – системи.
4.6. Загальна характеристика методів проектування програмного забезпечення сапр
Проектування є найважливішим етапом у сучасній технології створення ПЗ. На цьому етапі закладаються не тільки основні технічні характеристики програмних виробів, а й визначається зміст і характер роботи на інших етапах розробки: кодування, тестування і налагодження. Рішення, прийняті на етапі проектування, визначають простоту або складність супроводу.
Методи проектування програмних систем
У 60-70-ті роки ефективність застосування комп'ютерів різко зросла. У результаті стало вигідно створювати все більше прикладних програм підвищеної складності. В якості основних інструментів створення програмних продуктів почали застосовуватися алгоритмічні мови високого рівня. Ці мови розширили можливості окремих програмістів і груп розробників, що в свою чергу призвело до збільшення рівня складності програмних систем. У ці роки було розроблено багато методів, що допомагають впоратися зі зростаючою складністю програм. Найбільшого поширення набуло структурне проектування за методом зверху-вниз, або комбінований метод. Він був безпосередньо заснований на топології мов високого рівня типу FORTRAN і COBOL. У цих мовах основною базовою одиницею є підпрограма, і програма в цілому приймає форму дерева, в якому одні підпрограми в процесі роботи викликають інші підпрограми. Структурне програмування використовує саме такий підхід: алгоритмічна декомпозиція застосовується для розбиття великого завдання на маленькі.
Спосіб управління складними системами був відомий ще в давнину: divide et impera (розділяй і володарюй). При проектуванні складної програмної системи необхідно складати її з невеликих підсистем, кожну з яких можна налагодити незалежно від інших. У цьому випадку ми не виходимо за межі можливостей людини, відпущених їй природою: при розробці будь-якого рівня системи нам потрібно буде одночасно тримати в голові інформацію лише про небагатьох її частинах (аж ніяк не про всіх!).
Починаючи з 60-70-х років стали з'являтися комп'ютери ще більших можливостей. Значення структурного підходу залишилося колишнім, але виявилося, що структурний підхід не працює, якщо обсяг програми перевищує приблизно 100 000 рядків. Останнім часом з'явилися десятки методів, у більшості яких усунуті очевидні недоліки структурного проектування.
В даний час методи проектування можна розділити на три основні групи:
• метод структурного проектування "зверху вниз";
• метод організації потоків даних;
• об'єктно-орієнтоване проектування.
Приклади методів структурного проектування наведені в роботах Йордана і Костянтина (Yourdon E. and Constantine), Вірта (Wirth N.), Даля, Дейкстри і Хоара (Dahl O., Dijkstra EW, and Hoare C.A.R.) та ін. У кожному з цих підходів присутня алгоритмічна декомпозиція. Слід зазначити, що більшість існуючих програм написано у відповідності з одним з цих методів. Тим не менш структурний підхід не дозволяє виділяти абстракції і забезпечувати захист доступу до даних, не представляє він також достатніх коштів для організації паралелізму. Структурний підхід не може забезпечити створення гранично складних систем, і він, як правило, неефективний при використанні об'єктно-орієнтованих мов програмування.
Метод організації потоків даних найповніше описаний у роботі Джексона (Jackson M.), а також Уорніера і Орра (Orr K.). У цьому методі структура програмної системи будується як організація перетворень вхідних потоків у вихідні. Метод організації потоків даних, як і структурний метод, з успіхом застосовувався при вирішенні ряду складних завдань, зокрема, в системах інформаційного забезпечення, де існують прямі зв'язки між вхідними і вихідними потоками системи і де не потрібно приділяти багато уваги швидкодії.
В основі об'єктно-орієнтованого проектування (OOП) лежить уявлення про те, що програмну систему необхідно проектувати як сукупність взаємодіючих один з одним об'єктів, розглядаючи кожен об'єкт як екземпляр певного класу, причому класи при цьому утворюють ієрархію. Об'єктно-орієнтований підхід відображає топологію нових мов високого рівня, таких, як Smalltalk, Object Pascal, C + + і Ada.