Design. Vad lärde jag mig förra lekfonen? Hur bidrog jag Fll lärandet? Kravhantering sammanfa0ning 13/04/14

Relevanta dokument
När? Varför? För vem? Resultat? (Artefakter?)

Arkitektur. Den Röda Tråden

Arkitektur Michael Åhs

Objekt-orienterad programmering och design. DIT953 Niklas Broberg, 2018

Lars Wiktorin, IT plan

KravinsamlingAnalys Design Implementation Testning

RUP är en omfattande process, ett processramverk. RUP bör införas stegvis. RUP måste anpassas. till organisationen till projektet

Software Design Introduction

TDP005. Föreläsning 3 - UML. Filip Strömbäck

Objekt-orienterad Programmering och Design. TDA552 Alex Gerdes, HT-2018

" «Observable» DataGenerator" betyder att klassen DataGenerator ärver från den abstrakta klassen Observable.

Objekt-orienterad Programmering och Design. TDA551 Alex Gerdes, HT-2016

Mer OOP. Variation i typ. Medlen repetition. Generiska klasser. Gränssnitt - Interface. Mer om klasser Några exempel UML

Användning av modeller för system/produktutveckling

Agenda. Plats och magkänsla. Presentation. - en pedagogisk fråga?

UML 1(5) Introduktion till Unified Modeling Language. 1 Bakgrund och historik

PAINTFEUD. Erfarenheter

F7 Agila metoder. EDAF45 Programvaruutveckling i grupp Projekt Boris Magnusson, Ulf Asklund Datavetenskap, LTH

This work by. Fredrik Wendt. is licensed under a. Creative Commons

Tentamen NOA011 Systemarkitektprogrammet. 51 poäng

Inkapsling (encapsulation)

Sammanfattning och Tentamensinfo Objekt-orienterad programmering och design (DIT953) Niklas Broberg, 2018

Model View Controller. Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016

Inför projektuppgiften. Markus Buschle,

Inför projektuppgiften. Markus Buschle,

RUP - Rational Unified Process

Semantic and Physical Modeling and Simulation of Multi-Domain Energy Systems: Gas Turbines and Electrical Power Networks

Förenklat handlar idrottspsykologin om människors upplevelser, känslor, beteenden och tankar i samband med idrott

MVC med Javascript och Ajax. Filip Ekberg

Authentication Context QC Statement. Stefan Santesson, 3xA Security AB

Datavetenskap. Beteendevetenskap MDI. Design

Den Röda Tråden. Vi kan ta fram arkitekturkrav. Vi kan ta fram arkitektur och design. Vi kan skriva Clean Code KRAV DESIGN IMPLEMENT VISION TEST

Preschool Kindergarten

Systemutveckling. Historiskt grundad introduktion

Henrik Häggbom Examensarbete Nackademin Våren 2015

Mönster. Ulf Cederling Växjö University Slide 1

DD2385 Programutvecklingsteknik Några bilder till föreläsning 1 24/ Kursöversikt Javarepetition/Javaintroduktion

State Examinations Commission

Symptom på problemen vid programvaruutveckling

SOA One Year Later and With a Business Perspective. BEA Education VNUG 2006

Observer Pattern och MVC. Objekt-orienterad programmering och design Alex Gerdes, 2016

Tjänster, design och innovation. Tjänstedesign, vad är det

Mjukvarudesign. Designprocessen. Teknisk design. Konceptuell design

Biblioteket.se. A library project, not a web project. Daniel Andersson. Biblioteket.se. New Communication Channels in Libraries Budapest Nov 19, 2007

Designmönster - EMW. Kent Petersson epost1: kentp@cs.chalmers.se epost2: kent.petersson@emw.ericsson.se URL:

Erfarenheter från Hazop användning på programvara i Arte740. Presentation för SESAM Claes Norelöv 4Real AB

HT1 2013, FÖRELÄSNING 14 (INFÖR TENTAN)

Tentamen i EDAF25. 1 juni Skrivtid: Skriv inte med färgpenna enda tillåtna färg är svart/blyerts.

Objektorienterad Systemutveckling Period 3

RUP Rational Unified Process. 17 november 2004

Designprinciper för säkerhet och Epilog. Marcus Bendtsen Institutionen för Datavetenskap (IDA) Avdelningen för Databas- och Informationsteknik (ADIT)

Principer, Pa+erns och Tekniker. Objekt-orienterad programmering och design Alex Gerdes, 2018

Objekt-orienterad programmering. Klassbegreppet och C++ UML. UMLs fördelar

HT1 2015, FÖRELÄSNING 14 (INFÖR TENTAN)

VHDL Basics. Component model Code model Entity Architecture Identifiers and objects Operations for relations. Bengt Oelmann -- copyright

Om fem stycken :GameObject ligger i vägen för b:bullet så kommer alltid loopen köras fem gånger. Välj ett alternativ

denna del en poäng. 1. (Dugga 1.1) och v = (a) Beräkna u (2u 2u v) om u = . (1p) och som är parallell

Smarter Analytics med rätt infrastruktur

Observer Pattern och MVC. Objekt-orienterad programmering och design (DIT953) Niklas Broberg, 2018

Fråga 1. A) Domain-requirement analysis B) Questionaires C) Focus groups D) Design workshop C) Stakeholder analysis. Svar: C, D

Make a speech. How to make the perfect speech. söndag 6 oktober 13

PDM Implementation & Change Management /FRN

Den mobila användaren sätter traditionella säkerhetssystem ur spel

Designmönster, introduktion. Vad är det? Varför skall man använda mönster?

Dependencies High cohesion, low coupling. Objekt-orienterad programmering och design Alex Gerdes, 2018

Final Course Marks will be combined from the examination and the project:

Praktikum i programvaruproduktion

GRUNDER I VHDL. Innehåll. Komponentmodell Kodmodell Entity Architecture Identifierare och objekt Operationer för jämförelse

Information technology Open Document Format for Office Applications (OpenDocument) v1.0 (ISO/IEC 26300:2006, IDT) SWEDISH STANDARDS INSTITUTE

UML Objektdiagram. Objektorienterad modellering och design (EDAF25) Föreläsning 3. UML Sekvensdiagram. UML Objektdiagram. Agenda

Vad betyder TDD? Test Driven Design?

Designmönster/Design patterns

Webbreg öppen: 26/ /

Vad kännetecknar en god klass. Vad kännetecknar en god klass. F12 Nested & Inner Classes

Vad är. Domändriven design?

Skapa din E-post lista med. Lotta Carlberg. Lotta Carlberg

Virtuellt VA med digitala tvillingar

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 11 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Botnia-Atlantica Information Meeting

Fortbildningsavdelningen för skolans internationalisering. Dossier 3. European Language Portfolio 16+ Europeisk språkportfolio 16+ English version

Systemvetare, dataekonomer och affärsinformatiker

Kursplan. IK1004 Java - Grafiska användargränssnitt med Swing. 7,5 högskolepoäng, Grundnivå 1. Java - GUI Programming with Swing - Undergraduate Level

System Arkitektur. Vad är en arkitektur? Har alla system en arkitektur? Hur designar man en arkitektur? Olika synsätt på arkitektur. Mönster.

Objektorientering. Grunderna i OO

Introduction to the Semantic Web. Eva Blomqvist

Kvalitetssäkra ditt projekt med kontinuerlig integration

Förändrade förväntningar

Tentamen i EDAF oktober Skrivtid: Skriv bara på ena sidan av pappret tentorna kommer att scannas in, och endast framsidorna rättas.

Copyright Syntell AB 1

Programutvecklingsprojekt Projektgrupp Elvin. Detailed Design Document

Grafer, traversering. Koffman & Wolfgang kapitel 10, avsnitt 4

icore Solutions. All Rights Reserved.

Copyright 2003, SAS Institute Inc. All rights reserved.

Objektorienterad modellering och diskreta strukturer (EDAF10/EDA061)

Hur hanterar vi risk? Vad är TKO? Skillnad på agil och trad? Agil/Lean: Defer Commitment, Build knowledge, Fail fast

Plats för projektsymbol. Nätverket för svensk Internet- Infrastruktur

Transkript:

Design Vad är design? Vad är arkitektur? Architectural Pa:erns Designprinciper Design Pa:erns UML Domain Driven Design Domänmodell Vad lärde jag mig förra lekfonen? Hur bidrog jag Fll lärandet? Kravhantering sammanfa0ning BDD/ATDD/SpecificaFon By Example User stories AcceptanstesPall/Testscenarion Icke- funkfonella krav Technical Stories DokumentaFon Domain Driven Design Ubiquituous language Vad är en modell? Vad är en domän? 1

13/04/14 Filmen: SpoFfy Engineering Culture Vad är design? Test Driven Design google define: design the act of working out the form of something 2

Varför Design? Varför? När? För vem? (Mo:agare?) Resultat? Artefakter? När? När? 3

För vem? Övning Skapa en (enkel) begreppsmodell av domänen uffrån våra 3 mest signifikanta user stories Sök produkt Lägg i kundvagn Betala Grundläggande Designprinciper AbstracFon DecomposiFon and modularizafon Coupling and Cohesion EncapsulaFon and informafon hiding Consistency (Ubiquituous language) 4

Grundläggande Designprinciper No one gets it right the first Fme! Analysis Paralysis Vad är arkitektur? google define:architecture 5

All architecture is design, but not all design is architecture. Architecture represents the significant decisions where significance is measured by cost of change Grady Booch Architecture is simply the deliberate and considered resolufon of significant problems. Kevin Seal (h:p://www.codingthearchitecture.com/ pages/book/disambiguafng- architecture.html) The sohware architecture of a program or compufng system is the structure or structures of the system, which comprise - sohware components - the externally visible properfes of those components, - and the relafonships among them. Bass, Clements, and Kazman. Sohware Architecture in PracFce, Addison- Wesley 1997 6

Geggan mellan lådorna i komponentdiagrammet Vad är arkitektur? IT- arkitektur Enterprise architecture Verksamhetsarkitektur Lösningsarkitektur Mjukvaruarkitektur Infrastrukturarkitektur h:p://www.iasa.se/wp- content/uploads/2012/05/iasa- Arkitektroller- 2012.pdf Arkitektroller IASA 7

Varför? När? För vem? Mo:agare? Resultat? Artefakter? Varför Arkitektur? En enkel process WHIRLPOOL 8

Architectural views h:p://en.wikipedia.org/wiki/file:4%2b1_architectural_view_model.jpg Architectural views Logical view: Class, CommunicaOon, Sequence Development view: Component, Package Process view: AcFvity Physical view: Deployment Use case view: Use case diagram 9

Architectural views Exempel: Logisk vy: KommunikaFonsdiagram Fysisk vy: Deploymentdiagram Logisk vy: Klassdiagram över tjänster Marknadsföringsvy SAD Övning Skapa e: (enkelt) kommunikafonsdiagram över komponenter/tjänster uffrån våra 3 mest signifikanta user stories Sök produkt Lägg i kundvagn Betala Övning Skapa e: (enkelt) deploymentdiagram uffrån våra 3 mest signifikanta user stories och Fdigare diagram Sök produkt Lägg i kundvagn Betala 10

Pa0ern/Mönster a general reusable solufon to a commonly occurring problem within a given context h:p://en.wikipedia.org/wiki/sohware_design_pa:ern Arkitekturmönster General structure; e.g., shared repository, layers, pipes and filters Distributed systems; e.g., client- server, REST InteracFve systems; e.g., Model- View- Controller (MVC), MVVM IntegraFon: SOA/ESB Data Achitecture: Data Warehouse Infrastructure: Load Balancer Övning Vilka mönster är kandidater a: använda i vår arkitektur? 11

Detaljerad Design Vad är en bra design? Grundläggande Designprinciper AbstracFon DecomposiFon and modularizafon Coupling and Cohesion EncapsulaFon and informafon hiding Completeness and primioveness (DoD) Consistency (Ubiquituous language) 12

Grundläggande Designprinciper Reveal Intent - Naming SRP: Single Responsibility Principle One and one reason only to change DRY: Don t Repeat Yourself DuplicaFon: Missed opportunity for abstracfon! Simple design YAGNI: You ain t gonna need it! TacFcal DDDesign pa:erns DDD Pa:ern language! h:ps://domainlanguage.com/ddd/pa:erns/ddd_reference_2011-01- 31.pdf 13

Strategic DDDesign pa:erns DDD Pa:ern language! h:ps://domainlanguage.com/ddd/pa:erns/ddd_reference_2011-01- 31.pdf WHIRLPOOL Design pa:erns EnFty Value- Object Aggregate Repository Service 14

Övning Förfina domänmodellen: A:ribut, mulfplicitet, pa:erns, etc. Design pa:erns Factory Builder DI vs ServiceLocator UML Klassdiagram/Komponentdiagram KommunikaFonsdiagram Sekvensdiagram Deploymentdiagram 15

13/04/14 UML Syntax Den kan ni redan! Övning Skapa kommunikafonsdiagram och/eller sekvensdiagram över komponenter/ tjänster. Förfina med Repository, Service, etc. UML Syntax h:p://mapfight.appspot.com/africa- vs- gl/africa- greenland- size- comparison 16

Refererat material h:ps://domainlanguage.com/ddd/pa:erns/ddd_reference_2011-01- 31.pdf Till nästa föreläsning Kolla in filmen! Habits of a Responsible Programmer, Anders Janmyr: h:p://oredev.org/2013/wed- fri- conference/habits- of- a- responsible- programmer 17