Безкоштовно

Проектування програмного забезпечення: задачі, етапи

views 2340

Задачі проектування програмного забезпечення

1. Паралельність

– Паралельність  – властивість систем, в яких декілька обчислень виконуються одночасно, і потенційно взаємодіючи один з одним

– Обчислення можуть виконуватись на множинних ядрах в тому ж чіпі, переважно в розподілених по часу потоках на тому ж процесорі, або фізично відокремлених процесорах

– Безвихідне становище (Deadlocks)

2. Контроль та обробка подій

Як організувати дані і потік управління, як обробити реактивні і тимчасові події через різні механізми:

– Повторний виклик (робочий код, що передається як аргумент до іншого коду)

– Неявне звернення (замість виклику процедури безпосередньо, компонент може анонсувати (або транслювати) одну або більше подій)

3. Розподіл компонентів

– Як розподілити програмне забезпечення по апаратному забезпеченню

– Як з’вязуються компоненти

– Як проміжне програмне забезпечення може використовуватися для роботи з гетерогенним програмним забезпеченням.

4. Стійкість до помилок

– Як запобігти і пережити помилки, і працювати з винятковими умовами

– Відмовостійкий проект, також відомий як безаварійний, – проект, який допускає, що система продовжить функціонування, можливо на зменшеному рівні (також відомому як плавне зниження ефективності), замість повної відмови, коли деяка частина системи вийде з ладу

Як можуть виникнути відмови?

Модуль М повинен відмовити і створити виняток якщо:

– один з його клієнтів не задовольняє необхідний протокол для виклику однієї з послуг модулю

– модуль М не задовольняє необхідний протокол, використовуючи один зі своїх серверів, і сервер дає збій

– Виняток спричинений апаратно (наприклад, ділення на нуль)

5. Обробка помилок

– Захисний проект

– Модуль є аномальним, якщо він не в змозі надати послугу, яка очікується і яка визначена в його інтерфейсі

– Вийнятокова ситуація МАЄ бути створена, коли аномальний стан розпізнаний

Що може зробити модуль перед збоєм:

Перед збоєм, модулі можуть спробувати відновитися від аномалії, запускаючи деякого оброблювача винятків (ОВ)

– ОВ – локальна частина коду, що може спробувати відновитися від аномалії (якщо успішно, модуль не дає збій)

– або може просто зробити певне обнулення станів модуля, а потім дозволити йому вийти з ладу, повідомляючи про виняток клієнта

6. Взаємодія і представлення

Як структурувати і організовувати взаємодію між користувачами, і представлення інформації (наприклад, відокремлення презентації і ділової логіки, використовуючи підхід Модель-вид-контролер).

7. Стійкість даних

Збереження посилається на характеристику даних, що залишаються після виконання програми, яка створила їх. Без цієї здатності, дані існували б тільки в оперативній пам’яті і були б втрачені, коли ця оперативна пам’ять буде знеструмлена, як наприклад під час вимкнення комп’ютера.

Етапи проектування програмного забезпечення

1. Проектувальник розробляє високо абстрактні моделі рішень («архітектурне» чи «логічне» проектування), в якому включені тільки зовнішні властивості модельованих елементів.

2. Абстрактні частини проблеми, що були виявленні на першому етапі, відображаються як технологічні одиниці.

3. Архітектурне проектування

Архітектурне проектування направлене на вирішення структурних проблем, яке включає:

· Організацію системи, як композиції компонентів

· Призначення функціональності компонентам

· Глобальні структури управління

· Протоколи для комунікації, синхронізації та доступу до даних

· Фізичний розподіл

· Масштабування та продуктивність.

4. Детальне проектування

Детальне проектування визначає структури даних та алгоритми для реалізації функцій кожного компонента в системі. Детальне проектування сильно залежить від методу проектування. Проблемами детального проектування також є інтерфейс користувача, формату вводу-виводу та інші проблеми пов`язані з реалізацією. Такі як вибір мови програмування, бібліотек та інструментів розробки.

Фундаментальна проблема полягає в тому, що проектувальники змушені використовувати наявну інформацію для прогнозування майбутнього стану, який не виявиться доки їх прогнозування не будуть вірні. Остаточний результат розробки повинен бути припущений раніше, ніж засоби його досягнення будуть доступні: проектувальники змушенні працювати назад в часі від ефекту на світ, який припускається до початку ланцюга, який здійснить цей ефект.

Проектування у життєвому циклі програмного забезпечення

Проектування програмного забезпечення є частиною процесу розробки програмного забезпечення. Щоб зрозуміти, вхід і вихід проектування програмного забезпечення та контекст проектної діяльності, ми повинні  розглянути проектування програмного забезпечення в більш широкому контексті процесу розробки програмного забезпечення.

V-Model

V-Model (або VEE модель) є моделлю розробки інформаційних систем (ІС), спрямованої на спрощення розуміння складнощів, пов’язаних з розробкою систем. Вона використовується для визначення єдиної процедури розробки програмних продуктів, апаратного забезпечення та людино-машинних інтерфейсів.

Контекст V-моделі:

· Вхід проектування програмного забезпечення. Він включає функціональну специфікацію і не функціональні вимоги в результаті аналізу вимог та функціональних специфікацій фази

· Вихід проектування програмного забезпечення. Це включає  в себе проектну специфікацію, що описує архітектуру програмного забезпечення  та модульну конструкцію, яка описує проект компонентів програмного забезпечення. Цим продуктом користуються програмісти  для виконання модулів, випробувачі щоб здійснювати тести та інтегровані випробування

Контекст спіральної моделі

Кожний етап спіральної моделі включає в себе наступні дії:

  • Визначення цілей етапу
  • Перерахування та дослідження параметрів та цілей
  • Оцінюються ризики, пов’язані з вибором одного з цих варіантів
  • Визначається план того, як приступити до наступного етапу

Спіральна модель ясно показує роль перевірки  проекту  та контроль у цьому процесі і роль моделей, імітаторів і прототипів у проектуванні програмного забезпечення

Прототипи програмного забезпечення: поняття та види

Прототип програмного забезпечення – це не повна версія системи програмного забезпечення.

Види прототипів:

  • Еволюційний. Прототипування використовується для розвитку продукту та поступово прототип розвивається до кінцевого продукту
  • Експериментальний. Використовується для оцінки можливого вирішення проблеми, розвиваючи її удосконалення широкомасштабного впровадження
  • Пробний. У цій формі  прототип використовується, щоб допомогти в уточненні вимог користувачів

Написати коментар:

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *