Programvarudesignprocessen involverar flera viktiga aktiviteter, var och en producerar specifika utgångar. Dessa aktiviteter är inte alltid strikt sekventiella; Det finns ofta iteration och överlappning. En vanlig representation följer emellertid dessa stadier:
1. Kravinsamling och analys:
* Aktivitet: Förstå intressenternas behov (klienter, användare etc.) och dokumentera dem formellt. Detta involverar intervjuer, undersökningar, dokumentrecensioner och skapande av fall.
* Utgång: Kravspecifikationsdokument (SRS). Detta dokument definierar exakt vad programvaran ska göra, inte hur det ska göra det. Det kan inkludera användningsfall, användarhistorier, funktionella krav, icke-funktionella krav (prestanda, säkerhet etc.) och begränsningar.
2. Systemdesign:
* Aktivitet: Definiera systemets övergripande arkitektur. Detta inkluderar att identifiera huvudkomponenter, deras interaktioner och hur de kommer att arbeta tillsammans för att uppfylla kraven. Beslut om teknik, plattformar och distribution fattas i detta skede.
* Utgång: Systemarkitekturdokument. Detta inkluderar vanligtvis diagram som visar systemets komponenter, deras förhållanden (t.ex. UML -diagram som komponentdiagram, distributionsdiagram) och dataflöde. Tekniska val och beslut på hög nivå är också dokumenterade.
3. Detaljerad design:
* Aktivitet: Att dela ner systemet i mindre, mer hanterbara moduler och specificera den interna designen för varje modul. Detta innebär att utforma algoritmer, datastrukturer och gränssnitt. Denna fas fokuserar på "hur" - implementeringsdetaljerna.
* Utgång: Detaljerat designdokument, som innehåller modulspecifikationer, klassdiagram (om du använder objektorienterad design), algoritmbeskrivningar, datastrukturdefinitioner, databasscheman (om tillämpligt), gränssnittsspecifikationer (API:er) och potentiellt pseudokod eller flödesdiagram.
4. Databasdesign (om tillämpligt):
* Aktivitet: Designa databasschemat för att lagra och hantera applikationens data. Detta handlar om att välja ett databashanteringssystem (DBMS), definiera tabeller, förhållanden mellan tabeller och datatyper.
* Utgång: Databasschema designdokument, inklusive enhetsrelationsdiagram (ERD), tabelldefinitioner och dataordböcker.
5. Användargränssnitt (UI) Design:
* Aktivitet: Utformning av användargränssnittet för att göra systemet enkelt och intuitivt att använda. Detta inkluderar trådramar, mockups och prototyper. Användbarhetstest är ofta en del av denna fas.
* Utgång: UI -designspecifikationer, inklusive trådramar, mockups, prototyper och guider för UI -stil. Användbarhetstestrapporter kan också inkluderas.
6. Testning och validering:
* Aktivitet: Verifiera att designen uppfyller kraven och identifierar eventuella brister. Detta kan innebära att granska designdokumenten, genomföra genomgångar och bygga prototyper för testning.
* Utgång: Testplaner, testfall och testrapporter som beskriver resultaten från testaktiviteterna. Detta hjälper till att säkerställa att designen är robust och uppfyller de angivna kraven.
Det är viktigt att notera att utgångarna från varje aktivitet fungerar som ingångar för efterföljande aktiviteter. Till exempel informerar kravspecifikationen systemdesignen, som sedan informerar den detaljerade designen. Den iterativa karaktären av mjukvaruutveckling innebär ofta att du besöker tidigare stadier baserat på feedback och förändringar under senare steg.