
- •Основи програмної інженерії Тема 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. Шаблони проектування. Структурні шаблони.
- •Поняття шаблону проектування.
- •Основні елементи шаблону.
- •Механізми повторного використання.
- •Структурні шаблони проектування.
Тема 11. Прототипування програмних систем. Поняття прототипування.
Замовникам програмного забезпечення і кінцевим користувачам зазвичай складно чітко сформулювати вимоги до розроблюваної програмної системі. Важко передбачити, як система буде впливати на трудовий процес, як вона взаємодіятиме з іншими системами і які операції , що виконуються користувачами, необхідно автоматизувати. Ретельний аналіз вимог допомагає зменшити невизначеність щодо того, що система повинна робити. Однак реально перевірити вимоги , перш ніж їх затвердити , практично неможливо. У цій ситуації може допомогти прототип системи .
Прототип є початковою версією програмної системи, яка використовується для демонстрації концепцій, закладених в системі, перевірки варіантів вимог, а також пошуку проблем, які можуть виникнути як в ході розробки, так і при експлуатації системи, і можливих варіантів їх вирішення.
Дуже важлива швидка розробка прототипу системи , щоб користувачі могли почати експериментувати з ним якомога раніше.
Відмінність між прототипуванням, як окремим етапом процесу розробки ПЗ, і розробкою основної програмної системи не є очевидною. В даний час багато системи розробляються з використанням еволюційного підходу, коли швидко створюється первинна версія системи, яка потім поступово змінюється до її остаточного варіанту. При цьому часто використовуються методи швидкої розробки додатків, які також можна використовувати при створенні прототипів.
Переваги прототипування.
Прототип ПО допомагає на двох етапах процесу розробки системних вимог.
Постановка вимог. Користувачі можуть експериментувати з системними прототипами , що дозволяє їм перевіряти, як працюватиме система. Користувачі отримують нові ідеї для постановки вимог, можуть визначити сильні і слабкі сторони ПЗ. В результаті можуть сформуватися нові вимоги.
Перевірка вимог. Прототип дозволяє виявити помилки та упущення в раніше прийнятих вимогах. Наприклад , системні функції, визначені у вимогах , можуть бути корисними і потрібними (з точки зору користувача). Проте в процесі застосування цих функцій спільно з іншими функціями користувачі можуть змінити попередню думку про них. У результаті вимоги до системи зміняться, відображаючи змінене розуміння користувачами системних функцій.
Прототипування можна використовувати при аналізі ризиків і на початковому етапі розробки планів управління програмним проектом.
Поряд з тим що прототипи допомагають формувати вимоги , вони мають і інші достоїнства.
Різне тлумачення вимог розробниками ПЗ та користувачами можна виявити при демонстрації діючого прототипу системи.
У процесі створення прототипу розробники можуть виявити неповні або неузгоджені вимоги.
Працюючи, хоча і обмежено, у вигляді прототипу, система може продемонструвати свої слабкі і сильні сторони.
Прототип може служити основою для написання специфікації високоякісної системи. Розробка прототипу зазвичай веде до поліпшення специфікації системи.
Діючий прототип може також використовуватися для інших цілей.
Навчання користувача. Прототип системи можна використовувати для навчання персоналу перед поставкою остаточного варіанту системи .
Тестування системи . Прототипи дозволяють "прокручувати " тести. Один і той же тест запускається на прототипі і на системі. Якщо отримуються однакові результати, це означає, що тест не виявив дефектів в системі. Якщо результати відрізняються, то необхідно дослідити причини відмінності, що дозволяє виявити можливі помилки в системі.
На основі вивчення 39 різних програмних проектів , які використовували прототипування, в роботі зроблено висновок , що ефективність застосування прототипів при розробці ПЗ полягає в наступному.
Поліпшуються експлуатаційні якості системи.
Система більше відповідає потребам користувачів.
Системна архітектура стає більш досконалою.
Супроводження системи спрощується і стає більш зручним.
Скорочуються витрати на розробку системи .
Ці дослідження показують , що поліпшення експлуатаційних якостей системи і збільшення відповідності системи потребам користувача не вимагають збільшення загальної вартості розробки системи. Прототипування звичайно підвищує вартість початкових етапів розробки ПЗ, але знижує витрати на пізніших етапах.