{
    "componentChunkName": "component---src-templates-docs-js",
    "path": "/forelasningar-2026/00-tema-1-grunderna",
    "result": {"data":{"site":{"siteMetadata":{"title":"Linnéuniversitetet","language":"sv","courseCode":"1DV607"}},"mdx":{"fields":{"id":"6f6fa3de-5683-50fe-b150-41d03e0acdce","title":"Tema 1 – Grunderna i objektorienterad analys och design","slug":"/forelasningar-2026/00-tema-1-grunderna"},"body":"var _excluded = [\"components\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsxRuntime classic */\n\n/* @jsx mdx */\nvar _frontmatter = {\n  \"title\": \"Tema 1 – Grunderna i objektorienterad analys och design\",\n  \"metaTitle\": \"Tema 1 – Grunderna i objektorienterad analys och design | 1DV607\",\n  \"metaDescription\": \"Syfte, innehåll, läsanvisningar och studiefrågor för kursens första tema.\",\n  \"order\": 0\n};\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, _excluded);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"p\", null, \"Tema 1 behandlar abstraktion, modularitet, inkapsling, informationsd\\xF6ljning och hierarkier.\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Kursm\\xE5l:\"), \" A1 och A3 i kursplanen.\"), mdx(\"h2\", null, \"Syfte\"), mdx(\"p\", null, \"Temat introducerar grundl\\xE4ggande principer f\\xF6r mjukvarudesign med fokus p\\xE5 hur komplexitet kan hanteras genom abstraktion, modularitet, inkapsling och hierarkier. Principerna hj\\xE4lper oss att f\\xF6rst\\xE5 hur objektorienterade metoder kan anv\\xE4ndas f\\xF6r att strukturera och f\\xF6renkla mjukvarusystem.\"), mdx(\"p\", null, \"F\\xF6rel\\xE4sningarna introducerar \\xE4ven objektorienterad analys och design samt hur modeller kan st\\xF6dja dessa aktiviteter.\"), mdx(\"p\", null, \"Temat har framf\\xF6r allt koppling till \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"kursm\\xE5l A1\"), \", genom att ge dig f\\xF6rst\\xE5else f\\xF6r centrala objektorienterade begrepp och hur de anv\\xE4nds. Det ber\\xF6r \\xE4ven \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"kursm\\xE5l A3\"), \" genom introduktionen till iterativa och inkrementella utvecklingsprocesser samt modelleringens roll f\\xF6r kommunikation och f\\xF6rst\\xE5else av ett system.\"), mdx(\"h2\", null, \"Inneh\\xE5ll\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"komplexitet i mjukvarusystem,\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"strategier f\\xF6r att hantera komplexitet,\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"abstraktion,\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"modularitet och dekomposition,\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"inkapsling och informationsd\\xF6ljning,\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"hierarkier och specialisering,\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"objektorienterat t\\xE4nkande med objekt, klasser och ansvar,\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"objektorienterad analys och design,\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"systemmodellering och UML:s roll,\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"introduktion till dom\\xE4nmodellering.\")), mdx(\"h2\", null, \"L\\xE4sanvisningar\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Craig Larman, \", mdx(\"em\", {\n    parentName: \"li\"\n  }, \"Applying UML and Patterns\"), \", kapitel 1\\u20132.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Ben Moseley och Peter Marks, \", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://moodle.lnu.se/pluginfile.php/10802267/mod_page/content/1/MoseleyMarks06a.pdf\"\n  }, mdx(\"em\", {\n    parentName: \"a\"\n  }, \"Out of the Tar Pit\")), \". L\\xE4s texten med fokus p\\xE5 komplexitet och abstraktion.\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"Barbara Liskov, \", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"https://moodle.lnu.se/pluginfile.php/10802267/mod_page/content/1/Data%20Abstraction%20and%20Hierarchy%20Liskov%2C%20B.%201987.pdf\"\n  }, mdx(\"em\", {\n    parentName: \"a\"\n  }, \"Data Abstraction and Hierarchy\")), \". L\\xE4s texten med fokus p\\xE5 arv och polymorfism.\")), mdx(\"p\", null, \"Du kan beh\\xF6va vara inloggad i Moodle f\\xF6r att \\xF6ppna artiklarna.\"), mdx(\"h2\", null, \"Studiefr\\xE5gor\"), mdx(\"ol\", null, mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Vad g\\xF6r mjukvarusystem komplexa? Ta h\\xE4nsyn till b\\xE5de tekniska och organisatoriska aspekter.\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Vad inneb\\xE4r abstraktion? Ge exempel p\\xE5 dataabstraktion, funktionsabstraktion och klassabstraktion.\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Hur hj\\xE4lper modularitet och inkapsling oss att hantera komplexitet?\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Vad \\xE4r skillnaden mellan inkapsling och informationsd\\xF6ljning?\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Vad inneb\\xE4r en hierarki inom mjukvarudesign, och hur relaterar den till abstraktion?\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Beskriv hur ett \", mdx(\"inlineCode\", {\n    parentName: \"li\"\n  }, \"Student\"), \"-objekt i ett kurssystem kan abstraheras med hj\\xE4lp av hierarki, modularitet och inkapsling.\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Vad \\xE4r syftet med objektorienterad analys, och hur skiljer den sig fr\\xE5n objektorienterad design?\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Hur st\\xF6djer modellering objektorienterad analys och design?\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Vad inneb\\xE4r iterativ och inkrementell utveckling i praktiken?\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Hur hj\\xE4lper modeller oss att f\\xF6rst\\xE5 och kommunicera systemkrav?\")), mdx(\"p\", null, \"Fr\\xE5gor om temat st\\xE4lls i \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"https://moodle.lnu.se/mod/url/view.php?id=5194799\"\n  }, \"Zulip f\\xF6r Kalmar campus och distans\"), \".\"));\n}\n;\nMDXContent.isMDXComponent = true;","tableOfContents":{"items":[{"url":"#syfte","title":"Syfte"},{"url":"#innehåll","title":"Innehåll"},{"url":"#läsanvisningar","title":"Läsanvisningar"},{"url":"#studiefrågor","title":"Studiefrågor"}]},"parent":{"relativePath":"forelasningar-2026/00-tema-1-grunderna.md"},"frontmatter":{"metaTitle":"Tema 1 – Grunderna i objektorienterad analys och design | 1DV607","metaDescription":"Syfte, innehåll, läsanvisningar och studiefrågor för kursens första tema.","fullWidth":null}},"allMdx":{"edges":[{"node":{"fields":{"slug":"/forelasningar-2026","title":"Föreläsningar 2026"}}},{"node":{"fields":{"slug":"/","title":"Objektorienterad analys och design med UML (1DV607)"}}},{"node":{"fields":{"slug":"/laborationer-2026","title":"Laborationer 2026"}}},{"node":{"fields":{"slug":"/old","title":"Old"}}},{"node":{"fields":{"slug":"/forelasningar-2026/00-tema-2-objektorienterad-analys-och-uml","title":"Tema 2 – Objektorienterad analys och modellering med UML"}}},{"node":{"fields":{"slug":"/forelasningar-2026/00-tema-3-objektorienterad-design-med-uml","title":"Tema 3 – Objektorienterad design med UML"}}},{"node":{"fields":{"slug":"/forelasningar-2026/01-kursintroduktion-och-domanmodellering","title":"1. Kursintroduktion och domänmodellering"}}},{"node":{"fields":{"slug":"/forelasningar-2026/02-objektorienterad-analys-och-modellering","title":"2. Objektorienterad analys och modellering"}}},{"node":{"fields":{"slug":"/forelasningar-2026/03-uml-modellering","title":"3. Fortsatt modellering med UML"}}},{"node":{"fields":{"slug":"/forelasningar-2026/04-grasp","title":"4. GRASP"}}},{"node":{"fields":{"slug":"/forelasningar-2026/00-tema-1-grunderna","title":"Tema 1 – Grunderna i objektorienterad analys och design"}}},{"node":{"fields":{"slug":"/laborationer-2026/01-laboration-1","title":"Laboration 1 – Domänmodellering"}}},{"node":{"fields":{"slug":"/old/001-introduction","title":"Course Introduction"}}},{"node":{"fields":{"slug":"/old/01-information","title":"Course Information"}}},{"node":{"fields":{"slug":"/laborationer-2026/02-laboration-2","title":"Laboration 2"}}},{"node":{"fields":{"slug":"/old/02-theory","title":"Theory"}}},{"node":{"fields":{"slug":"/old/03-assignments","title":"Assignments"}}},{"node":{"fields":{"slug":"/old/01-information/01-welcome","title":"Welcome to the Course"}}},{"node":{"fields":{"slug":"/old/01-information/registration","title":"Course Registration"}}},{"node":{"fields":{"slug":"/old/02-theory/01-intro_to_ooad","title":"Introduction to Object Oriented Analysis and Design"}}},{"node":{"fields":{"slug":"/old/01-information/grading","title":"Course Grading"}}},{"node":{"fields":{"slug":"/old/02-theory/03_software_architecture","title":"Software Architecture"}}},{"node":{"fields":{"slug":"/old/02-theory/04_mvc","title":"Model View Controller"}}},{"node":{"fields":{"slug":"/old/02-theory/02-domain_modeling","title":"Domain Modeling"}}},{"node":{"fields":{"slug":"/old/02-theory/06_grasp1","title":"GRASP 1"}}},{"node":{"fields":{"slug":"/old/02-theory/05_layers_components","title":"Layers & Components"}}},{"node":{"fields":{"slug":"/old/02-theory/07_grasp2","title":"GRASP 2"}}},{"node":{"fields":{"slug":"/old/02-theory/09_gof1","title":"GoF 1"}}},{"node":{"fields":{"slug":"/old/02-theory/10_gof2","title":"GoF 2"}}},{"node":{"fields":{"slug":"/old/02-theory/11_solid","title":"SOLID"}}},{"node":{"fields":{"slug":"/old/02-theory/08_grasp3","title":"GRASP 3"}}},{"node":{"fields":{"slug":"/old/02-theory/design_class_diagram","title":"UML Design Class Notation"}}},{"node":{"fields":{"slug":"/old/02-theory/design_class_relations","title":"UML Design Class Relations"}}},{"node":{"fields":{"slug":"/old/02-theory/design_object_diagram","title":"UML Object Diagram Notation"}}},{"node":{"fields":{"slug":"/old/02-theory/99-exercises","title":"Exercises"}}},{"node":{"fields":{"slug":"/old/02-theory/design_package_diagram","title":"UML Package Notation"}}},{"node":{"fields":{"slug":"/old/02-theory/domain_class_diagram","title":"UML Domain Model"}}},{"node":{"fields":{"slug":"/old/02-theory/reading-instructions","title":"Reading Instructions"}}},{"node":{"fields":{"slug":"/old/03-assignments/01-assignment_1","title":"Assignment 1"}}},{"node":{"fields":{"slug":"/old/03-assignments/02-assignment_2","title":"Assignment 2"}}},{"node":{"fields":{"slug":"/old/03-assignments/03-assignment_3","title":"Assignment 3"}}},{"node":{"fields":{"slug":"/old/03-assignments/04-yahtzee","title":"Yahtzee Assignment"}}},{"node":{"fields":{"slug":"/old/old_template/ovningsuppgifter-del-a","title":"Övningsuppgifter del A"}}},{"node":{"fields":{"slug":"/old/old_template/ovningsuppgifter-del-b","title":"Övningsuppgifter del B"}}},{"node":{"fields":{"slug":"/old/03-assignments/01-assignment_1/lending-system-problem-description","title":"Stuff Lending System Problem Description"}}},{"node":{"fields":{"slug":"/old/03-assignments/01-assignment_1/yacht-club-problem-description","title":"Yacht Club Problem Description"}}},{"node":{"fields":{"slug":"/old/old_template/videologgar","title":"Vlog"}}},{"node":{"fields":{"slug":"/old/old_template/codeblock/1-index","title":"Sub Page"}}},{"node":{"fields":{"slug":"/old/03-assignments/02-assignment_2/test_specification","title":"Test Specification"}}},{"node":{"fields":{"slug":"/old/old_template/codeblock","title":"Syntax Highlighting"}}},{"node":{"fields":{"slug":"/old/old_template/ovningsuppgifter-del-a/01-hello-world","title":"Hello world"}}},{"node":{"fields":{"slug":"/old/old_template/ovningsuppgifter-del-a/02-simple-addition","title":"Enkel addition"}}}]}},"pageContext":{"id":"6f6fa3de-5683-50fe-b150-41d03e0acdce"}},
    "staticQueryHashes": ["253607798","3706406642","710574383"]}