
- •Основи програмної інженерії Тема 1. Поняття програмної інженерії. Вступ
- •Процес створення програмного забезпечення
- •Моделі технологічного процесу створення пз
- •Моделі процесу розробки по
- •Характеристики якісного пз
- •Тема 2. Види моделей систем. Поняття і класифікація вимог до програмної системи.
- •Способи запису специфікацій вимог.
- •Види моделей систем.
- •Мова моделювання uml.
- •Об'єктні моделі
- •Інструментальні case-засоби.
- •Тема 3. Поняття архітектурного проектування. Архітектурні моделі.
- •Архітектурний шаблон mvc.
- •Особливості шаблону mvc.
- •Модель проблемної сфери.
- •Тема 4. Важливі функціональні засоби мови c#. Автоматично реалізовані властивості.
- •Ініціалізатори об'єктів та колекцій.
- •Автоматичне виведення типу.
- •Анонімні типи.
- •Використання методів розширення Методи розширення
- •Застосування методів розширення до інтерфейсу
- •Створення фільтруючих методів розширення
- •Тема 5. Лямбда-вирази. Мова linq. Лямбда-вирази.
- •Мова linq.
- •Методи розширення linq.
- •Відкладені запити linq.
- •Тема 6. Створення слабо зв'язаних компонентів. Впровадження залежності.
- •Контейнери впровадження залежності.
- •Бібліотека Ninject.
- •Порядок роботи з Ninject.
- •Тема 7. Засоби доступу до даних. Технологія ado.Net.
- •Реалізація доступу до даних.
- •Робота з даними.
- •Тема 8. Тестування пз. Розробка через тестування. Автоматизоване тестування пз та його види.
- •Розробка через тестування. Робочий потік "червоний-зелений-рефакторинг".
- •Модель "організація.Дія.Твердження".
- •Використання бібліотеки Moq
- •Тема 9. Проектування інтерфейсу користувача. Інтерфейс користувача.
- •Переваги графічного інтерфейсу.
- •Процес проектування графічного інтерфейсу.
- •Принципи проектування інтерфейсів користувача.
- •Шаблони.
- •Тема 10. Основи інженерії вимог. Розробка вимог.
- •Формування і аналіз вимог.
- •Опорні точки зору.
- •Сценарії.
- •Атестація вимог.
- •Тема 11. Прототипування програмних систем. Поняття прототипування.
- •Переваги прототипування.
- •Види прототипування.
- •Технології швидкого прототипування.
- •Тема 12. Покомпонентна розробка. Компоненти і класи об'єктів.
- •Компоненти як постачальники послуг.
- •Рівні абстракції компонентів.
- •Вимоги до компонентів.
- •Тема 13. Шаблони проектування. Структурні шаблони.
- •Поняття шаблону проектування.
- •Основні елементи шаблону.
- •Механізми повторного використання.
- •Структурні шаблони проектування.
Тема 2. Види моделей систем. Поняття і класифікація вимог до програмної системи.
Опис функціональних можливостей і обмежень, що накладаються на програмну систему, називається вимогами до цієї системи, а сам процес формування, аналізу, документування та перевірки цих функціональних можливостей і обмежень - розробкою вимог (requirements engineering).
Види вимог до програмних систем.
Користувальницькі вимоги – опис на природній мові (плюс пояснюючі діаграми ) функцій, які виконуваних системою, і обмежень, що накладаються на неї.
Системні вимоги – деталізований опис системних функцій і обмежень, який іноді називають функціональною специфікацією. Вона служить основою для укладення контракту між покупцем системи та розробниками ПЗ.
Проектна системна специфікація – узагальнений опис структури програмної системи , який є основою для більш детального проектування системи і її подальшої реалізації . Ця специфікація доповнює і деталізує специфікацію системних вимог.
Приклад формулювання користувальницьких та системних вимог
Користувальницькі вимоги
ПЗ повинно надати засіб доступу до зовнішніх файлів, створеним в інших програмах.
Специфікація системних вимог
Користувач повинен мати можливість визначати тип зовнішніх файлів.
Для кожного типу зовнішнього файлу повинен існувати відповідний засіб, що застосовується до цього типу файлів.
Зовнішній файл кожного типу повинен бути представлений відповідною піктограмою на дисплеї користувача.
Користувачеві має бути надана можливість самому визначати піктограму для кожного типу зовнішніх файлів.
При виборі користувачем піктограми , що представляє зовнішній файл , до цього файлу має бути застосований засіб, який асоційований із зовнішніми файлами даного типу.
Користувальницькі вимоги пишуться для замовника ПЗ і для особи, яка укладає контракт на розробку програмної системи , причому вони можуть не мати детальних технічних знань з розроблюваної системі. Специфікація системних вимог призначена для керівного технічного складу компанії-розробника і для менеджерів проекту. Вона також необхідна замовнику ПЗ і субпідрядникам з розробки . Ці обидва документи також призначені для кінцевих користувачів програмної системи . Нарешті , проектна системна специфікація є документом , який орієнтований на розробників ПЗ.
Вимоги до програмної системи часто класифікуються як функціональні, не функціональні і вимоги предметної області.
Функціональні вимоги. Це перелік сервісів, які повинна виконувати система, причому повинно бути вказано, як система реагує на ті чи інші вхідні дані, як вона поводиться в певних ситуаціях і т.д. У деяких випадках вказується , що система не повинна робити.
Не функціональні вимоги . Описують характеристики системи і її оточення, а не поведінка системи. Тут також може бути наведено перелік обмежень, що накладаються на дії та функції, що виконуються системою. Вони включають часові обмеження, обмеження на процес розробки системи , стандарти і т.д.
Вимоги предметної області. Характеризують ту предметну область, де буде експлуатуватися система . Ці вимоги можуть бути функціональними і не функціональними.
Чіткої межі між цими типами вимог не існує. Тому , розглядаючи ці види вимог, потрібно завжди пам'ятати , що дана класифікація значною мірою штучна.