
- •Лекція 1. Тема: ядра знань swebok
- •1.1. Аналіз і характеристика областей знань swebok
- •1.1.1 Основи програмних вимог (Software Requirements)
- •1.1.2. Проектування пз (Software design)
- •1.1.3. Конструювання пз (Software Construction)
- •1.1.4 Тестування пз (Software Testing)
- •1.1.5 Супровід пз (Software maintenance)
- •1.1.6. Управління конфігурацією пз (Software Configuration Management– scm)
- •1.1.7. Управління інженерією пз (Software Engineering Management)
- •1.1.8. Процес інженерії пз (Software Engineering Process)
- •1.1.9. Методи і засоби інженерії пз (Software Engineering Tools and Methods)
- •Лекція 2. Тема: життєвий цикл і етапи розробки програмного забезпечення
- •Лекція 3. Тема: еволюція моделей життєвого циклу програмного забезпечення
- •1.6. Прискорення розробки пз.
- •Лекція 4. Тема: оцінка якості процесів створення програмного забезпечення
- •Лекція 5. Тема: визначення вихідних даних для проектування програмного забезпечення
- •5.1 Визначення вимог до пз
- •5.2 Формування і аналіз вимог
- •5.2.1 Опорні точки зору
- •5.2.2 Сценарії
- •5.2.3 Етнографічний метод
- •5.3 Специфікація вимог
- •5.4 Атестація вимог
- •5.5 Класифікація програмних продуктів за функціональною ознакою
- •5.6 Основні експлуатаційні вимоги до програмних продуктів
- •5.7 Передпроектні дослідження предметної області
- •Лекція 6. Тема: розробка технічного завдання
- •2. Підстави для розробки
- •3. Призначення
- •4. Вимоги до програми або програмного виробу
- •5. Вимоги до програмної документації
- •1. Вступ
- •2. Підстава для розробки
- •3. Призначення
- •4. Вимоги до програми або програмного виробу
- •4.1. Вимоги до функціональних характеристик
- •Лекція 7. Тема: принципові рішення початкових етапів проектування
- •Контрольні питання і завдання
- •Аналіз вимог і визначення специфікацій програмного забезпечення при структурному підході
- •Лекція 8. Тема: Специфікації програмного забезпечення при структурному підході
- •Flow-форми
- •Діаграми Насси-Шнейдермана
- •Контрольні питання та завдання:
- •Лекція 9. Тема: діаграми потоків даних
- •Словник даних
- •Вміст словника даних
- •Лекція 10. Тема: діаграми «сутність-зв’язок»
- •Лекція 11. Тема: приклади побудови діаграм та специфікації процесів
- •Лекція 12 Тема: діаграми переходів станів
- •13.1. Структурна схема майбутнього програмного забезпечення
- •13.2 Використання методу покрокової деталізації для проектування структури програмного забезпечення
- •13.3 Структурні карти Константайна
- •13.4.Структурні карти Джексона
- •13.5 Характеристики хорошої моделі реалізації
- •Зчеплення
- •Зв’язаність
- •13.6 Функціональна схема
- •Лекція 14. Тема: методології структурного аналізу і проектування
- •Контрольні питання та завдання
- •Лекція 15. Тема: синтаксис діаграм
- •Контрольні питання та завдання
- •Лекція 16. Тема: Синтаксис діаграм
- •Збір інформації
- •Контрольні питання та завдання:
- •Лекція 17. Тема: побудова sadt-діаграм
- •17.2. Побудова sadt-діаграми для процесу “Побудова таблиць/графіків функцій однієї змінної”
- •Типи зв'язків між функціями
- •Лекція 18. Тема: доповнення до діаграм і моделей
- •Критерії оцінки і вибору
- •Функціональні характеристики
- •3. Загальні функції:
Критерії оцінки і вибору
Критерії формують базис для процесів оцінки і вибору і можуть приймати різні форми, включаючи:
числові міри в широкому діапазоні значень, наприклад, об'єм необхідної пам'яті;
числові міри в обмеженому діапазоні значень, наприклад, простота освоєння, виражена в балах від 1 до 5;
двійкові міри (істина/брехня, так/ні), наприклад, здатність генерації документації у форматі Postscript;
міри, які можуть приймати одне або більш з кінцевої безлічі значень, наприклад, платформи, для яких підтримується CASE-засіб.
Типовий процес оцінки і/або вибору може використовувати набір критеріїв різних типів.
Структура набору критеріїв приведена на рис18.4. Кожен критерій повинен бути вибраний і адаптований експертом з урахуванням особливостей конкретного процесу. В більшості випадків тільки деякі з безлічі описаних нижче критеріїв виявляються прийнятними для використання, при цьому також додаються додаткові критерії. Вибір і уточнення набору критеріїв є критичним кроком в процесі оцінки і/або вибору.
Рисунок
18.4 – Структура набору критеріїв
Функціональні характеристики
Критерії першого класу призначені для визначення функціональних характеристик CASE-засобу. Вони у свою чергу підрозділяються на ряд груп і підгруп.
1. Середовище функціонування:
Проектне середовище:
підтримка процесів життєвого циклу. Визначає набір процесів ЖЦ, які підтримує CASE-засіб. Прикладами таких процесів є аналіз вимог, проектування, реалізація, тестування і оцінка, супровід, забезпечення якості, управління конфігурацією і управління проектом, причому вони залежать від прийнятої користувачем моделі ЖЦ.
область використання. Прикладами є системи обробки транзакцій, системи реального часу, інформаційні системи і так далі.
розмір підтримуваних додатків. Визначає обмеження на такі величини, як кількість рядків коду, рівнів вкладеності, розмір бази даних, кількість елементів даних, кількість об'єктів конфігураційного управління.
ПЗ/технічні засоби:
необхідні технічні засоби. Устаткування, необхідне для функціонування CASE-засобу, включаючи тип процесора, об'єм оперативної і дискової пам'яті.
які технічні засоби підтримуються. Елементи устаткування, які можуть використовуватися CASE-засобом, наприклад, пристрої введення/виводу.
потрібне ПЗ. ПЗ, необхідне для функціонування CASE-засобу, включаючи операційні системи і графічні оболонки.
яке ПЗ підтримується. Програмні продукти, які можуть використовуватися CASE-засобом.
Технологічне середовище:
відповідність стандартам технологічного середовища. Такі стандарти стосуються мови, бази даних, репозиторія, комунікацій, графічного інтерфейсу користувача, документації, розробки, управління конфігурацією, безпеки, стандартів обміну інформацією і інтеграції по даним, по управлінню і по призначеному для користувача інтерфейсу.
сумісність з іншими засобами. Здібність до взаємодії з іншими засобами, включаючи безпосередній обмін даними (прикладами таких засобів є текстові процесори, бази даних і інші CASE-засоби). Можливість перетворення репозиторія або його частини в стандартний формат для обробки іншими засобами.
методологія, яка підтримується. Набір методів і методик, підтримуваних CASE-засобом. Прикладами є структурний або об'єктно-орієнтований аналіз і проектування.
мови, які підтримуються. Всі мови, які використовуються CASE-засобом. Прикладами таких мов є мови програмування (Кобол, Ада, С), мови баз даних і мови запитів (DDL, SQL), графічні мови (Postscript, HPGL), мови специфікацій проектних вимог і інтерфейси операційних систем (мови управління завданнями).
2. Функції, орієнтовані на фази життєвого циклу:
Моделювання:
Дані критерії визначають здатність виконання функцій, необхідних для специфікації вимог до ПЗ і перетворення їх в проект:
побудова діаграм. Можливість створення і редагування діаграм різних типів, що представляють інтерес для користувача.
графічний аналіз. Можливість аналізу графічних об'єктів, а також зберігання і представлення проектної інформації в графічному уявленні. В більшості випадків графічні аналізатори інтегровані із засобами побудови діаграм.
введення і редагування специфікацій вимог і проектних специфікацій. До специфікацій такого роду відносяться описи функцій, даних, інтерфейсів, структури, якості, продуктивності, технічних засобів, середовища, витрат і графіків.
мова специфікації вимог і проектних специфікацій. Можливість імпорту, експорту і редагування специфікацій з використанням формальної мови.
моделювання даних. Можливість вводу і редагування інформації, що описує елементи даних системи і їх відношення.
моделювання процесів. Можливість введення і редагування інформації, що описує процеси системи і їх відношення.
проектування архітектури ПЗ. Проектування логічної структури ПЗ - структури модулів, інтерфейсів і інш.
імітаційне моделювання. Можливість динамічного моделювання різних аспектів функціонування системи на основі специфікацій вимог і/або проектних специфікацій, включаючи зовнішній інтерфейс і продуктивність (наприклад, час відгуку, коефіцієнт використання ресурсів і пропускну спроможність).
прототипування. Можливість проектування і генерації попереднього варіанту всієї системи або її окремих компонент на основі специфікацій вимог і/або проектних специфікацій.
генерація екранних форм. Можливість генерації екранних форм на основі специфікацій вимог і/або проектних специфікацій.
можливість трасування. Можливість крізного аналізу функціонування системи від специфікації вимог до кінцевих результатів (встановлення і відстежування відповідностей і зв'язків між функціональними і іншими зовнішніми вимогами до ІС, технічними рішеннями і результатами проектування). Пряме трасування (перевірка обліку всіх вимог) і зворотне трасування (пошук проектних рішень, не пов'язаних ні з якими зовнішніми вимогами).
синтаксичний і семантичний контроль проектних специфікацій. Контроль синтаксису діаграм і типів їх елементів, контроль декомпозиції функцій, перевірка специфікацій на повноту і несуперечність.
інші види аналізу. Конкретні додаткові види аналізу можуть включати алгоритми, потоки даних, нормалізацію даних, використання даних, призначений для користувача інтерфейс.
автоматизоване проектування звітів.
Реалізація:
Реалізація зачіпає функції, пов'язані із створенням елементів системи (програмних кодів) або модифікацією існуючої системи. Багато хто з перерахованих нижче критеріїв залежить від конкретних мов і включають наступні:
синтаксично кероване редагування. Можливість введення і редагування початкових кодів на одному або декількох мовах з одночасним синтаксичним контролем.
генерація коду. Можливість генерації коду на одному або декількох мовах на основі проектних специфікацій. Типи коду, що генерується, можуть включати звичайний програмний код, схему бази даних, запити, екрани/меню.
компіляція коду.
конвертація початкового коду. Можливість перетворення коду з однієї мови в іншу.
аналіз надійності. Можливість кількісно оцінювати параметри надійності ПЗ, такі, як кількість помилок і т.д.
реверсний інжиніринг. Можливість аналізу існуючих початкових кодів і формування на їх основі проектних специфікацій.
реструктуризація початкового коду. Можливість модифікації формату і/або структури існуючого початкового коду.
аналіз початкового коду. Прикладами такого аналізу можуть бути визначення розміру коду, обчислення показників складності, генерація перехресних посилань і перевірка на відповідність стандартам.
відладка. Типові функції відладки - трасування програм, виділення вузьких місць і найбільш часто використовуваних фрагментів коду і т.д.
Тестування:
Критерії тестування наступні:
опис тестів. Типові можливості включають генерацію тестових даних, алгоритмів тестування, необхідних результатів і т.д.
фіксація і повторення дій оператора. Можливість фіксувати дані, що вводяться оператором за допомогою клавіатури, миші і так далі, редагувати їх і відтворювати в тестових прикладах.
автоматичний запуск тестових прикладів.
регресійне тестування. Можливість повторення і модифікації раніше виконаних тестів для визначення відмінностей в системі і/або середовищі.
автоматизований аналіз результатів тестування. Типові можливості включають порівняння очікуваних і реальних результатів, порівняння файлів, статистичний аналіз результатів і ін.
аналіз тестового покриття. Оснащеність засобами контролю початкового коду і аналіз тестового покриття. Перевіряються, зокрема, звернення до операторів, процедур і змінних.
аналіз продуктивності. Можливість аналізу продуктивності програм. Аналізуючи параметри продуктивності можуть включати використання центрального процесора, пам’яті, звернення до певних елементів даних і/або сегментам коду, тимчасові характеристики і т.д.
аналіз виняткових ситуацій в процесі тестування.
динамічне моделювання середовища. Зокрема, можливість автоматично генерувати модельовані вхідні дані системи.