Elaboration. 1DV404, HT14 Jesper Andersson Kap 13, 33, 34, 39

Relevanta dokument
Användningsfall. 1DV404, HT14 Jesper Andersson Kap 5, 6, 7

Objektorienterad programmering

DE TRE UTMANINGARNA..

Introduktion ICAO-EASA.

Mjukvaruprojekt Inception-fasen. 1DV404, HT14 Jesper Andersson Kap 5, 6, 7

Produktens väg från idé till grav

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

Arkitektur Michael Åhs

Nya möjligheter med M3 Technology. Björn Svensson, Björn Torold

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

Ett hållbart boende A sustainable living. Mikael Hassel. Handledare/ Supervisor. Examiner. Katarina Lundeberg/Fredric Benesch

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

Per-Anders Nilsson SaabTech Systems Oktober 2001

Introduktion till Entity Framework och LINQ. Källa och läs mer

Sara Skärhem Martin Jansson Dalarna Science Park

Testning som beslutsstöd

CM FORUM. Introduktion till. Configuration Management (CM) / Konfigurationsledning. Tobias Ljungkvist

Nya driftförutsättningar för Svensk kärnkraft. Kjell Ringdahl EON Kärnkraft Sverige AB

The Swedish National Patient Overview (NPO)

Separation of Concern. Objekt-orienterad programmering och design (DIT953) Niklas Broberg / Johannes Åman Pohjola, 2018

Linköpings universitet 1 TDP029. Systemutveckling. Systemutveckling. Vanliga faser. Fler faser. Systemutvecklingsmetod

Alias 1.0 Rollbaserad inloggning

Klimatanpassning bland stora företag

Boiler with heatpump / Värmepumpsberedare

Implementationsstrategier för PLCS

Ekosystem, roll för små och medelstora företag och digitaliseringens värde i framtida affärer Moderatorer: Christer Norström, SICS Swedish ICT,

System arbetssystem informationssystem

Enterprise App Store. Sammi Khayer. Igor Stevstedt. Konsultchef mobila lösningar. Teknisk Lead mobila lösningar

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

PMM (Process Maturity Metrics) Allmänt. Mätetal för framgångsfaktorer. 1. CM konfigurationsstyrning

Abstrakta Klasser 2. Kodning är bara en liten del i programvaruutvecklingen 6% 1% 6% Abstrakta Klasser - deklaration. Programutveckling sker i faser

Dag König Developer Tools Specialist Microsoft Corporation

CHANGE WITH THE BRAIN IN MIND. Frukostseminarium 11 oktober 2018

Beijer Electronics AB 2000, MA00336A,

Welcome. to the world of Jeeves. Copyright 2011 Jeeves Information Systems AB

Preschool Kindergarten

QC i en organisation SAST

Från Data till Process

CIO MÖTE OSLO 17/11 INFORMATION // INTELLIGENCE // ADVICE. Radar Ecosystem Specialists

Middleware vad, hur, varför när?

Iterativ mjukvaruutveckling. 1DV404 HT14 Jesper Andersson

Regressionstestning teori och praktik

DIGITALA PROJEKT Väderstation

Informationssystem och databasteknik, 2I-1100

Support Manual HoistLocatel Electronic Locks

Separation of Concern. Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016 Johannes Åman Pohjola, 2017

Testdriven utveckling. Magnus Jonsson Siemens Medical Solutions

Uttagning för D21E och H21E

Protokoll Föreningsutskottet

Kvalitetsarbete I Landstinget i Kalmar län. 24 oktober 2007 Eva Arvidsson

Configuration Management

Isolda Purchase - EDI

Lights in Alingsås Nordens största workshop inom ljussättning i offentlig miljö.

ARC 32. Tvättställsblandare/Basin Mixer. inr.se

RUP - Rational Unified Process

Examensarbete Introduk)on - Slutsatser Anne Håkansson annehak@kth.se Studierektor Examensarbeten ICT-skolan, KTH

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

Arkitektur. Den Röda Tråden

SOLAR LIGHT SOLUTION. Giving you the advantages of sunshine. Ningbo Green Light Energy Technology Co., Ltd.

Vässa kraven och förbättra samarbetet med hjälp av Behaviour Driven Development Anna Fallqvist Eriksson

OCTOPUS utvecklingsmetod samt relaterade frågeställningar och diagram

WAVES4POWER Fosnavåg 24 oktober 2016

Styrteknik: Binära tal, talsystem och koder D3:1

TDDC30. Kursledning Kursledare: Jonas Lindgren. Labassistent: Jonas Lindgren Labassistent: Niklas Holma Labassistent: Erik Nilsson

Distribuerade affärssystem

SVENSK STANDARD SS :2010

Kursinformation. Metodik för programvaruutveckling. Utvecklingsprocessen för programvara. Innehåll. Processmodell. Exempel

Not everything that counts can be counted, and not everything that can be counted counts. William Bruce Cameron

Mjukvarudesign. Designprocessen. Teknisk design. Konceptuell design

Förändrade förväntningar

Alternativet är iwindows registret som ni hittar under regedit och Windows XP 32 bit.

Viktig information för transmittrar med option /A1 Gold-Plated Diaphragm

Virtuellt VA med digitala tvillingar

Michael Q. Jones & Matt B. Pedersen University of Nevada Las Vegas

Oförstörande provning (NDT) i Del M Subpart F/Del 145-organisationer

Design och krav. Design Definition. enkelt Det ska vara möjligt att. Henrik Artman

Designmönster för sociala användningssituationer

Vad är. Domändriven design?

Momento Silverline. To further protect the environment Momento introduces a new coating for our impact sockets - Momento Silverline

Module 6: Integrals and applications

SAS Intelligence Architecture. Patrick Eckemo IT Arkitekt / PM Arkitektur SAS Institute

Windlass Control Panel v1.0.1

FMV användning av ISO/IEC för ledningssystem implementering. Harold Bud Lawson Styrelsemedlem och Consulting Partner

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

Second handbook of research on mathematics teaching and learning (NCTM)

ISO STATUS. Prof. dr Vidosav D. MAJSTOROVIĆ 1/14. Mašinski fakultet u Beogradu - PM. Tuesday, December 09,

Objektorienterade programmeringsspråk. Objektorienterade språk. Den objekt-orienterade modellen. Jämför med icke-oo

AGIL KRAVHANTERING. Hitta behoven bakom kraven!! Thomas Nilsson! Agile Coach & Mentor! CTO, Responsive

Flervariabel Analys för Civilingenjörsutbildning i datateknik

What Is Hyper-Threading and How Does It Improve Performance

Objekt-orienterad utveckling. Objektorienterad analys och design. Objekt-orienterad programutveckling. Objekt-orienterad analys och design: Litteratur

Senaste trenderna från testforskningen: Passar de industrin? Robert Feldt,

Collaborative Product Development:

Rätt ifylld bokstav ger 0.5 poäng och fel ifylld bokstav ger 0.5 poäng i avdrag. Rätt svar: Alternativ A, C, D, A, C uppifrån.

Föreläsning 2. Objektorienterad analys och design. Analys: att modellera världen. Design: att strukturera program.

Supporting Decisions on Regression Test Scoping in a Software Product Line Context from Evidence to Practice

SAS VIYA JOHAN ELFMAN ROLAND BALI

Taking Flight! Migrating to SAS 9.2!

SharePoint 2010 licensiering Wictor Wilén

State Examinations Commission

Transkript:

Elaboration 1DV404, HT14 Jesper Andersson Kap 13, 33, 34, 39

UP Faser

Elaboration ü Syfte: Fastställa en basarkitekturen för systemet vilket ger en stabil grund för den största delen av utvecklingsarbetet i nästa fas. ü Krav Få en mer detaljerad förståelse av kraven. Få en fördjupad förståelse för de kritiska krav som valideras av arkitekturen è T. ex. förstå hur de samverkar ü Design Designa, implementera, och validera è fastställa basarkitekturen. Basarkitektur: Ett skelettsystem, med kritisk funktionalitet ü Riskhantering Mildra de mest kritiska riskerna Följd av tester av arkitekturen.

Mjukvaruarkitektur ü Systemets nedbrytning Hur delas systemet upp i delar? Har vi alla delar? Passar delarna ihop? ü Systemangelägenheter (concerns) Systemegenskaper och kvalitéer Avvägningar mellan systemkvalitéer ü Systemintegritet

Arkitektur är inte en utvecklingsfas! ü Den byggs upp av de mest centrala designbesluten. ü Av nyckelabstraktioner som kännetecknar mjukvaran ü Och strukturen av nyckelabstraktioner och centrala interaktionsmekanismer

Så ü Under utvecklingsfasen kommer vi ställas inför ett stort antal strategiskt viktiga beslut. Strategisk adj Viktig eller nödvändig för en planering Centralt för att upp nå önskade mål ü Målet är ett system med förväntad Funktionalitet Kvalité ü Vi behöver verktyg för att diskutera och resonera kring dessa beslut tidigt i processen.

Arkitektur - Nedbrytning ü Ett system byggs upp av delsystem som i sin tur består av delsystem som i sin tur består av ü Detta gäller alla system! Biologiska så väl som artificiella. ü Så problemlösning handlar om att 1. Hitta de absolut bästa bitarna 2. Foga samman dem ü Eller? ü Passar bitarna?

Systemintegritet integritet - (1) - personlig integritet - skydd för privatlivet och privat information, rätten att ha hemligheter och att vara anonym; rätten att betraktas som hederlig och att slippa misstänkliggöras; (2) - egenskap hos databaser, se referensintegritet; (3) - systemintegritet (system integrity) - att datasystemet är komplett och oskadat - helt. - Ordet integritet, engelska integrity. beskriver egenskapen att vara hel, oskadad, odelad. ü De viktigaste systemegenskaperna först!! ü Vi kan inte uppnå en helhet, ett sammanhållet system, nedifrån och upp! Göra nödvändiga avvägningar så att systemets egenskaper uppfylls när du bryter ned systemet. Designa de arkitekturmekanismer som hanterar systemegenskapern, både interna och externa.

Ett exempel ü Fundera kring en applikationer där man kan dela dokument med varandra ü Vad är viktigast? ü Vilka krav har vi? Funktionella, dela filer Kvalitet, prestanda, säkerhet, tillförlitlighet

Hur dela upp i delar? ü Systemets nedbrytning Hur delas systemet upp i delar? Har vi alla delar? Passar delarna ihop? ü System angelägenheter (concerns) Systemegenskaper och kvalitéer Avvägningar mellan systemkvalitéer ü Systemintegritet Funtionalitet 1. Identifiera delsystem och ansvar 2. Identifiera gränssnitten mellan delsystemen Kvalitet 1. Identifiera mekanismer 2. Allokera ansvar till delsystem och gränssnitt.

Funktionalitet ü Användningsfall ger oss funktionalitet. ü Syfte: Identifiera delsystem Allokera tillräckligt med ansvar till delsystemen för att kunna uppfylla användningsfallen. ü Använd scenarier för att verifiera att du allokerat tillräckligt med funktionalitet

Kvalitet ü Cross-cutting, systemets kvalitet finns i hela systemet, inte i enstaka delar. ü Systemkvalitet kan uppnås på två sätt i mjukvara 1. Via vissa strukturegenskaper, mönster 2. Via extrafunktionalitet i systemet, taktik attractions TicketSeller attractions <<database>> Attractions Funktionalitet sales charging booking <<database>> Bookings Charging : Credit <<manifest>> SOAP CreditCardCom pany Dual Core PC >2,0 GHz 4Gb ram Windows XP Professional <<artifact>> TicketService.exe Kvalitet?

Strukturexempel Klient-Server Säkerhet é Skalbarhet ê Tillförlitlighet ê

Strukturexempel Peer-2-Peer KLIENT SERVER LAGRING Skalbarhet é Säkerhet ê Tillförlitlighet é

Taktiker ü Kvalitet som funktionalitet i mjukvaran ü Exempelvis Prestanda genom lastbalansering Tillförlitlighet med felåterhämtning ü Finns även taktiker som på verkar struktur ü Exempelvis För att öka modifierbarheten För att öka återanvändbarheten

Sea Buoy In our seas there are hundreds of navigational buoys anchored near merchant fairways. Their main task is to provide the weather forecasting service and merchant navy with weather information, such as air and water temperature, and wind direction and speed. A buoy collects the weather information and broadcasts it every fifteen minutes via its radio transmitter. The buoy also has a radio receiver. The receiver is used by the weather forecasting services when it retrieves weather data for the last four hours weather and for other purposes such as maintenance by the company service personnel. The buoy can also be used as a lifeline for seamen in distress. If they reach a buoy and hang on to it, they can activate a SOS transmission and a flashing light by pulling an external switch. The buoy then transmits the SOS message until it is switched of via the radio receiver. In search operations vessels and liners can activate the buoy light. This is used for creating a search area grid.

Sea Buoy Aktörer och Användningsfall Ansvar!! Nedbrytning

Sea Buoy FURPS+ Supportability, a. Uppgradering b. Underhåll Resurser? Kommunikation?

Kvalitet och arkitektur En arkitektur möjliggör eller försvårar kvalitet Snarlika problem Organisation Snarlika principer Mjukvaruarkitektur Snarlika lösningar Implementation

Organisationsnivån. Organisation: (medeltidslatin organizaʹtio, av organiʹzo forma, utgöra, jämför organ), term inom organisationsteorin med två betydelser, dels en konkret där en planmässig samverkan mellan individer och grupper med gemensamma intressen åsyftas (förekommer ofta i sammansättningar, t.ex. personalorganisation), dels en mer allmän där ett företags eller en förvaltnings uppläggning av verksamheten avses. De flesta organisationer har en uttalat hierarkisk utformning med klara skiljelinjer mellan över- och underordnade nivåer för att legitimera och underlätta beslutsfattande, ordergivning och kontroll. Det är ett system!

Implementationsnivån ü Imperativa programmeringsspråk (C, Ada, etc.) Procedurer, funktioner, paket erbjuder funktionalitet Används av andra procedurer, funktioner, paket ü Objektorienterade programmeringsspråk Objekt, skapar logiska enheter med data och funktion Meddelanden, en abstraktion för användning av funktion Det är ett system!

Arkitektur i UP ü Arkitekturen är central i iterativa och inkrementella processer ü I UP etablerar vi en arkitektur, tar fram en idé redan under inception-fasen ü Arkitekturen implementeras under elaboration-fasen ü Sedan förfinas den under konstruktionsfasen

ÅTERANVÄNDNING

Återanvändning ü Viktig del i elaboration-fasen ü Identifiera hur man skall återanvända komponenter Bygga Återanvända Köpa

Typer av återanvändning ü Applikationer Vi återanvänder och anpassar kompletta applikationer (COTS) Utveckling av applikationsfamiljer (exempelvis. MS Office) ü Återanvändning av komponenter Komponenter (t.ex. delsystem eller enstaka klasser) från en applikation återanvänds i en annan ü Funktionsåteranvändning Små komponenter som implementerar en liten, väldefinierad, funktion. Exempelvis metoder som sorterar heltal. Värdet av återanvändning står i proportion till svårighetsgraden!

Opportunism vs. Systematik ü Opportunisten, så fort det går och du vinner något så återanvänder du Copy - paste ü Systematik, något helt annat ü För att återanvändning skall bli riktigt effektivt måste det ske systematiskt!!

Systematic Reuse the 3 hypoteser ü Vad måste vara uppfyllt för att det skall fungera? The Redevelopment Hypothesis: Software development is actually Software Redevelopment. Most software development projects construct systems that are variations of existing software systems. It is more the rule than the exception that the new systems have more in common and the new parts when compared to existing systems. The Oracle Hypothesis: It is possible to predict the types of changes that are likely to be needed to a system over its lifetime. In particular, the variation types on the abstract system architecture level. The Organizational Hypothesis: It is possible to structure the software and its development organization in such a way that predicted changes and types are taken into account.

Exempel Redevelopment Oracle Organizational

Återanvändning Definition av två typer ü Återanvänd Funktionalitet Reuse will improve reliability and reduce project risks, time-to market will be shortened, and costs reduced Ökad tillförlitlighet Minskade risker Kortare tid-till-marknad Minskade kostnader ü Återanvänd Design Reused designs will shorten development time, provide standard solutions to common problems, and simplify maintenance ü Fler typer finns givetvis!

Exempel ü Code scavenging (copy & paste) ü Klassbibliotek ü Designmönster ü Distributionsramverk, t.ex. CORBA, EJB. ü Designåteranvänding (expertis) ü Objektorienterade ramverk ü Databashanterare (DBMS) ü Applikationsgeneratorer

Hur använder vi återanvändning ü Utveckling med återanvändning ü Utveckling för återanvändning ü Generator-baserad återanvändning ü Återanvändning av applikationer.

Utveckling med återanvändning 434 4343 dsf r434 sdf sf 3443 Arkitektur Design Sök återanvändbara komponenter Anpassning Komponent Specifikation Använd Komponenten

Utmaningar Utveckling med Återanvändning En algoritm ü Hitta rätt komponent Svårt att matcha krav (sökmotor?) Lösning è Skapa en Organisation för återanvändning ü Använda komponenten Anpassa komponenten Interface adaptation (wrapping) Invasive adaptation Integrera i systemet ü Jämför Opportunistisk med Systematisk.

Problem med återanvändning ü Svårt att hitta bra återanvändbara komponenter. ü Komponenter kan vara svåra att förstå. Metoder, ok! Klasser, också ok! Subsystem, inte lika enkelt. ü Not invented here

Utveckla för återanvändning ü Målet är att utveckla en uppsättning återanvändbara tillgångar. ü En större utmaning än traditionell utveckling. Du vet inte hur tillgången kommer att användas och i vilket sammanhang. Att skapa återanvändbara tillgångar är mycket svårt!

Utveckla för återanvändning Hur ü Oracle Vad skall finnas med Vilken variation är tillgänglig. ü Organisation/Struktur Mönster Standardisera Namn Metoder, konstruktorer, operatorer mm. Undantag (exceptions) Generiska enheter (generics/templates) Livscykelfrågor för återanvändbara tillgångar!

Produktlinjer för mjukvara ü A skapa en produktlinje är mer än att hitta användbara delar och skruva ihop dem lite ad-hoc. ü Domain engineering metoder för att definiera familjer och ingående återanvändbara tillgångar. ü Commonality and variability analysis process för att identifiera gemensamma och varierande delar inom en domän. ü Kombinerar Utveckling för återanvändning med Utveckling med återanvändning.

En processmodell med Domain Engineering Domain Engineering Domänkunskap Domänmodell Produktlinjearkitektur Domänanalys Domändesign Domänimplementation Nya Krav Application Engineering Kundbehov Kravanalys Nya krav Features Designanalys Anpassad design Integration och Testing Anpassad Utveckling Produktkonfiguration

Commonality och Variability ü Commonality -analys Definiera gemensamma delar av produkter i en familj Feature, en högnivåfunktionalitet (kundperspektiv) med given kvalitet. ü Variability -analys Identifiera alla produktspecifika features Union av dessa produktfamiljens variability

Software Product Lines komponenter externa Produkt-linjearkitekturen instantiera interna... produkt 1 produkt 2 produkt n

Software Product Line Engineering Product line Engineering Product line Management Product Domain Engineeering Domain Analysis Domain Implementation Domain Verification & Validation Product line Scoping Product Engineeering Product line Evolution Management Product Requirements Product Analysis & Design Product Implementation Product Verification & Validation Produktlinje Scope Commonality and Variability

Återanvändning och Arkitektur ü Återanvändning är centralt för att snabbt bygga upp en basarkitektur Ramverk Plattformar mm. ü Arkitekturen bryter ned systemet och beskriver delsystemens gränssnitt ü Utgör en bra grund för att leta efter lämpliga komponenter. ü Den verkliga arkitekturen i våra system bestäms av vilka komponenter vi (åter)använder.

I morgon ü Testning - Introduktion ü Software testing primer på coursepress + kapitel 21 i boken.