_index.md (3934B)
1 +++ 2 title = 'Software Design' 3 +++ 4 # Software Design 5 [Here](software-design.apkg) is my [Anki](https://apps.ankiweb.net) deck that I'm using to prepare for the exam. 6 7 - [Software abstraction & modeling](software-abstraction-modeling) 8 - [Models](software-abstraction-modeling#models) 9 - [Software development process](software-development-process) 10 - [Waterfall development process](software-development-process#waterfall-development-process) 11 - [Agile development process](software-development-process#agile-development-process) 12 - [Requirements engineering with UML](requirements-engineering) 13 - [What is UML?](requirements-engineering#what-is-uml) 14 - [Requirements engineering](requirements-engineering#requirements-engineering) 15 - [Natural language specification](requirements-engineering#natural-language-specification) 16 - [Use case diagrams](requirements-engineering#use-case-diagrams) 17 - [Summary of notation](requirements-engineering#summary-of-notation) 18 - [Structure modeling with UML](structure-modeling) 19 - [Class](structure-modeling#class) 20 - [Attribute syntax](structure-modeling#attribute-syntax) 21 - [Operation syntax](structure-modeling#operation-syntax) 22 - [Class variable and class operation](structure-modeling#class-variable-and-class-operation) 23 - [Relationships](structure-modeling#relationships) 24 - [Binary association](structure-modeling#binary-association) 25 - [n-ary association](structure-modeling#n-ary-association) 26 - [Association class](structure-modeling#association-class) 27 - [Aggregation](structure-modeling#aggregation) 28 - [Shared aggregation](structure-modeling#shared-aggregation) 29 - [Composition](structure-modeling#composition) 30 - [Generalization](structure-modeling#generalization) 31 - [Creating a class diagram](structure-modeling#creating-a-class-diagram) 32 - [Object-oriented design patterns in UML](oo-design-patterns#object-oriented-design-patterns-in-uml) 33 - [Creational](oo-design-patterns#creational) 34 - [Singleton](oo-design-patterns#singleton) 35 - [Factory method](oo-design-patterns#factory-method) 36 - [Structural](oo-design-patterns#structural) 37 - [Adapter](oo-design-patterns#adapter) 38 - [Behavioral](oo-design-patterns#behavioral) 39 - [Observer](oo-design-patterns#observer) 40 - [Chain of responsibility](oo-design-patterns#chain-of-responsibility) 41 - [Modeling behavior with UML State Machines](modeling-behavior-state-machines#modeling-behavior-with-uml-state-machines) 42 - [Introduction](modeling-behavior-state-machines#introduction) 43 - [States](modeling-behavior-state-machines#states) 44 - [Transitions](modeling-behavior-state-machines#transitions) 45 - [Types of events](modeling-behavior-state-machines#types-of-events) 46 - [Types of states](modeling-behavior-state-machines#types-of-states) 47 - [Entry and exit points](modeling-behavior-state-machines#entry-and-exit-points) 48 - [Sequence Diagrams](sequence-diagrams#sequence-diagrams) 49 - [Introduction](sequence-diagrams#introduction) 50 - [Basics](sequence-diagrams#basics) 51 - [Interactions, interaction partners](sequence-diagrams#interactions-interaction-partners) 52 - [Messages](sequence-diagrams#messages) 53 - [Combined fragments](sequence-diagrams#combined-fragments) 54 - [Branches & loops](sequence-diagrams#branches-loops) 55 - [Concurrency and order](sequence-diagrams#concurrency-and-order) 56 - [Filters and assertions](sequence-diagrams#filters-and-assertions) 57 - [Further language elements](sequence-diagrams#further-language-elements) 58 - [Philosophy of Software Design](philosophy-of-software-design#philosophy-of-software-design) 59 - [Summary of Design Principles](philosophy-of-software-design#summary-of-design-principles) 60 - [Summary of red flags](philosophy-of-software-design#summary-of-red-flags)