Software design general principles:
- Abstraction
- Cohesion and Coupling
- Decomposition and Modularity
- Encapsulation and Information Hiding
- Separation of Interface and Implementation
2. Садржај
— Увод
— Општи принципи пројектовања софтвера
— Апстракција
— Кохезија и повезаност
— Декомпозиција и модуларизација
— Учаурење и сакривање информација
— Одвајање интерфејса и имплементације
— Закључак
2
3. Увод
— Различити механизми побољшања софтверских
система
3
Механизми
побољшања
софтверских система
Принципи
објектно-
оријентисаног
пројектовања
софтвера
Стратегије
пројектовања
софтвера
Софтверски
патерни
Општи принципи
пројектовања
софтвера
Кохезија и
повезаност
Декомпозиција и
модуларизација
Одвајање
интерфејса и
имплементације
Учаурење и
сакривање
информација
Апстракција
4. Општи принципи пројектовања софтвера
— Представљају основне принципе који се користе у
процесу пројектовања софтвера
— Могу се користити приликом пројектовања сваког
софтверског система
— Разликују се следећи општи принципи
пројектовања софтвера: апстракција, кохезија и
повезаност, декомпозиција и модуларизација,
учаурење и сакривање информација, и одвајање
интерфејса и имплементације
4
5. Апстракција
— Усмерена је на постепено и контролисано увођење
детаља који су од значаја за посматрани
софтверски систем
— Применом механизма апстракције издвајају се
опште информације, како би се нагласила суштина
неке појаве, док се детаљи о самој појави избегавају
[Vlajic14]
— Пример
5
6. Кохезија и повезаност
— Кохезија је принцип пројектовања софтвера који је
усмерен на класу
— Све чланице посматране класе (сви атрибути и методе
које посматрана класа садржи) требају да буду у
функцији посматране класе
— Кохезија класе треба да буде висока
— С друге стране, повезаност је усмерена на везу која се
успоставља између различитих класа
— Уколико се ниво повезаности (комуникације и сарадње)
између класа повећа, повећава се и сложеност
софтверског система [Pressman10]
— Повезаност класа треба да буде ниска
— Пример
6
7. Декомпозиција и модуларизација
— Декомпозиција представља принцип пројектовања
софтвера који је усмерен на поделу софтверског
система на више модула
— Као резултат процеса декомпозиције софтверског
система настаје модуларизација софтверског
система [Vlajic14]
— Различити аспекти декомпозиције
— Пример
7
8. Учаурење и сакривање информација
— Учаурење представља процес у оквиру којег се
раздвајају особине модула у односу на остатак
софтверског система [Vlajic14]
— Класификација особина софтверског система
према начину приступа
— Особине модула (нпр. класе) које су јавне за друге
модуле и особине модула које су сакривене од
других модула система
— Пример
8
9. Одвајање интерфејса и имплементације
— Интерфејсом се даје спецификација функција
посматраног модула
— Сакривање детаља о посматраном софтверском
систему [Meyer88]
— У процесу развоја софтвера је на тај начин могуће
направити различите имплементације за
посматрану спецификацију (тј. интерфејс)
— Пример
9
10. Закључак
— Различити механизми побољшања софтверских
система
— Општи принципи пројектовања софтвера могу се
применити у процесу развоја сваког софтверског
система
— Апстракција
— Кохезија и повезаност
— Декомпозиција и модуларизација
— Учаурење и сакривање информација
— Одвајање интерфејса и имплементације
10