Повторне використання програмного забезпечення
Зміст
- Повторне використання програмного забезпечення
- Вигоди повторного використання програмного забезпечення
- Проблеми повторного використання програмного забезпечення
- Ландшафт повторного використання програмного забезпечення
- Фактори планування повторного використання програмного забезпечення
- Шаблони (патерни) проектування
- Генератори програмного забезпечення
Повторне використання програмного забезпечення
Повторне використання коду (англ. code reuse) – методологія проектування комп’ютерних і інших систем, що полягає в тому, що система (комп’ютерна програма, програмний модуль) частково або повністю повинна складатися з частин, написаних раніше компонентів і частин іншої системи. Повторне використання – основна методологія, яка застосовується для скорочення трудовитрат при розробці складних систем.
Найпоширеніший випадок повторного використання коди – бібліотеки програм. Бібліотеки надають загальну досить універсальну функціональність, що покриває вибрану наочну область. Приклади: бібліотека функцій для роботи з комплексними числами, бібліотека функцій для роботи з 3D-графикой, бібліотека для використання протоколу TCP/IP, бібліотека для роботи з базами даних. Розробники нової програми можуть використовувати існуючі бібліотеки для вирішення своїх завдань і не «винаходити велосипеди».
– У більшості інженерних дисциплін, системи розроблені шляхом комбінування існуючих компонентів, які були використані в інших системах.
– Інженерія програмного забезпечення була більшою мірою зосереджена на початковій розробці , але в даний час визнається, що для досягнення кращого програмного забезпечення, швидше і з меншими витратами, ми повинні прийняти процес проектування, заснований на систематичному повторному використанні програмного забезпечення.
В цілому використання може бути повторним або шляхом включення без змін.
· Повторне використання компонентів – компоненти можуть бути повторно використанні з підсистем для єдиних об’єктів.
· Повторне використання об’єктів – компоненти програмного забезпечення, які реалізують одну чітко визначену функцію або об’єкт можуть бути використані повторно.
Вигоди повторного використання програмного забезпечення
· Збільшення надійності
· Програмне забезпечення повторно використане
· Зменшений ризик процесу
· Зменшена невизначеність в вартості розробки
· Ефективне використання фахівців
· Менша потрібність робити те ж саме в різних проектах
· Відповідність стандартам
· Прискорена розробка
Проблеми повторного використання програмного забезпечення
· Синдром not-invented-here
· Збільшення витрат на підтримку
· Відсутність інструментів підтримки
· Створення та підтримка бібліотеки компонентів
· Пошук, розуміння та адаптації повторно використовуваних компонентів
Ландшафт повторного використання програмного забезпечення
- Повторне використання часто відноситься до повторного використання компонентів систем, хоча існує багато інших різноманітних підходів.
- Повторне використання можливе на різних рівнях – від простої функції до цілого застосування.
- Ландшафт повторного використання охоплює діапазон можливих способів повторного використання.
- Шаблони проектування
- Компонент структури
- Застосування ліній продуктів
- орієнтованої розробки програмного забезпечення
- Компонент розвитку на основі
- законе обгортання системи
- COTS інтеграції
- Програма генератори
- Servise-орієнтовані системи
- Вертикальні застосування, що конфігуруються
- Program libraries Програма бібліотеки
Фактори планування повторного використання програмного забезпечення
- Графік розробки програмного забезпечення.
- Очікуваний час експлуатації програмного забезпечення .
- Базова освіта, навики та досвід команди розробників.
- Критичність програмного забезпечення і його нефункціональні вимоги.
- Предметна область застосування.
- Платформи виконання для програмного забезпечення.
Шаблони (патерни) проектування
Шаблон проектування (патерн) утворюється шляхом повторного використання абстрактних знань про проблеми та способи їх вирішення.
Шаблон представляє собою опис проблеми і суть її вирішення. Він повинен бути досить абстрактним, щоб бути повторно використаним в різних умовах. Шаблон часто залежить від характеристик об’єкта таких, як успадкування і поліморфізм.
Елементи шаблону проектування:
– Назва – це ідентифікатор значущого фону.
– Опис проблеми.
– Опис рішення – це не конкретний проект, а шаблон для проектування рішення, яке може бути підтверджене різними шляхами. Наслідки – це результати і компроміси застосованої моделі.
Шаблон спостерігача
– Назва – це спостерігач.
– Опис розділяє значення об’єкта від самого об’єкта.
– Опис проблеми використовується при необхідності відображення багатьох значень стану.
– Опис рішення (UML).
– Наслідки – оптимізація для підвищення продуктивності є непрактичною.


Генератори програмного забезпечення
Генератор програмного забезпечення заснований на повторному використанні:
- Програмні генератори включають повторне використання стандартних шаблонів та алгоритмів.
- Вони вбудовані в генератори і встановленні командою користувача. Потім програма автоматично генерується.
- Використання генераторів можливе, коли область абстракцій та їх відображення на виконуваний код можуть бути ідентифіковані.
Домено специфічні мови використовується для створення і управління цими абстракціями
Види програмних генераторів:
¤ Генератори програм для обробки ділових даних;
¤ Лексичний і синтаксичний генератор для обробки мови;
¤ Генератори коду в CASE інструментах
Генератори, що основані на повторному використанні, є економічно ефективними, але їх застосування обмежене невеликим числом прикладних областей.
Кінцевим користувачам простіше розробити програми, використовуючи генератори, в порівнянні з іншим підходами повторного використання.
Повторне використання через генерацію програм

Приклад генерації коду

