
- •Короткий конспект для підготовки до іспиту з предмета"Конструювання програмних засобів"
- •1. Цілі і завдання конструювання пз. Особливості сучасних великих проектів іс
- •2. Основні визначення. Програмні засоби. Програмне забезпечення (пз). Програмний продукт. Проектування пз. Програмування.
- •3. Класифікація типів програмного забезпечення.
- •4. Життєвий цикл (жц) пз. Процеси жц пз.
- •5. Моделі жц пз. Каскадна модель. Зміст етапів створення пз.
- •6. Моделі жц пз. Спіральна модель. Зміст етапів створення пз.
- •7. Моделі жц пз. Інкрементальная модель. Зміст етапів створення пз.
- •8. Розвиток інкрементального підходу. Xp-процессы.
- •9. Міжнародні стандарти проектування, розробки, оформлення документації, призначеного для користувача інтерфейсу пз.
- •10. Вимірювання, заходи і метрики. Розмірно-орієнтовані метрики. Функціонально-орієнтовані метрики.
- •11. Виконання оцінки проекту на основі loc- і fp-метрик
- •12. Проект. Склад і структура колективу розробників, їх функції.
- •13. Структурний підхід до проектування іс. Суть структурного підходу
- •14. Структурний підхід до проектування іс. Case - засоби розробки пз.
- •15. Методологія функціонального моделювання sadt. Склад функціональної моделі. Ієрархія діаграм. Типи зв'язків між функціями. Приклади функціональних моделей в стандарті Idef0.
- •16. Моделювання потоків даних (процесів). Зовнішня суть. Системи і підсистеми. Процеси. Накопичувачі даних. Потоки даних. Побудова ієрархії діаграм потоків даних.
- •17. Моделювання даних. Case-метод Баркера. Методологія Idef1.
- •18. Проектування іс на основі об'єктно-орієнтованого підходу. Зіставлення і взаємозв'язок структурного і об'єктно-орієнтованого підходів.
- •20. Раціональний Уніфікований Процес. Динамічні аспекти процесів: структура жц, стадії, ітерації і контрольні крапки.
- •21. Раціональний Уніфікований Процес. Статичний зміст процесу: види діяльності (технологічні операції), робочі продукти, виконавці і дисципліни (технологічні процеси).
- •22. Якість програмного продукту. Критерії якості пз.
- •1. Зовнішні
- •2. Внутрішні
- •23. Сертифікація фірм розробників по моделі якості смм.
- •24. Документація, що створюється в процесі розробки програмних засобів. Документи управління розробкою пз. Документи, що входять до складу пз.
- •25. Призначена для користувача документація.
- •26. Документація по супроводу програмних засобів.
- •27. Людський чинник в управлінні проектами. Завдання n-личностей. Закон Брукса. Підходи до управління групами і керівництва ними.
8. Розвиток інкрементального підходу. Xp-процессы.
- екстремальне програмування XP (Кент Бек, 1999). Воно орієнтоване на дуже малі прирости функціональності.
- модель швидкої розробки додатків RAD (Rapid Application Development). RAD-модель забезпечує естремально короткий цикл розробки. Швидка розробка досягається за рахунок використання компонентно орієнтованого конструювання. Якщо вимоги повністю визначені, а проектна область обмежена, RAD- процес дозволяє групі створити повністю функціональну систему за 60-90 днів.
Виділяють наступні етапи:
- бізнес-моделювання. Моделюються інформаційні потоки між бзнесм-функциями.
- моделювання даних. Інформаційний потік відображається в набір об'єктів даних.
- моделювання обробки. Визначаються перетворення об'єктів даних, що забезпечують реалізацію бізнес-функцій.
- генерація додатку. Використовуються мови програмування 4-го покоління, готові компоненти, для конструювання утиліти автоматизації.
- тестування і об'єднання. Застосування повторно використовуваних компонентів зменшує час тестування.
Кожна головна функція розробляється окремою групою розробників паралельно не більше 3 місяців, а потім вони інтегруються в цілу систему.
Недоліки застосування RAD:
1. Для великих проектів потрібні значні людські ресурси для створення груп.
2. Модель застосовна тільки для тих систем, які можуть декомпозіроваться на окремі модулі і в яких продуктивність не є критичною величиною.
3. Не застосовна в умовах високих технічних рисок, тобто при використанні нової технології.
У сучасній програмній інженерії виділяють два сімейства процесів розробки:
- прогнозуючі (predictive) або ваговиті (heavyweight) процеси - прогнозується весь об'єм робіт, великий об'єм документації, строгий порядок розробки, фіксовані вимоги і численна група розробників різної кваліфікації.
- подвижные (agile) или облегченные (lightweight) процессы- учитывают особенности современного заказчика, т.е. частые изменения его требований, привлекательны отсутствием бюрократизма. Необходима малочисленная группа высоко квалифицированных разработчиков и грамотный заказчик, согласный участвовать в разработке.
Екстремальне програмування - це полегшений процес (Кент Бек, 1999). Він орієнтований на групи малого і середнього розміру, що працюють в умовах невизначених і таких, що швидко змінюються вимог. До групи входить до 10 співробітників, що працюють в одному приміщенні.
На всьому протязі ітераційного циклу вимоги постійно міняються, причому цикл складається з дуже коротких ітерацій.
Базові дії на кожній ітерації: кодування, тестування, вислухування замовника, проектування.
Динамізм забезпечується наступними характеристиками:
- безперервний зв'язок із замовником;
- простота (завжди вибирається мінімальне рішення)
- швидкий зворотний зв'язок (модульне і функціональне тестування)
- сміливість в проведенні профілактики можливих проблем.
Базис XP утворюють 12 методів:
1. Гра планування - Локальний замовник забезпечує набір "історії", які описують необхідну функціональність. До кожної нової версії до поточного набору "історій" вносяться найбільш важливі історії.
2. Часта зміна версій нові версії кожні 2 тижні.
3. Метафора -вся розробка проводиться на основі простої загальнодоступної історії про те як працює система. Історії забезпечують замовники.
4. Просте проектування
5. Тестування - безперервне написання тестів для модулів. Вхідним критерієм для написання коди є тестовий варіант, що відмовив. Замовники беруть участь в тестуванні.
6. Реорганізація - система реструктуризується, але її поведінка не міняється. Мета спростити систему, поліпшити взаємодію або додати в неї гнучкість.
7. Парне програмування -весь код пишеться двома програмістами, що працюють на одному комп'ютері.. Воно приводить до підвищення якості і зменшення часу циклу на 40-50%, при збільшенні витрат на ресурси на 15%
8. колективне володіння кодом-любой розробник може змінити будь-який фрагмент коди у будь-який час. Безперервна інтеграція, тестування і парне програмування забезпечує захист від проблем, що виникають при цьому.
9. Безперервна інтеграція -інтегрірованіє системи кілька разів в день у міру завершення кожного завдання.
10. 40-годинний тиждень -нельзя працювати наднормово.
11. Локальний замовник - в групі весь час повинен знаходитися представник замовника, готовий відповідати на всі питання.
12. Стандарти кодування - правила, що забезпечують однакове представлення програмної коди.