Warnier/Orr-diagram

Ett Warnier/Orr-diagram (även känt som en logisk konstruktion av ett program/system) är ett slags hierarkiskt flödesschema som tillåter beskrivning av organisationen av data och procedurer. De utvecklades ursprungligen 1976, i Frankrike av Jean-Dominique Warnier och i USA av Kenneth Orr på grundval av boolesk algebra. Denna metod underlättar utformningen av programstrukturer genom att identifiera utdata och bearbetningsresultat och sedan arbeta bakåt för att bestämma de steg och kombinationer av input som behövs för att producera dem. Den enkla grafiska metoden som används i Warnier/Orr-diagram gör nivåerna i systemet uppenbara och rörelsen av data mellan dem levande.

Grundläggande element

Exempel på Warnier Orr-datadiagram som illustrerar strukturen på en Wikipedia-sida.

Warnier/Orr-diagram visar de processer och sekvenser i vilka de utförs. Varje process definieras på ett hierarkiskt sätt, dvs den består av uppsättningar av delprocesser som definierar den. På varje nivå visas processen inom parentes som grupperar dess komponenter.

Eftersom en process kan ha många olika delprocesser använder Warnier/Orr-diagrammet en uppsättning parenteser för att visa varje nivå i systemet. Kritiska faktorer vid definition och utveckling av programvara är iteration eller upprepning och alternering. Warnier/Orr-diagram visar detta mycket väl. [ citat behövs ]

Använda Warnier/Orr-diagram

För att utveckla ett Warnier/Orr-diagram arbetar analytikern baklänges, börjar med systemutdata och använder utdataorienterad analys. På pappret går utvecklingen från uppsättningen till elementet (från vänster till höger). Först definieras den avsedda produktionen eller resultaten av bearbetningen. På nästa nivå, som visas med en parentes, definieras de steg som behövs för att producera utdata. Varje steg i sin tur definieras ytterligare. Ytterligare parenteser grupperar de processer som krävs för att producera resultatet på nästa nivå.

Warnier/Orr-diagram erbjuder några distinkta fördelar för systemexperter. De är enkla till utseendet och lätta att förstå. Ändå är de kraftfulla designverktyg. De har fördelen av att visa grupperingar av processer och de data som måste skickas från nivå till nivå. Dessutom säkerställer sekvensen av att arbeta bakåt att systemet blir resultatorienterat. Denna metod är användbar för både data- och processdefinition. Den kan användas för var och en oberoende, eller båda kan kombineras på samma diagram.

Konstruerar i Warnier/Orr-diagram

Det finns fyra grundläggande konstruktioner som används på Warnier/Orr-diagram: hierarki, sekvens, upprepning och alternering. Det finns också två lite mer avancerade begrepp som ibland behövs: samtidighet och rekursion.

Hierarki

Hierarki är den mest grundläggande av alla Warnier/Orr-konstruktioner. Det är helt enkelt en kapslad grupp av uppsättningar och delmängder som visas som en uppsättning kapslade hakparenteser. Varje hakparentes i diagrammet (beroende på hur du representerar det, är tecknet vanligtvis mer som ett klammerparentes "{" än en hakparentes "[", men vi kallar dem "parenteser") representerar en nivå av hierarki. Hierarkin eller strukturen som är representerad på diagrammet kan visa organisationen av data eller bearbetning. Men både data och bearbetning visas aldrig på samma diagram.

Sekvens

Sekvens är den enklaste strukturen att visa på ett Warnier/Orr-diagram. Inom en nivå av hierarki visas de listade funktionerna i den ordning som de förekommer. Med andra ord, steget som listas först är det första som kommer att exekveras (om diagrammet återspeglar en process), medan steget som listas sist är det sista som kommer att exekveras. På samma sätt med data är datafältet som listas först det första som påträffas när man tittar på data, datafältet som listas sist är det sista som påträffas.

Upprepning

Upprepning är representationen av en klassisk "loop" i programmeringstermer. Det inträffar närhelst samma uppsättning data inträffar om och om igen (för en datastruktur) eller närhelst samma grupp av åtgärder ska inträffa om och om igen (för en bearbetningsstruktur). Upprepning indikeras genom att placera en uppsättning siffror inom parentes under den upprepade uppsättningen.

Vanligtvis finns det två nummer listade inom parentes, som representerar det minsta och det största antalet gånger som uppsättningen kommer att upprepas. Enligt konvention är den första bokstaven i den upprepade uppsättningen den bokstav som valts för att representera maximum.

Medan den minsta och maximala gränsen tekniskt sett kan vara vad som helst, är de oftast antingen "(1,n)" som i exemplet eller "(0,n)." När den används för att avbilda bearbetning är "(1,n)"-repetitionen klassiskt känd som en "DoUntil"-loop, medan "(0,n)"-repetitionen kallas en "DoWhile"-loop. På Warnier/Orr-diagrammet finns det dock ingen skillnad mellan de två olika typerna av upprepning, annat än det minsta bundna värdet.

Ibland är minimi- och maximigränsen fördefinierade och kommer sannolikt inte att ändras: till exempel inträffar uppsättningen "Dag" inom uppsättningen "Månad" från 28 till 31 gånger (eftersom den minsta månaden har 28 dagar, de största månaderna, 31) . Detta kommer sannolikt inte att förändras. Och ibland är minimum och maximum fasta på samma antal.

Generellt sett är det dock en dålig idé att " hårdkoda " en konstant annan än "0" eller "1" i ett antal gånger-sats – designen bör vara tillräckligt flexibel för att tillåta ändringar i antalet gånger utan ändringar till designen. Till exempel, om ett företag har 38 anställda vid den tidpunkt då en design görs, skulle hårdkodning av "38" som "antal anställda" inom företaget verkligen inte vara lika flexibelt som att utforma "(1,n)".

Antal gånger-satsen är alltid en operator kopplad till någon uppsättning (dvs. namnet på någon parentes), och är aldrig kopplad till ett element (en diagramfunktion som inte delas upp i mindre funktioner). Anledningen till detta kommer att bli mer uppenbar när vi fortsätter att arbeta med diagrammen. För nu måste du acceptera detta som en formationsregel för ett korrekt diagram.

Alternering

Alternering, eller urval, är den traditionella "beslutsprocess" där man bestämmer sig för att utföra en eller annan process. Den exklusiva ELLER-symbolen (plustecknet inuti cirkeln) indikerar att uppsättningarna omedelbart ovanför och under den är ömsesidigt uteslutande (om den ena är närvarande är den andra inte). Detta diagram indikerar att en anställd är antingen ledning eller icke-ledning, en anställd kan inte vara båda. Det är också tillåtet att använda en "negationsstapel" ovanför ett alternativ på ett sätt som liknar teknisk notation. Stapeln läses genom att helt enkelt använda ordet "inte".

Alternativ behöver inte vara binära som i de tidigare exemplen, utan kan vara flervägsalternativ.

Samtidighet

Samtidighet är en av de två avancerade konstruktionerna som används i metodiken. Den används när sekvensen är oviktig. Till exempel fungerar år och veckor samtidigt (eller samtidigt) inom vår kalender. Samtidighetsoperatorn används sällan i programdesign (eftersom de flesta språk inte stöder sann samtidig bearbetning ändå), men spelar in när man löser logiska och fysiska datastrukturkrockar.

Rekursion

Rekursion är den minst använda av konstruktionerna. Den används för att indikera att en uppsättning innehåller en tidigare eller en mindre ordnad version av sig själv. I den klassiska "materiallist" innehåller problemkomponenter delar och andra delkomponenter. Underkomponenter innehåller också underkomponenter och så vidare. Den dubbla parentesen indikerar att uppsättningen är rekursiv. Datastrukturer som verkligen är rekursiva är ganska sällsynta.

Se även

externa länkar