Forelesning IMT Mars 2011

Like dokumenter
Tom Røise 24.Mars 2009

Tom Røise IMT 2243 : Systemutvikling 1. Forelesning IMT Mars Designfasen i SU-prosjekter : Generelle steg i Designprosessen

Distributed object architecture

Distributed object architecture

Arkitektur. Kirsten Ribu Høgskolen i Oslo

Arkitektur. Kirsten Ribu Høgskolen i Oslo

Innholdsfortegnelse: Resymé: Denne leksjon gir en kort og enkelt oversikt over hvilke oppgaver som skal utføres i design- og programmeringsfasen.

Forelesning IMT Mars 2011

Oppsummering : IMT2243 Systemutvikling. Hensikt med kurset. Innfallsvinkel : Tom Røise IMT2243 : Systemutvikling 1

Tom Røise 9. Februar 2010

Oppsummering : IMT2243 Systemutvikling. Hensikt med kurset. Innfallsvinkel : Tom Røise IMT2243 : Systemutvikling 1

Hvordan komme i gang med ArchiMate? Det første modelleringsspråket som gjør TOGAF Praktisk

Tom Røise 18. Februar 2009

A Study of Industrial, Component-Based Development, Ericsson

API: Application programming interface, eller programmeringsgrensesnitt

Programvare arkitekturer

License Management Morten A. Steien EDB Business Partner Industri

Kap. 10 Systemutvikling System Engineering

Systemutvikling (Software Engineering) Professor Alf Inge Wang

INF5120 Eksamen Løsningsforslag Oppgave 1a,b COMET

Forelesning IMT mars 2011

Itled 4021 IT Governance Fra IT-strategi til digital forretningsstrategi og plattformer

Referansearkitektur use cases. Kjell Sand SINTEF Energi AS NTNU Institutt for elkraftteknikk

SAS IN A SOA WORLD MARIUS SOMMERSETH TEAM LEAD TECHNICAL ARCHITECTURE

Kapittel 13 Advanced Hypertext Implementation. Martin Lie Ole Kristian Heggøy

CORBA Component Model (CCM)

Software Requirements and Design (SRD) 1 Generelt om dokumenter

HONSEL process monitoring

System integration testing. Forelesning Systems Testing UiB Høst 2011, Ina M. Espås,

Use case modellen. Use case modellering i analysefasen. Hva er en Aktør? Hva er et Use case? Use case modellering. Eksempel

Arkitektur. 4 april Mål for forelesningen: Se på kriterier for design, arkitektur av komponent og prosess. Kriterier. Komponenter.

Systemarkitektur. INF1050: Gjennomgang, uke 07

(MVC - Model, View, Control)

IT-ledelse 25.jan - Dagens

Bruk av ucmdb til SLM og Change Management EDB Business Partner Industri

INF 5120 Obligatorisk oppgave Nr 2

Gruppe 11. Frank Petter Larsen Vegard Dehlen

Hva betyr tjenesteorientert arkitektur for sikkerhet?

Kurskategori 2: Læring og undervisning i et IKT-miljø. vår

LocalBank Prosjektbeskrivelse

buildingsmart international

Uke 5. Magnus Li INF /

Oppsummering. Thomas Lohne Aanes Thomas Amble

Kurskategori 3: Utvikling av IKT- systemer. høsten

Generelt om operativsystemer

SQL Server guide til e-lector

Brukerkrav og use case diagrammer og -tekst 19. januar Agenda. Brukerkrav og use case. Diagrammer Tekst.

UKEOPPGAVER 13: KONFIGURASJONSSTYRING

Objektorientert design av kode. Refaktorering.

Brukers Arbeidsflate. Tjeneste Katalog. Hva vi leverer... Presentasjon Administrasjon Automatisering

NOVUG 14 februar HP Asset Management

Kravspesifiseringsprosessen

SPIRIT OF INNOVATION NY PLATTFORM FOR INFORMASJONSSTØTTE PÅ BRO RUNE VOLDEN ULSTEIN POWER & CONTROL AS

NOVUG 3 februar 2009

Fra tradisjonell komponentbasert overvåking 5l tjenestebasert overvåking. April 2017

6105 Windows Server og datanett

OOSU 22.sept Pattern har sin opprinnelse innen arkitektur (byplanlegging / bygninger)

Introduction to DK- CERT Vulnerability Database

6105 Windows Server og datanett

2. HVA ER EN KOMPONENT?

PDM i Elektronikkbransjen DNUs Sommerseminar

WORLD CLASS through people, technology and dedication

AlgDat 12. Forelesning 2. Gunnar Misund

Europeiske standarder -- CIM og ENTSO-E CGMES. Svein Harald Olsen, Statnett Fornebu, 11. september 2014

Kapittel 5 - Advanced Hypertext Model Kapittel 6 - Overview of the WebML Development Process

EKSAMEN 05HBINDA, 05HBINFA, 05HBISA, 05HBMETEA, 06HBINFA. Tom Røise. INNFØRING MED PENN, evt. trykkblyant som gir gjennomslag

1. Installasjon av SharePoint 2013

6105 Windows Server og datanett

Sascha Schubert Product Manager Data Mining SAS International Copyright 2006, SAS Institute Inc. All rights reserved.

Øystein Haugen, Professor, Computer Science MASTER THESES Professor Øystein Haugen, room D

Grunnlag: 11 år med erfaring og tilbakemeldinger

TILLEGGSSPØRSMÅL BILLETT- OG ADMINISTRASJONSSYSTEM KINONOR AS COMPLEMENTARY QUESTIONS POINT OF SALE SOFTWARE PACKAGE KINONOR AS

Team2 Requirements & Design Document Værsystem

Web Service Registry

Unified Communications. Audun Heggelund

eoperasjoner OMS oppgaver

University of Oslo Department of Informatics. INF Modellering med objekter Oblig 2, V2004. Skrevet av:

IT-ledelse 14.jan - Dagens

Intentor Helpdesk - Installasjon Step #3: Microsoft Reporting Services

Applikasjonsutvikling med databaser

Dataforeningen Østlandet Cloud Computing DEN NORSKE DATAFORENING Vi engasjerer, påvirker og skaper fremtid!

EN Skriving for kommunikasjon og tenkning

CLIQ Remote. - Fleksibel administrasjon av et dp CLIQ system. ASSA ABLOY, the global leader in door opening solutions

Lage større programmer (Python, relatert til teoridelen om Software Engineering ) TDT 4110 IT Grunnkurs Professor Guttorm Sindre

Stikkord: Java EE, EJB, JSF, JPA, SWT, klient/tjener, Glassfish server, Application Client.

Oblig 2, SLI250 Et kortfattet analyse og designdokument for skifteregister på nett

Tredjeparters tilgang til bankkonti - hva gjør næringen?

Feilsøking i BO. Olav Syse, konsulent. Jan Terje Hansen, service manager. Be business intelligent

Velkommen til Pressis.

Presentasjon på Smart Grid Seminar, Steinkjer av Gunnar Vist

Tom Røise 28.Jan 2010

EXAM TTM4128 SERVICE AND RESOURCE MANAGEMENT EKSAM I TTM4128 TJENESTE- OG RESSURSADMINISTRASJON

NOVAPOINT BRUKERMØTE 2016 BERGEN, mai

Hensikten med denne delen av kurset. Objektets egenskaper. Objektorientering hva er det? Best practises ved programvareutvikling. Kravspesifikasjonen

TDT4117 Information Retrieval - Autumn 2014

Digitaliseringsreisen

En praktisk anvendelse av ITIL rammeverket

Use case modellen. Use case modellering i analysefasen. Hva er en Aktør? Hva er et Use case?

Innholdsfortegnelse. 1. Testing Feiltesting av koden Funksjonstesting: Kilder.10

Transkript:

Forelesning IMT2243 24. Mars 2011 Tema : Design av programvare Hva er målet i designfasen? Generelle steg ved design av programvare Softwarearkitektur Struktur og organisering Kontrollmekanismer Dekomponering Arkitektur i OL Veiviseren og Athletic Manager Hva bør diskuteres i innledende arkitekturvurderinger her? Pensum : Sommerville (Kap.6 unntatt 6.4)

Målet : Designfasen i SU-prosjekter : Å få bestemt seg for hvordan den nye programvare-løsningen skal utformes. Man etterstreber å tilfredsstille kravene som er spesifisert samtidig med at man holder seg innen rammebetingelsene som er gitt for utviklingsprosjektet Utforme et design som legger til rette for å komme frem til en løsning med RIKTIG kvalitet på en rasjonell og effektiv måte Få beskrevet løsningen i tilstrekkelig detalj til i neste omgang å realisere den.

Generelle steg i Designprosessen 1. Problemforståelse : Sette seg inn i kravspesifikasjonen og de omkringliggende rammer 2. Identifisere en eller flere mulige løsninger : Vurdere ulike alternativer og velge den beste 3. Beskrive løsningen på et overordnet og abstrakt nivå (programvarearkitektur) 4. Detaljspesifisere den enkelte del av løsningen etter behov ( modulinndeling, databasedesign, GUI-design etc)

The software design process tidl. versjon av Sommerville

Programvarearkitektur Hensikten med å arbeide med programvarearkitektur er å få bestemt hvordan den nye programvaren skal organiseres / struktureres for best mulig å tilfredsstille kravene. Sommervilles omtale av arkitekturdesign : Architectural design is a creative process where you try to establish a system organisation that will satisfy the functional and non-fuctional system requirements. Design process for identifying the sub-systems making up a system and the framework for sub-system control and communication is architectural design The output of this design process is a description of the software architecture

Definisjoner på softwarearkitektur Bass m.fl. : The software architecture of a program or computer system is the structure or structures of the system, which comprise software components, the externally visible properties of those components, and the relationship among them. T. Quatrani (Rational): It is a range of artifacts that are used to specify the strategic decisions about the structure and behavior of the system, the collaborations among the system elements, and the physical deployment of the system.

Ulike arkitekturmodeller Det er viktig å betrakte programvaren man skal utvikle fra ulike perspektiver og diskutere alternative utforminger. Sommerville: Static structural model vise sub-systemer som separate enheter Dynamic process model viser et run-time bilde systemet med fokus på kontrollmekanismer Interface model vise hvilke tjenester hvert sub-system tilbyr, og med hvilket grensesnitt Relationship models fokuserer på koblingene mellom de ulike delsystemene Distribution model vise løsningens maskinvare topologi

Programvarestruktur Tre grunnleggende modeller omtalt i Sommerville : Repository modell - en sentralisert database holder på informasjonen hvor sub-systemene aksesserer denne Klient-Tjener modell - definerer hvordan man skal distribuere data og prosessering i systemet Lagdelingsmodellen - hvor fokus er på å strukterere programvaren i ulike lag som tilbyr omgivelesene definerte tjenester og der grensesnittene mellom lagene er veldefinerte

Struktur 1 : Repository model (fig. 6.9 i Sommerville) Design editor Code generator Design translator Project repository Program editor Design analyser Report generator

Struktur 2 : Client - Server model (fig. 6.11 i Sommerville) Client 1 Client 2 Client 3 Client 4 Wide-bandwidth network Catalogue server Video server Picture server Hypertext server Catalogue Film clip files Digitiz ed photographs Hypertext web

Struktur 3 : Layer model Presentasjon Applikasjon Domene Datalagring

Gartner Group sine nivåer i K/T modellen Viser 5 ulike nivåer å basere sin Klient / Tjener inndeling på : 1. Distribuert presentasjon : Klienten besørger deler av brukergrensesnittet, resten ligger sentralt 2. Remote presentasjon : Klienten besørger brukergrensesnitt og kall til sentralt system genereres. Resten ligger sentralt 3. Distribuert funksjon : Deler av applikasjonen ligger ute på klienten, resten ligger sentralt 4. Remote data : Kun dataene ligger på tjeneren. All prosessering skjer lokalt 5. Distribuerte data : Dataene ligger delvis på tjeneren og delvis på klienten

3 lags klient - tjener arkitektur Client HTTP interaction Client Web server Account service provision SQL query Datab ase server SQL Customer account database Client Client

Kontroll modeller Etter å ha definert de overordnede trekk i systemstrukturen, bør det foretas bevisste valg for kontrollmekanismene for at riktig tjeneste leveres til riktig tid i systemet. Sentralisert kontroll call-return model manager model Hendelsesbasert kontroll broadcast model interrupt-driven models

Kontroll 1 a : Sentralisert : call-return Main program (tidl. Sommerville) Routine 1 Routine 2 Routine 3 Routine 1.1 Routine 1.2 Routine 3.1 Routine 3.2

Kontroll 1 b : Sentralisert : manager (tidl. Sommerville) Sensor processes Actuator processes System contr oller Computation processes User interface Fault handler

Kontroll 2 a : Hendelses basert : Broadcast (tidl. Sommerville) Sub-system 1 Sub-system 2 Sub-system 3 Sub-system 4 Event and messa ge handler

Kontroll 2 b : Hendelses basert : Interrupt-driven (tidl. Sommerville) Interrupts Interrupt vector Handler 1 Handler 2 Handler 3 Handler 4 Process 1 Process 2 Process 3 Process 4

Modul dekomponering Etter å ha bestemt seg for hvilke prinsipper man skal basere inndelingen av programvaren på, deles også det enkelte sub-system opp i mindre komponenter / moduler. Ved å dekomponere oppnår man å reduserer kompleksiteten bevare oversikten over totalitet og detaljer gir mulighet for parallelt utviklingsarbeid bedre endrings- og gjenbruksmulighetene Dekomponering er et generelt prinsipp som benyttes innen alle former for Programvaredesign.

Modulstyrke (Cohesion) Modulstyrke er et mål på de interne forholdene i en systemmodul. Det er et ideal å komme frem til sterke moduler innen design En modul som er sammensatt av enkle, tett sammenknyttede og veldefinerte oppgaver/funksjoner er sterk. Fordeler og ulemper med å tilstrebe høy modulstyrke : Høy stryke gir god vedlikeholdbarhet Overdreven dekomponering for å oppnå sterke moduler vil gi et kaos av mange små moduler

Modulkobling (Coupling) Modulkobling er et mål på sammenkoblingene mellom modulene vi har satt opp i designet. Det er et ideal å komme frem til moduler med Lav kobling Sterk modulkobling vanskeliggjør vedlikehold. Ved lav kobling er endringer og feilsøking enklere, da datautvekslingen er minimal Ved å holde datastrukturene internt i den enkelte modul oppnår man en lavere koblingsgrad (innkapsling innen OO). Globale data er et skrekk-eksempel på Høy kobling - men mange benytter seg av det likevel

Designdokumentasjon Resultatet av Designarbeidet nedfelles i et Designdokument. Designfasen involverer mange, går ofte over lang tid og det blir mange endringer underveis. Det er kritisk å ha en komplett og konsistent dokumentasjon. Definer derfor: Struktur for designdokumentasjon Regler for å få enhetlighet i dokumentasjonen Ajourføringsregler

Neste gang : Design i RUP Vi ser nøyere på dette neste forelesning. RUP : Software Architect er en av de mest sentrale rollene i RUP Fokus på å komme frem til en robust og fleksibel programvarearkitektur ved utgangen av Elaboration-fasen. (Life Cycle Architecture). Dokumenteres i artefaktet SAD (Software Architecture Document) 4 + 1 View - fokus på å se løsningen fra ulike perspektiv