diff --git a/lectures/revealjs/11-lecture-solid-uml.adoc b/lectures/revealjs/11-lecture-solid-uml.adoc
new file mode 100644
index 0000000000000000000000000000000000000000..06ab669ba0ec089d62b31b2682e078ba37d47615
--- /dev/null
+++ b/lectures/revealjs/11-lecture-solid-uml.adoc
@@ -0,0 +1,288 @@
+= Object oriented design principles 
+:customcss: slides.css
+:icons: font
+:includedir: includes/
+:LECTURE_TOPIC: OOP SOLID + UML 
+:LECTURE_NO: 11th Lecture
+
+include::{includedir}header.adoc[]
+
+[.smaller-80][.center-paragraph]
+IT1901 Fall 2022 - {LECTURE_NO}
+
+
+
+[.smaller-30]
+Partially based on slides from Torgeir Dingsøyr and Hallvard Trætteberg
+
+
+== Overview
+- OOD -  SOLID, DRY
+- UML Diagrams
+
+[background-color = "#124990"]
+[color = "#fff6d5"]
+== Object Oriented Design
+
+
+== Object Oriented Design
+
+“An object-oriented system is made up of interacting objects that 
+maintain their own local state and provide operations on that state. 
+The representation of the state is private and cannot be accessed directly 
+from outside the object. Object-oriented design processes involve 
+designing object classes and the relationships between these classes.” 
+(Sommerville: p 198)
+
+
+== Object Oriented Principles
+
+- Encapsulation
+- Abstraction
+- Inheritance
+- Polymorphism
+
+
+== Common issues OOD
+
+- External dependencies:
+** New requirements can produce changes in many places
+
+- Internal dependencies:
+** changes in a part of the code affect other parts
+** difficult to re-use code
+
+[background-color = "#124990"]
+[color = "#fff6d5"]
+== SOLID principles
+
+== SOLID principles 
+
+- **S**ingle responsibility principle
+- **O**pen–closed principle
+- **L**iskov substitution principle
+- **I**nterface segregation principle
+- **D**ependency inversion principle
+
+[background-color = "#124990"]
+[color = "#fff6d5"]
+== Single responsibility principle
+
+
+== Single responsibility principle
+
+- A class should only have a single responsibility
+- A class should have one, and only one reason to change
+- Examples:
+** simpleexample2: JSON-serialization
+*** Latlong serializer
+*** Latlong deserializer
+
+
+== Single responsibility principle
+
+Applying this principle has as effects:
+
+- Smaller sized classes
+- Classes that are easier to:
+** understand
+** test
+** maintain
+
+
+[background-color = "#124990"]
+[color = "#fff6d5"]
+== Open–closed principle
+
+== Open–closed principle
+
+- Software entities should be open for extension, but closed for modification.
+- Example: JavaFX classes
+
+
+
+[background-color = "#124990"]
+[color = "#fff6d5"]
+== Liskov substitution principle
+
+== Liskov substitution principle
+
+- Objects in a program should be replaceable with instances of their subtypes without altering the correctness of that program.
+
+
+== Liskov substitution principle (2)
+
+image::../images/lecture11/rectangle-square.png[canvas, size=contain]
+
+[background-color = "#124990"]
+[color = "#fff6d5"]
+== Interface segregation principle
+
+== Interface segregation principle
+
+- Many client-specific interfaces are better than one general-purpose interface.
+
+
+
+[background-color = "#124990"]
+[color = "#fff6d5"]
+== Dependency inversion principle
+
+
+== Dependency inversion principle
+
+- One should depend upon abstractions, not concretions.
+- e.g. Data access layer in between controler and domain layer
+
+[background-color = "#124990"]
+[color = "#fff6d5"]
+== DRY Principle
+
+
+== Don't Repeat Yourself (DRY)
+
+- "Every piece of knowledge or logic must have a single, unambiguous representation within a system."
+- Andy Hunt and Dave Thomas in their book The Pragmatic Programmer
+
+[.smalled-40]
+https://en.wikipedia.org/wiki/Don%27t_repeat_yourself  
+
+
+[background-color = "#124990"]
+[color = "#fff6d5"]
+== KISS Principle
+
+== Keep It Simple, Stupid (KISS)
+
+- write simple code
+- if classes / methods become lengthy and complicated you need to consider refactoring
+** extracting code in separate classes methods
+** eliminate redundant code
+
+
+
+
+[background-color = "#124990"]
+[color = "#fff6d5"]
+== UML
+
+[.smaller-80]
+== UML - Unified Modelling Language
+
+- 13 diagrams that show various perspectives on the system
+
+- purpose:
+** Stimulate and focus discussion about an existing or a new system
+** Document an existing system
+** Detailed description to generate a system
+
+- informal use of UML:
+** “I do not find UML to be useful during the design process itself and prefer informal notations that are quicker to write and that can be easily drawn on a whiteboard.” (Sommerville, s. 175)
+
+== !
+
+image::../images/lecture13/uml-diagrams.png[canvas, size=contain]
+
+[.smaller-20]
+[.left-30] 
+Fowler, Martin., (2003). UML distilled: a brief guide to the standard object modeling language. Pearson Education
+
+[background-color = "#124990"]
+[color = "#fff6d5"]
+== Package diagram
+
+[.smaller-80]
+== Package diagram
+
+- Gir en oversikt over avhengigheter mellom moduler av et system
+- Viser “pakker” - typisk grupper av klasser
+- Viser avhengigheter mellom pakker/moduler
+- Hver klasse er kun medlem av en “pakke”
+- Pakker representerer et hierarkisk navnerom, så hver klasse innen en pakke må ha et unikt navn
+- En pakke skal ikke kunne være medlem av flere moduler
+
+[.smaller-30]
+Fowler, Martin., (2003). UML distilled: a brief guide to the standard object modeling language. Pearson Education.
+
+
+== !
+
+image::../images/lecture13/package-diagram.png[canvas, size=contain]
+
+[background-color = "#124990"]
+[color = "#fff6d5"]
+== Class diagram
+
+
+== Class diagram
+
+- Viser typer objekter i systemet og statiske relasjoner mellom dem
+- Enkleste form: Klassenavn i bokser
+- Viser egenskaper (attributter, assosiasjoner) og operasjoner (metoder) for en klasse
+
+
+[.smaller-30]
+Sommerville: Software Engineering, Pearson, 2016. 10th Edition, page 149.
+
+== !
+
+image::../images/lecture13/class-diagram-1.png[canvas, size=contain]
+
+[.smaller-30]
+[.left-30]
+Kilde: Yngve Lindsjørn, Universitetet i Oslo: IN2000: Kravhåndtering, modellering & design.
+
+
+== !
+
+image::../images/lecture13/class-diagram-2.png[canvas, size=contain]
+
+
+[.smaller-30]
+[.left-30]
+Kilde: Yngve Lindsjørn, Universitetet i Oslo: IN2000: Kravhåndtering, modellering & design.
+
+
+[background-color = "#124990"]
+[color = "#fff6d5"]
+== Sequence diagram
+
+[.smaller-80]
+== Sequence diagram
+
+- Brukes for å analysere samarbeid mellom objekter
+- Modellerer interaksjoner mellom aktører og objekter i et system og interaksjon mellom objekter i et scenarie
+- Aktører og objekter finnes øverst i diagrammet
+- Tidsakse nedover i diagram
+- Piler indikerer interaksjon mellom objekter
+- Annoterte piler indikerer metodekall
+- Kan vise alternative sekvenser
+
+[.smaller-30]
+Sommerville: Software Engineering, Pearson, 2016. 10th Edition, page 146.
+
+== !
+
+image::../images/lecture13/sequence.png[canvas, size=contain]
+
+== !
+
+```puml
+
+actor User
+User -> "~#newTodoItemButton: Button" as newTodoItemButton: click
+newTodoItemButton -> TodoController: handleNewTodoItemAction
+TodoController -> "~#newTodoItemText: TextField" as newTodoItemText: getText
+TodoController -> TodoList: addTodoItem
+TodoList -> TodoList: fireTodoListChanged
+TodoList -> TodoListListener: todoListChanged
+TodoListListener -> TodoController: autoSaveTodoList
+TodoListListener -> TodoController: updateTodoListView
+
+```
+
+[background-color = "#124990"]
+[color = "#fff6d5"]
+== Summary
+
+include::{includedir}footer.adoc[]
\ No newline at end of file
diff --git a/lectures/revealjs/images/lecture11/rectangle-square.png b/lectures/revealjs/images/lecture11/rectangle-square.png
new file mode 100644
index 0000000000000000000000000000000000000000..c1a034d96fe29e4c58807430235298e6ca8a86db
Binary files /dev/null and b/lectures/revealjs/images/lecture11/rectangle-square.png differ