210 likes | 320 Views
Introduksjon til in 140. Systemering. In 140 Systemering. Forelesninger Rom 283 Mandag 0815-1000 Onsdag 0815-1000 Foreleser: Hans F. Nordhaug Lærebok: Sommerville, Ian. Software Engineering 6.utgave (2000) eller 7. utgave (2004). Innebærer en god del innholdsendring fra 5.utgave
E N D
Introduksjon til in 140 Systemering
In 140 Systemering • Forelesninger Rom 283 • Mandag 0815-1000 • Onsdag 0815-1000 • Foreleser: Hans F. Nordhaug • Lærebok: • Sommerville, Ian. Software Engineering • 6.utgave (2000) eller 7. utgave (2004). • Innebærer en god del innholdsendring fra 5.utgave • Hjemmeside • http://kursinfo.himolde.no/in-kurs/in140/
In 140 Systemering (Forts) • Prosjektoppgaver/øvinger i grupper • grupper på 4-5 personer • Obligatoriske prosjektoppgaver med fire milepæler/innleveringer • ArgoUML og/eller Rational Rose (ikke Visio) • Felles veiledning/gjennomgang av øvelser med hjelpelærer. To mulige tidspunkt: • Beskjed kommer • Arbeidskrav: 16 timer i uken: 4 t forelesning, 2 timer lesing til forelesning, 4 t prosjekt/veiledning, 6 t arbeid med prosjekt oppgave
In 140 Systemering (Forts) • Gruppeetablering • Dele studentene inn på de to alternative dagene • Innenfor disse dagene er det stor frihet til å etablere grupper selv • Hjelpelærer/foreleser har det endelige ordet hvis det oppstår problemer • Eksamen • Eksamen fire timer • 8. juni.
Introduksjon • 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 • 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 og vedlikehold av programvare. • Ingen fysisk begrensning på programvare – Dermed ingen grenser for kompleksiteten. • MEN: HVORFOR SKAL DU INTRESSERE DEG FOR SYSTEMERING?
Personlig motivasjon • Systemutvikling er mer enn programmering. • Systemutvikling medfører organisatoriske endringer • Systemutvikling kan medføre endringer i samfunnet • Være med på innovasjoner og nyskapning
Softwarekrise? • 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 • Mange metoder og teknikker i bruk. • Utviklingsprosessen er sterkt forbedret. • Kompleksiteten stadig større. • Sammensmelting av kommunikasjons- og datasystemer. • Fortsatt problemer (Se for eksempel (http://www.dagbladet.no/nyheter/2001/06/28/266200.html) • Permanent softwarekrise? • Framgang?
Hva er programvare • Hensikten med systemering er å lage programvareprodukter (som fungerer i en gitt kontekst) • Består av programsystemer + dokumentasjon • 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 med freeware & shareware og open source?
Hva er systemering • En ferdighet 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 • Organisatorisk • Prosjektorganisering • Utvikling av metoder og teorier. • Systematisk og organisert tilnærming fordi det er mest effektivt.
Hva er forskjellen mellom informatikk og systemering. • Informatikk er et generelt fag om datamaskiner og programvare. • Systemering gjelder de praktiske problemene med å designe, utvikle, implementere og vedlikeholde programvare.
Hva er systemerings-prosessen • Definisjon: En mengde aktiviteter og resultater som lager eller videreutvikler et programprodukt. • Fire grunnleggende aktiviteter • Spesifikasjon –Hva skal systemet kunne utføre • Utvikling – Hvordan vi kan lage et slik system • Validering – Virker systemet som spesifisert. • Vedlikehold/Videreutvikling • Rekkefølge og tidsforbruk varierer sterkt • Etter utviklingsorganisasjon • Etter produktet man vil utvikle
Hvilke systemerings-prosessmodeller har vi • Fossefallsmetoden • Grunnleggende aktiviteter - Trinn for trinn • Evolusjonær systemutvikling • Trinnene gjentas gang etter gang. • Første versjon raskt klar. • Videre utvikling derfra sammen med kunden. • 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 • Sterkt variabel fordeling mellom aktivitetene. • Fossefallmodellen • Evolusjonær systemutvikling • Utvikling vs Vedlikehold • Standardsystem på PC
Hva er systemerings-metoder • Strukturert tilnærming til utvikling der målet er høy kvalitet per kostnad. • Kjente metoder • 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. • Metodene består av: Modellbeskrivelse og notasjon, regler, anbefalinger og framgangsmåte.
Hva er CASE • Computer Aided Software Engineering • Programmer til støtte i systemutviklingsprosessen. • Alle metoder har CASE teknologi • Notasjonseditorer • Analysemoduler • Rapportgeneratorer • Evt. kodegeneratorer • Debuggere • Programanalyseverktøy • Testgeneratorer • Programeditorer
Hvilke egenskaper har god programvare? • Brukbarhet • Vedlikeholdbarhet • Robusthet • Effektivitet
Hva er hovedutfordringene for systemering • Sosio-tekniske problemstillinger • Hvordan implementere IT i en organisasjon? • Den eksisterende programvaren • Nødvendige systemer må holdes ved like på en pålitelig og økonomisk måte. • Heterogene miljøer • Normalt må systemene virke i nettverk med ulike operativ-system og maskinvare. • Leveringstid. • Forandringstakten er stor og krever rask omstilling også av programsystemene.
Profesjonelt og etisk ansvar • 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.) • Bransjeorganisasjoner: • Code of professional conduct • ACM/IEEE • Public • Client and employer • Product • Judgement • Management • Profession • Colleagues • Self