Принцип розділу задач та принцип абстракції
Принцип розділу задач
· Розділяй та володарюй (divide et impera)- поділ великої задачі на менші частини, як наслідок просте вирішення малих підзадач, що в свою чергу породжує вирішення великої задачі
· Щоб впоратися зі складністю, проблеми розділяють аби сконцентруватись на одній з них
· Підтримує паралелізацію зусиль і розподіл відповідальності
· Розділ складних задач на менш складні
· Приклади: сервери застосувань, каркаси застосувань
Принцип та наслідки абстракції
Абстрагування – процес виділення абстракцій в предметній області завдання. Абстракція – сукупність істотних характеристик деякого об’єкта, які відрізняють його від усіх інших видів об’єктів і, таким чином, чітко визначають особливості даного об’єкта з точки зору подальшого розгляду та аналізу. Сучасний рівень абстракції передбачає об’єднання всіх властивостей абстракції (як що стосуються стану аналізованого об’єкта, так і визначають його поведінку) в єдину програмну одиницю якийсь абстрактний тип (клас).
Абстракція:
· Ідентифікуйте важливі аспекти явища і нехтуйте його деталями
· Вид абстракції, залежить від мети(в одному випадку нас цікавитиме форма предмету, в іншому вага, у третьому – матеріали, з яких він зроблений, у четвертому – закон руху предмета і т.д)
· Приклад: інтерфейс користувача абстрактності годинника (його кнопки) від внутрішнього змісту годинника з метою врегулювання часу; іншим абстракції потрібні для підтримки ремонту
Поєднання об’єднання всіх властивостей предмета (складових його стану і поведінки) в єдину абстракцію та обмеження доступу до реалізації цих властивостей отримало назву інкапсуляції.
Абстракція приводить до моделей:
· Наприклад, коли вимоги проаналізовані, ми виробляємо модель майбутнього застосування.
· Модель може бути формальним або напівформальним описом.
· Можливо міркувати про систему, міркуючи про модель.
Наслідки абстракції:
· Спрощене клієнтське програмування
· Збільшуються шанси повторного використання
· Збільшується зрозумілість складних проблем
· Покращуються здатність до супроводу, повторного використання, переносу, зручність
· Improves maintainability, reusability, portability, usability
· Погіршується продуктивність.