Funksjons- og atferdsmodeller i programvareteknikk
Funksjonelle modeller og atferdsmodeller er to viktige typer modeller som brukes i programvareteknikk for å representere forskjellige aspekter av et programvaresystem. De brukes til å beskrive henholdsvis * hva * og * hvordan * av systemet.
Funksjonsmodeller:
* Fokus: Definer * funksjonaliteten * i programvaresystemet. De beskriver hva systemet gjør, uten å spesifisere hvordan det gjør det.
* representasjon: Ofte uttrykt ved bruk av:
* Bruk tilfeller: Beskriv interaksjoner mellom brukere og systemet.
* Data Flow Diagrams (DFDS): Illustrer datastegnet gjennom systemet.
* Entity-Relationship Diagrams (ERDS): Representere forhold mellom dataenheter.
* tilstandsovergangsdiagrammer: Vis forskjellige tilstander i systemet og overgangene mellom dem.
* Formål:
* Kommuniser systemkrav: Til interessenter (brukere, utviklere, ledere) på en klar og kortfattet måte.
* Design System Architecture: Ved å skissere komponentene på høyt nivå og deres interaksjoner.
* Valider systemkrav: Ved å sikre at systemet tilfredsstiller alle brukerbehov.
atferdsmodeller:
* Fokus: Beskriv * atferden * i programvaresystemet. De beskriver hvordan systemet reagerer på innganger og hvordan dens interne tilstand endres over tid.
* representasjon: Ofte uttrykt ved bruk av:
* sekvensdiagrammer: Vis interaksjoner mellom objekter i et spesifikt scenario.
* Samarbeidsdiagrammer: Uthev samhandlingene mellom objekter på en mer visuell måte.
* Aktivitetsdiagrammer: Beskriv flyten av aktiviteter i systemet.
* State Machine Diagrams: Skildre tilstandene i systemet og dets overganger mellom dem.
* Formål:
* Raffine systemdesign: Ved å detaljere systemets interne arbeid.
* Identifiser potensielle feil og uoverensstemmelser: Ved å simulere forskjellige scenarier og observere systemets respons.
* Test systemet: Ved å sammenligne faktisk oppførsel med modellens spådommer.
Forholdet mellom funksjonelle og atferdsmodeller:
* Komplementær: De jobber sammen for å gi en omfattende forståelse av programvaresystemet.
* hierarkisk: Funksjonelle modeller gir ofte synet på høyt nivå, mens atferdsmodeller fordyper detaljene.
* iterativ: Modeller blir ofte foredlet og oppdatert gjennom hele programvareutviklingsprosessen.
Eksempel:
La oss vurdere et enkelt online shoppingsystem.
* Funksjonell modell:
* En brukssak for "PLEIE EN BESTILLING" vil beskrive trinnene som er involvert i samspillet mellom en bruker og systemet.
* Et dataflytskjema vil vise strømmen av data mellom brukergrensesnittet, handlekurven og ordrebehandlingssystemet.
* atferdsmodell:
* Et sekvensdiagram kan skildre sekvensen av interaksjoner mellom brukergrensesnittet, databasen og ordrebehandlingssystemet når du bestiller en ordre.
* Et tilstandsmaskinskjema kan vise de forskjellige tilstandene i en ordre, fra "plassert" til "sendt" til "levert."
Ved å bruke både funksjonelle og atferdsmodeller, kan programvareingeniører skape en klar og fullstendig representasjon av programvaresystemet, og sikre at det oppfyller kravene og funksjonene som tiltenkt.