introduksjon til in 140
DESCRIPTION
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 - PowerPoint PPT PresentationTRANSCRIPT
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