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

Like dokumenter
Tom Røise 24.Mars 2009

Forelesning IMT Mars 2011

Arkitektur. Kirsten Ribu Høgskolen i Oslo

Distributed object architecture

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

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.

Tom Røise 9. Februar 2010

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

Distributed object architecture

Tom Røise 18. Februar 2009

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

Forelesning IMT Mars 2011

A Study of Industrial, Component-Based Development, Ericsson

Kap. 10 Systemutvikling System Engineering

API: Application programming interface, eller programmeringsgrensesnitt

SAS IN A SOA WORLD MARIUS SOMMERSETH TEAM LEAD TECHNICAL ARCHITECTURE

INF5120 Eksamen Løsningsforslag Oppgave 1a,b COMET

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

Programvare arkitekturer

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

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

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

License Management Morten A. Steien EDB Business Partner Industri

Kravspesifiseringsprosessen

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

HONSEL process monitoring

Systemarkitektur. INF1050: Gjennomgang, uke 07

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

Gruppe 11. Frank Petter Larsen Vegard Dehlen

Forelesning IMT mars 2011

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

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

IT-ledelse 25.jan - Dagens

LocalBank Prosjektbeskrivelse

CORBA Component Model (CCM)

2. HVA ER EN KOMPONENT?

INF 5120 Obligatorisk oppgave Nr 2

UKEOPPGAVER 13: KONFIGURASJONSSTYRING

(MVC - Model, View, Control)

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

Uke 5. Magnus Li INF /

Generelt om operativsystemer

Hva betyr tjenesteorientert arkitektur for sikkerhet?

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

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

Systemutvikling (Software Engineering) Professor Alf Inge Wang

Team2 Requirements & Design Document Værsystem

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

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

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

Tom Røise 2/28/2007. IMT2243 : Systemutvikling 1. Forelesning IMT mars Tema : Litteratur : Strukturert analyse. Strukturert analyse

Software Requirements and Design (SRD) 1 Generelt om dokumenter

Objektorientert design av kode. Refaktorering.

NOVUG 3 februar 2009

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

SQL Server guide til e-lector

Oppsummering. Thomas Lohne Aanes Thomas Amble

Velkommen til Pressis.

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

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

Conference Centre Portal (CCP)

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

Gruppenavn. Prosjektnavn Beskrivelse av design For Navn på systemet. Versjon <1.0>

Kurskategori 3: Design av IKT- systemer. Normalt vår, 14/15: høst

Forprosjektrapport gruppe 3

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

Intentor Helpdesk - Installasjon Step #3: Microsoft Reporting Services

IT-ledelse 14.jan - Dagens

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

6105 Windows Server og datanett

buildingsmart international

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

Model Driven Architecture (MDA) Interpretasjon og kritikk

Tom Røise 28.Jan 2010

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

AlgDat 12. Forelesning 2. Gunnar Misund

WORLD CLASS through people, technology and dedication

Trådløse Systemer. Arild Trobe Engineering Manager. Trådløse Systemer for å løse.. dette?

1. Installasjon av SharePoint 2013

6105 Windows Server og datanett

MindIT sin visjon er å være en anerkjent og innovativ leverandør av teknologi og tjenester i den globale opplæringsbransjen

INF Oblig 2. Hour Registration System (HRS)

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

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

Vedlikehold og gjenbruk

Konfigurasjonsstyring

SuperOffice hurtigstart guide

Software Development Plan

Unified Communications. Audun Heggelund

6105 Windows Server og datanett

6105 Windows Server og datanett

6105 Windows Server og datanett

eoperasjoner OMS oppgaver

Software Development Plan (1. utkast)

Eksamen INF

Eksamen i fag SIF8018 Systemutvikling. Fredag 25. mai 2001 kl

Huldt & Lillevik Lønn og Personal - System 4. Installasjon. Microsoft SQL 2005 Express. Aditro HRM AS

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

Prøveeksamen INF1050: Gjennomgang, uke 15

Transkript:

Forelesning IMT2243 12. Mars 2007 Tema : Design av programvare Hva ønsker vi å oppnå i designfasen? Generelle steg ved design av programvare Softwarearkitektur Struktur og organisering Dekomponering Kontrollmekanismer Innledende diskusjon rundt arkitekturvurderinger i eksemplene IHID, OL Veiviser, m.m. Pensum litteratur : Sommerville (Kap.11) Designfasen i SU-prosjekter : Målet : Finne en programvare-løsning som tilfredsstiller kravene som er spesifisert Lage et design som legger til rette for å komme frem til en løsning med RIKTIG kvalitet på en rasjonell og effektiv måte Få definert løsningen i tilstrekkelig detalj til i neste omgang å realisere den Avklare organiseringen og inndelingen av programvareløsningen Generelle steg i Designprosessen 1. Problemforståelse : Sette seg inn i kravspesifikasjonen 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å (softwarearkitektur) 4. Detaljspesifisere den enkelte del av løsningen etter behov ( modulinndeling, databasedesign, GUI-design etc) IMT 2243 : Systemutvikling 1

The software design process Fig. 4.7 side 77 i Sommerville Software Arkitektur Hensikten med å arbeide med software arkitektur er å få bestemt hvordan den nye programvaren skal organiseres / struktureres for best mulig å tilfredsstille kravene. Sommervilles omtale av arkitektur design : 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 anmong the system elements, and the physical deployment of the system. IMT 2243 : Systemutvikling 2

Softwarearkitektur Å etablere en softwarearkitektur er første aktivitet i designfasen. Her tas beslutninger om hvilke prinsipper man skal følge for inndelingen av løsningen. Arkitekturvalgene danner rammeverket for det detaljerte designet som følger. Arbeidet går ut på koble : kunnskaper om teknologiske alternativer og muligheter forståelse for og innblikk i det problemet man skal løse som gjør en i stand til å identifisere og organisere helheten i en struktur som vil fungere godt på aktuell teknologi Softwarearkitektur Arkitektur modeller : Man bør utvikle systemmodeller / beskrivelser som ser programvaren fra ulike perspektiver. Eksempler (Sommerville s. 246) : 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 Systemstruktur Tre grunnleggende modeller omtalt i Sommerville : Repository modell - en sentralisert database holder på informasjonen, og sub-systemene aksesserer denne Klient-Tjener modell - definerer hvordan man skal distribuere data og prosessering i systemet Abstrakt maskin modell (Lagdelingsmodell) - vise grensesnittene mellom sub-systemene IMT 2243 : Systemutvikling 3

Struktur 1 : Repository model (fig. 11.2 i Sommerville) Design editor Code generator Design translator Project repository Program editor Design analyser Report generator Struktur 2 : Client - Server model (fig. 11.3 i Sommerville) Client 1 Client 2 Client 3 Client 4 Wide-bandwidth network Catalogue server Catalogue Video server Film clip files Picture server Digitized photographs Hypertext server Hypertext web Struktur 3 : Layer model Presentasjon Applikasjon Domene Datalagring IMT 2243 : Systemutvikling 4

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 (Sommerville fig. 12.8) Client HTTP interaction Client Web server Account service provision SQL query Database server Customer SQL account database Client Client Modul dekomponering Man deler her det enkelte sub-system opp i mindre komponenter / moduler. Tar utgangspunkt i modellene fra analysen DFD ved Funksjonsorientert Dekomponering Klassediagram og Sekvensdiagrammer ved Objektorientert Dekomponering Ved å dekomponere oppnår man å reduserer kompleksiteten bevare oversikten over totalitet og detaljer gir mulighet for parallelt utviklingsarbeid bedre endrings- og gjenbruksmulighetene IMT 2243 : Systemutvikling 5

Modulstyrke (Cohesion) Modulstyrke er et mål på de interne forholdene i en systemmodul. Det er et ideal innen design å komme frem til sterke moduler 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 Objektorientert arkitekturmodell (fig. 11.5 Sommerville) IMT 2243 : Systemutvikling 6

Funksjonsorientert arkitekturmodell (fig. 11.6 Sommerville) 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. Sommerville omtaler to ulike modeller for dette er : Sentralisert kontroll call-return model manager model Hendelsesbasert kontroll broadcast model interrupt-driven models Kontroll 1 a : Sentralisert : call-return Main program (fig. 11.7 i Sommerville) Routine 1 Routine 2 Routine 3 Routine 1.1 Routine 1.2 Routine 3.1 Routine 3.2 IMT 2243 : Systemutvikling 7

Kontroll 1 b : Sentralisert : manager (fig. 11.8 i Sommerville) Sensor processes Actuator processes System controller Computation processes User interface Fault handler Kontroll 2 a : Hendelses basert : Broadcast (fig. 11.9 i Sommerville) Sub-system 1 Sub-system 2 Sub-system 3 Sub-system 4 Event and message handler Kontroll 2 b : Hendelses basert : Interrupt-driven (fig. 11.10 i Sommerville) Interrupts Interrupt vector Handler 1 Handler 2 Handler 3 Handler 4 Process 1 Process 2 Process 3 Process 4 IMT 2243 : Systemutvikling 8

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 IMT 2243 : Systemutvikling 9