Agile model i software engineering
Hvad er en agil model?
Den agile model er en trinvis og iterativ softwareudviklingsproces. Den definerer hver iterations antal, varighed og omfang på forhånd. Hver iteration betragtes som en kort "ramme" i den agile procesmodel, som for det meste varer fra to til fire uger.
Agile Model opdeler opgaver i tidsbokse for at give specifik funktionalitet til udgivelsen. Hver build er inkrementel med hensyn til funktionalitet, hvor den endelige build indeholder alle attributterne. Opdelingen af hele projektet i små dele hjælper med at minimere projektrisikoen og den samlede projektleverancetid.
Hvad er de vigtige agile modelmanifester?
Her er det væsentlige manifest for den agile model:
- Individer og interaktioner prioriteres frem for processer og værktøjer.
- Adaptivt, bemyndiget, selvorganiserende team.
- Fokuserer på fungerende software frem for omfattende dokumentation.
- Agile model i software engineering sigter mod at levere komplet kundetilfredshed ved hurtigt at levere værdifuld software.
- Velkommen ændringer i krav, selv sent i udviklingsfasen.
- Dagligt samarbejde mellem forretningsfolk og udviklere.
- Prioritet er kundesamarbejde frem for kontraktforhandling.
- Det giver dig mulighed for at tilfredsstille kunder gennem tidlig og hyppig levering.
- Der lægges stor vægt på ansigt-til-ansigt kommunikation.
- Udvikling af fungerende software er den primære indikator for fremskridt.
- Promotempoet i bæredygtig udvikling.
- Der sættes løbende fokus på teknisk ekspertise og lyddesign.
- En forbedringsgennemgang udføres regelmæssigt af teamet.
Faser af Agile Model
Her er de forskellige faser af Agile:
Her er de vigtige stadier, der er involveret i Agile Model-processen i SDLC-livscyklussen:
- Krav indsamling: I denne Agile modelfase skal du definere kravene. De forretningsmuligheder og den tid og indsats, der kræves for projektet, bør også diskuteres. Ved at analysere disse oplysninger kan du bestemme et systems økonomiske og tekniske gennemførlighed.
- Design kravene: Efter forundersøgelsen kan du arbejde sammen med interessenter om at definere krav. Ved at bruge UFD-diagrammet eller UML-diagrammet på højt niveau kan du bestemme, hvordan det nye system vil blive inkorporeret i dit eksisterende softwaresystem.
- Udvikle/Iteration: Det virkelige arbejde begynder på dette stadium, efter at softwareudviklingsteamet har defineret og designet kravene. Produkt-, design- og udviklingsteams begynder at arbejde, og produktet vil gennemgå forskellige forbedringsstadier ved hjælp af enkel og minimal funktionalitet.
- Test: Denne fase af den agile model involverer testteamet. For eksempel kontrollerer kvalitetssikringsteamet systemets ydeevne og rapporterer fejl i denne fase.
- Implementering: I denne fase frigives det indledende produkt til brugeren.
- Feedback: Efter frigivelse af produktet er det sidste trin i den agile model feedback. I denne fase modtager teamet feedback om produktet og arbejder på at rette fejl baseret på den modtagne feedback.
Sammenlignet med Waterfall er Agile cyklusser korte. Der kan være mange sådanne cyklusser i et projekt. Faserne gentages indtil produktet er leveret.
Typer af Agile
Her er nogle vigtige agile typer:
scrum: Denne agile metode fokuserer primært på at håndtere opgaver under teambaserede udviklingsforhold. I den Scrum Agile model, skal teamet nøje følge en arbejdsplan for hver Sprint. Desuden har personer involveret i denne type projekter foruddefinerede roller.
Krystal: Brug af Crystal-metodologi er en af de mest ligetil og mest fleksible tilgange til udvikling af software, idet man erkender, at hvert projekt har unikke karakteristika. Derfor skal politikker og praksis skræddersyes, så de passer til dem.
Krystalmetoder er kategoriseret som nedenfor:
- KLAR: Bruger til små og lave kritiske indsatser.
- ORANGE: Bruger til moderat større og kritiske projekter.
- ORANGE WEB: Typisk elektronisk forretning
Dynamisk softwareudviklingsmetode (DSDM): Denne RAD-tilgang (Rapid Application Development) involverer aktiv brugerinddragelse, og teamene er bemyndiget til at træffe beslutninger med det mål at levere hyppigt produkt.
Feature Driven Development (FDD): Denne agile metode fokuserer på at "designe og bygge" funktioner. Det er opdelt i flere korte arbejdsfaser, der skal udføres for hver funktion separat. Det inkluderer domænegennemgang, designinspektion, kodeinspektion osv.
Lean softwareudvikling: Denne metode er baseret på princippet om "Just-In-Time Production." Det hjælper med at øge hastigheden af softwareudvikling og reducere omkostningerne.
Som et resultat af en lean udviklingsmodel elimineres spild, læring forstærkes, tidlig levering opnås, og integritet opbygges.
Ekstrem programmering (XP): Ekstrem programmering er en brugbar Agile model, når der er konstant skiftende krav eller krav fra kunder. Den bruges også, når der ikke er sikker på systemets funktionalitet.
Hvornår skal man bruge den agile model?
Her er de almindelige scenarier, hvor Agile-metoden bruges:
- Det bruges, når der er hyppige ændringer, der skal implementeres.
- Projekter med lavt lovkrav
- Projekter med ikke særlig streng eksisterende proces
- Projekter, hvor produktejeren er yderst tilgængelig
- Projekter med fleksible tidsplaner og budget
Fordele ved den agile model
Her er nogle almindelige fordele ved den agile model:
- Kommunikation med kunder er på en-til-en basis.
- Giver en meget realistisk tilgang til softwareudvikling
- Agile model i software engineering giver dig mulighed for at udarbejde effektive designs og opfylde virksomhedens behov.
- Opdaterede versioner af fungerende software frigives hver uge.
- Det leverer tidlige delvise arbejdsløsninger.
- Ændringer er acceptable til enhver tid.
- Du kan reducere den samlede udviklingstid ved at bruge denne agile model.
- Det giver mulighed for samtidig udvikling og levering inden for en overordnet planlagt kontekst.
- Det endelige produkt er udviklet og tilgængeligt til brug inden for et par uger.
Ulemper ved Agile Model
Her er nogle almindelige ulemper/ulemper ved den agile model:
- Der er en højere risiko for bæredygtighed, vedligeholdelse og udvidelsesmuligheder.
- I nogle virksomheder er selvorganisering og intensivt samarbejde muligvis ikke foreneligt med deres virksomhedskultur.
- Dokumentation og design er ikke viet meget opmærksomhed.
- Uden klar information fra kunden kan udviklingsteamet blive vildledt.
- Ikke en egnet metode til at håndtere komplekse afhængigheder.
Agile model vs. Vandfaldsmodel
Agile og vandfaldsmodeller er to forskellige metoder til softwareudviklingsprocessen. På trods af deres forskelle i tilgang, kan begge metoder bruges til tider, afhængigt af projektet og kravene.
Agile model | Vandfaldsmodel |
---|---|
Agile metoder foreslår inkrementelle og iterative tilgange til softwaredesign | Softwareudvikling flyder sekventielt fra startpunkt til slutpunkt. |
Den agile model i software engineering er opdelt i individuelle modeller, som designere arbejder på | Designprocessen er ikke opdelt i individuelle modeller |
Kunden har tidlige og hyppige muligheder for at se på produktet og træffe beslutninger og ændringer. | Kunden kan først se produktet i slutningen af projektet. |
Den agile model betragtes som ustruktureret sammenlignet med vandfaldsmodellen | Vandfaldsmodeller er mere sikre, fordi de er planorienterede |
Små projekter kan implementeres meget hurtigt. For store projekter er det ikke nemt at estimere udviklingstiden. | Alle slags projekter kan estimeres og afsluttes. |
Testplanen gennemgås efter hver Sprint | Testplanen diskuteres næsten ikke i testfasen. |
Se venligst dette link for en detaljeret beskrivelse sammenligning mellem Agile og Waterfall-modellen.
Resumé
- Den agile model er en trinvis og iterativ softwareudviklingsproces.
- Den fokuserer på fungerende software frem for omfattende dokumentation.
- Agile model er opdelt i forskellige stadier som 1) Kravsamling, 2) Design kravene, 3) Udvikle/Iteration, 4) Test, 5) Implementering 6) Feedback.
- Forskellige typer af Agile typer er: 1) Scrum, 2) Crystal, 3) Dynamic Software Development Method (DSDM): 4) Feature Driven Development (FDD), 5) Lean Software Development 6) Ekstrem programmering (XP).
- Den agile model bruges, når hyppige ændringer skal implementeres.
- Det giver en meget realistisk tilgang til softwareudvikling
- Denne model har en større risiko for bæredygtighed, vedligeholdelse og udvidelse.
- Agile metoder i softwaretestning anvender inkrementelle og iterative tilgange til softwaredesign, hvorimod softwareudvikling flyder sekventielt fra startpunktet til slutpunktet.