Introduksjon til in 140 Systemering In 140 Systemering



















- Slides: 19
Introduksjon til in 140 Systemering
In 140 Systemering n Forelesninger Rom 112 – Mandag 0815 -1000 – Torsdag 1415 -1600 n Lærebok: – Sommerville, Ian. Software Engineering – 6. utgave H 2000. – I handel i starten av september? – Innebærer en god del innholdsendring n Foreleser: Ola Bø – e-post: : olabo@frana. vgs. no
In 140 Systemering (Forts) n Prosjektoppgaver i grupper – Tirsdag 1415 – – Melde seg på grupper – Fire obligatoriske prosjektoppgaver – Visio – Eksamen fire timer
Introduksjon n Mål – Introdusere og klargjøre betydningen av systemering. – Svare på grunnleggende spørsmål om systemering. – Introdusere etiske og profesjonelle spørsmål.
Systemering n Datasystemer har stor økonomisk betydning. – Økonomien er avhengig dem. – Flere og flere systemer inneholder programvare. – Programvarekostnaden kan være dominerende. – Vedlikeholdet koster mer enn utviklingen. Formålet med systemering er profesjonell kosteffektiv utvikling av programvare. n Ingen fysisk begrensning på programvare – Dermed ingen grenser for kompleksiteten. n
Softwarekrise? n Fra 1968 Software engineering vs. software crisis. – Mange skandaløse prosjekter – Nye teknikker og metoder skulle mestre kompleksiteten som ikke kunne takles med uformelle metoder.
I dag n Mange metoder og teknikker i bruk. – Utviklingsprosessen er sterkt forbedret. n Kompleksiteten stadig større. n Sammensmelting av kommunikasjons- og datasystemer. n Fortsatt problemer. n Permanent softwarekrise? n Kolossal framgang.
Hva er programvare n Hensikten med systemering er å lage programvareprodukter – Består av programsystemer + dokumentasjon n To hovedklasser programvareprodukter – Standardprodukter som lages for salg på det åpne markedet. (COTS) – Skreddersydde produkter som bestilles av en bestemt kunde og som bygges for denne kunden.
Hva er systemering n En ingeniørferdighet som dreier seg om alle sider av programvareproduksjon fra tidlige faser av spesifikasjonen til vedlikehold etter at systemet er tatt i bruk. – Få ting til å virke med teori, metoder, verktøy – eller uten. – organisatoriske og økonomiske rammer. – Alle sider av programvareproduksjon. • Teknisk • Prosjektorganisering • Utvikling av metoder og teorier. – Systematidsk og organisert tilnærming fordi det er mest effektivt.
Hva er forskjellen mellom informatikk og systemering. n Informatikk er et generelt fag om datamaskiner og programvare. n Systemering gjelder de praktiske problemene med å lage programvare.
Hva er systemeringsprosessen Definisjon: En mengde aktiviteter og resultater som lager eller videreutvikler et programprodukt. n Fire grunnleggende aktiviteter n – Spesifikasjon –Hva skal systemet kunne utføre – Utvikling – Hvordan vi kan lage et slik system – Validering – Virker systemet som spesifisert. – Vedlikehold/Videreutvikling n Rekkefølge og tidsforbruk varierer sterkt – Etter utviklingsorganisasjon – Etter produktet man vil utvikle
Hvilke Systemeringsprosessmodeller har vi n Fossefallsmetoden – Grunnleggende aktiviteter Trinn for trinn n Evolusjonær systemutvikling – Trinnene gjentas gang etter gang. – Første versjon raskt klar. – Videre utvikling derfra sammen med kunden. n Formell transformering – Bygger på formell matematisk spesifikasjon som omformes til et program ved hjelp av matematiske metoder. Gir sikkert korrekt resultat. Systembygging fra gjenbrukbare komponenter – Forutsetter at delene til systemet allerede eksisterer. Da går det ut på å lime delene sammen til et hele.
Hva er kostnadene med systemutvikling n Sterkt variabel fordeling mellom aktivitetene. – Fossefallmetoden – Evolusjonær systemutvikling – Utvikling vs Vedlikehold – Standardsystem på PC
Hva er systemeringsmetoder Strukturert tilnærming til utvikling der målet er høy kvalitet per kostnad. n Kjente metoder n – Strukturert analyse ca 1980. Funksjonsorientert. – Objektorienterte metoder samlet rundt UML ca 1998 Felles ide: Lage grafiske modeller (kart) av systemet. Kartet er spesifikasjon og design. n Metodene består av: Modellbeskrivelse og notasjon, regler, anbefalinger og framgangsmåte. n
Hva er CASE Computer Aided Software Engineering n Programmer til støtte i systemutviklingsprosessen. n Alle metoder har CASE teknologi n – – – – Notasjonseditorer Analysemoduler Rapportgeneratorer Evt. Kodegeneratorer Debuggere Programanalyseverktøy Testgeneratorer Programeditorer
Hvilke egenskaper har god programvare? n Vedlikeholdbarhet n Robusthet n Effektivitet n Brukbarhet
Hva er hovedutfordringene for systemering n Den eksisterende programvaren – Nødvendige systemer må holdes ved like på en pålitelig og økonomisk måte. n Heterogene miljøer – Normalt må systemene virke i nettverk med ulike operativsystem og maskinvare. n Leveringstid. – Forandringstakten er stor og krever rask omstilling også av programsystemene.
Profesjonelt og etisk ansvar n n n Ikke bare tekniske ferdigheter. Skal vi få respekt må du handle etisk og moralsk. Å følge loven er ikke nok. Standard for ærlighet og integritet. Profesjonelt ansvar: – – Taushetsplikt Kompetanse Opphavsrett Misbruk av datasystemer
Profesjonelt og etisk ansvar (forts. ) n Bransjeorganisasjoner: – Code of professional conduct n ACM/IEEE – Public – Client and employer – Product – Judgement – Management – Profession – Colleagues – Self