{
    "componentChunkName": "component---src-templates-docs-js",
    "path": "/forelasningar-2026/00-tema-2-objektorienterad-analys-och-uml",
    "result": {"data":{"site":{"siteMetadata":{"title":"Linnéuniversitetet","language":"sv","courseCode":"1DV607"}},"mdx":{"fields":{"id":"04202025-633c-53d4-90ac-fcd388dff911","title":"Tema 2 – Objektorienterad analys och modellering med UML","slug":"/forelasningar-2026/00-tema-2-objektorienterad-analys-och-uml"},"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 2 – Objektorienterad analys och modellering med UML\",\n  \"metaTitle\": \"Tema 2 – Objektorienterad analys och modellering med UML | 1DV607\",\n  \"metaDescription\": \"Syfte, innehåll, läsanvisningar och studiefrågor om objektorienterad analys och UML-modellering.\",\n  \"order\": 0.5\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 2 behandlar objektorienterad analys och hur UML anv\\xE4nds f\\xF6r att modellera en problemdom\\xE4n.\"), mdx(\"p\", null, mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"Kursm\\xE5l:\"), \" A1 och B1 i kursplanen.\"), mdx(\"h2\", null, \"Syfte\"), mdx(\"p\", null, \"Temat f\\xF6rdjupar din f\\xF6rst\\xE5else f\\xF6r \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"objektorienterad analys\"), \" och den roll analysen har n\\xE4r vi modellerar en problemdom\\xE4n innan vi b\\xF6rjar utforma en l\\xF6sning. Objektorienterad analys hj\\xE4lper oss att minska komplexiteten och skapa system som speglar relevanta begrepp i verksamheten.\"), mdx(\"p\", null, \"UML-modeller fungerar som ett gemensamt spr\\xE5k f\\xF6r att beskriva systemkrav och beteenden. De underl\\xE4ttar kommunikationen mellan intressenter och utvecklare.\"), mdx(\"p\", null, \"Objektorienterad analys handlar bland annat om att identifiera \", mdx(\"strong\", {\n    parentName: \"p\"\n  }, \"objekt, klasser och relationer\"), \" i problemdom\\xE4nen. Systemets funktionalitet dokumenteras med anv\\xE4ndningsfall, aktivitetsdiagram och sekvensdiagram. Modellerna hj\\xE4lper oss att beskriva:\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"vad systemet ska g\\xF6ra\"), \", allts\\xE5 de funktionella kraven,\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"hur processer fl\\xF6dar\"), \", allts\\xE5 arbetsfl\\xF6den,\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, mdx(\"strong\", {\n    parentName: \"li\"\n  }, \"hur objekt samverkar dynamiskt\"), \" genom att skicka meddelanden till varandra.\")), mdx(\"h2\", null, \"Omr\\xE5den i temat\"), mdx(\"h3\", null, \"Dom\\xE4nmodellering\"), mdx(\"p\", null, \"Dom\\xE4nmodellen beskriver konceptuella klasser, deras egenskaper och relationerna mellan dem.\"), mdx(\"h3\", null, \"Modellering av anv\\xE4ndningsfall\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"anv\\xE4ndningsfallsmodellens roll i kravanalysen,\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"akt\\xF6rer, anv\\xE4ndningsfall, scenarier och relationer,\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"kortfattade, informella och fullst\\xE4ndigt beskrivna anv\\xE4ndningsfall,\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"anv\\xE4ndningsfallsdiagram som visuell sammanfattning av systemets funktionalitet.\")), mdx(\"h3\", null, \"Aktivitetsdiagram\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"arbetsfl\\xF6den och kontrollfl\\xF6den,\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"aktiviteter, beslut, start- och slutnoder, simbanor och parallella fl\\xF6den,\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"hur aktivitetsdiagram kompletterar anv\\xE4ndningsfall genom att beskriva processlogik.\")), mdx(\"h3\", null, \"Sekvensdiagram\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"dynamisk samverkan mellan objekt i ett best\\xE4mt scenario,\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"livslinjer, meddelanden, aktiveringsf\\xE4lt och tidsordning,\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"hur diagrammen hj\\xE4lper oss att identifiera metoder, ansvar och samarbeten,\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"sekvensdiagrammens roll som l\\xE4nk mellan analys och design.\")), mdx(\"h2\", null, \"L\\xE4sanvisningar\"), mdx(\"p\", null, \"L\\xE4s f\\xF6ljande kapitel i Craig Larmans \", mdx(\"em\", {\n    parentName: \"p\"\n  }, \"Applying UML and Patterns\"), \":\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"avsnitt 1.6 f\\xF6r bakgrund om modellering,\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"kapitel 6 om anv\\xE4ndningsfallsmodeller och anv\\xE4ndningsfallsdiagram,\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"kapitel 9, 10 och 15 om dom\\xE4nmodeller och sekvensdiagram,\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"kapitel 28 om aktivitetsdiagram.\")), mdx(\"h2\", null, \"Studiefr\\xE5gor\"), mdx(\"h3\", null, \"Objektorienterad analys\"), mdx(\"ol\", null, mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Vad \\xE4r objektorienterad analys, och hur skiljer den sig fr\\xE5n design?\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Definiera begreppen objekt och klass. Hur relaterar de till varandra?\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Vilka roller och ansvar kan objekt ha i ett system?\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Vad \\xE4r syftet med en dom\\xE4nmodell, och hur skapas den?\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Hur hj\\xE4lper associationer och multiplicitet oss att modellera relationer?\")), mdx(\"h3\", null, \"Modellering av anv\\xE4ndningsfall\"), mdx(\"ol\", {\n    \"start\": 6\n  }, mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Vad \\xE4r en anv\\xE4ndningsfallsmodell, och vilka \\xE4r dess viktigaste delar?\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Vad \\xE4r en akt\\xF6r? Vilka typer av akt\\xF6rer kan f\\xF6rekomma i en anv\\xE4ndningsfallsmodell?\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Vad \\xE4r skillnaden mellan ett anv\\xE4ndningsfall och ett scenario?\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Beskriv de tre formaten f\\xF6r att skriva anv\\xE4ndningsfall. N\\xE4r passar respektive format?\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Hur kan en anv\\xE4ndningsfallsmodell hj\\xE4lpa oss att hitta klasser och ansvar?\")), mdx(\"h3\", null, \"Aktivitetsdiagram\"), mdx(\"ol\", {\n    \"start\": 11\n  }, mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Vad \\xE4r ett aktivitetsdiagram, och hur skiljer det sig fr\\xE5n ett anv\\xE4ndningsfallsdiagram?\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Vilken funktion har simbanor i ett aktivitetsdiagram?\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Hur kan ett aktivitetsdiagram beskriva parallella processer?\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"P\\xE5 vilka s\\xE4tt st\\xF6djer aktivitetsdiagram objektorienterad analys?\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Hur kan m\\xF6jliga klasser och metoder identifieras utifr\\xE5n ett aktivitetsdiagram?\")), mdx(\"h3\", null, \"Sekvensdiagram\"), mdx(\"ol\", {\n    \"start\": 16\n  }, mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Vad \\xE4r ett sekvensdiagram, och vad beskriver det?\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Vilka \\xE4r de viktigaste delarna i ett sekvensdiagram?\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Hur hj\\xE4lper sekvensdiagram oss att identifiera objekts ansvar?\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Hur kompletterar sekvensdiagram anv\\xE4ndningsfall och aktivitetsdiagram?\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Varf\\xF6r betraktas sekvensdiagram som en l\\xE4nk mellan analys och design?\")), 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":"#områden-i-temat","title":"Områden i temat","items":[{"url":"#domänmodellering","title":"Domänmodellering"},{"url":"#modellering-av-användningsfall","title":"Modellering av användningsfall"},{"url":"#aktivitetsdiagram","title":"Aktivitetsdiagram"},{"url":"#sekvensdiagram","title":"Sekvensdiagram"}]},{"url":"#läsanvisningar","title":"Läsanvisningar"},{"url":"#studiefrågor","title":"Studiefrågor","items":[{"url":"#objektorienterad-analys","title":"Objektorienterad analys"},{"url":"#modellering-av-användningsfall-1","title":"Modellering av användningsfall"},{"url":"#aktivitetsdiagram-1","title":"Aktivitetsdiagram"},{"url":"#sekvensdiagram-1","title":"Sekvensdiagram"}]}]},"parent":{"relativePath":"forelasningar-2026/00-tema-2-objektorienterad-analys-och-uml.md"},"frontmatter":{"metaTitle":"Tema 2 – Objektorienterad analys och modellering med UML | 1DV607","metaDescription":"Syfte, innehåll, läsanvisningar och studiefrågor om objektorienterad analys och UML-modellering.","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":"04202025-633c-53d4-90ac-fcd388dff911"}},
    "staticQueryHashes": ["253607798","3706406642","710574383"]}