Winston W. Royce

Från ett föredrag som Royce höll den 10 augusti 1990

Winston Walker Royce (15 augusti 1929 – 7 juni 1995) var en amerikansk datavetare , chef vid Lockheed Software Technology Center i Austin, Texas . Han var en pionjär inom området mjukvaruutveckling , känd för sitt papper från 1970 från vilket Waterfall-modellen för mjukvaruutveckling av misstag drogs.

Biografi

Född 1929 kom Royce in på California Institute of Technology , där han fick sin BS i fysik , sin MS i flygteknik och 1959 sin doktorsexamen i flygteknik under Julian David Cole med avhandlingen Transonic flow over a non-lifting, small body av revolution .

Royce hade börjat sin karriär som biträdande professor vid California Institute of Technology. 1961 började han som projektledare inom flygdivisionen hos TRW . Hans första projekt gällde utformningen av ett uppdragsplanering och omloppsvalssystem för rymdfarkoster . Under de följande åren var han involverad i forskning och utveckling av flera stora och komplexa mjukvarusystem, och började utveckla nya metoder för att förbättra hanteringen av mjukvaruprojekt. 1970 publicerade han sin inflytelserika artikel " Managing the development of large software systems ", där han presenterade flera projektledningsmodeller , inklusive vad vi nu känner som vattenfall , iterativt och agilt . 1985 fick han AIAA Information Systems Award. Under 1980-talet var han chef för Lockheed Software Technology Center i Austin, Texas. Han gick i pension 1994 och dog året därpå i sitt hem i Clifton, Virginia .

Hans äldste son är Walker Royce, chefsprogramvaruekonom för IBM :s Rational-division och författare till "Software Project Management, A Unified Framework", och en viktig bidragsgivare till ledningsfilosofin som är inneboende i IBM Rational Unified Process .

Arbete

Leda utvecklingen av stora mjukvarusystem

Vattenfallsmodellen för mjukvaruutveckling tillskrivs felaktigt Royce . Barry Boehm skrev 1987:

Royces papper från 1970 anses allmänt vara det papper som definierade den stegvisa "vattenfallsmodellen" av mjukvaruprocessen. Men det är förvånande att se både att de tidigare tidningarna från Benington och Hosier hade goda approximationer till vattenfallsmodellen, och att Royces papper redan innehåller prototyper som ett viktigt steg som är kompatibelt med vattenfallsmodellen.

Faktum är att Royce visade att även om utvecklingen av stora mjukvarusystem krävde ett mer grundligt tillvägagångssätt, fanns det en inneboende risk i ett sekventiellt tillvägagångssätt med en gång. Han föreslog ett iterativt tillvägagångssätt och förespråkade att projekt skulle gå igenom detta minst två gånger.

Royce figur 1 modell
Royce figur 4 modell

Royce startade sin artikel från 1970 "Managing the development of large software systems" med ett uttalande om ursprunget till hans idéer:

Jag kommer att beskriva mina personliga åsikter om att hantera stora mjukvaruutvecklingar. Jag har haft olika uppdrag under de senaste nio åren, mestadels ägnat mig åt utveckling av mjukvarupaket för planering av rymdfarkostuppdrag, ledning och analys efter flygning. I dessa uppdrag har jag upplevt olika grader av framgång med avseende på att komma till ett operativt tillstånd, i tid och inom kostnader. Jag har blivit fördomsfull av mina erfarenheter och jag kommer att berätta om några av dessa fördomar i denna presentation.

Royce hade bestämt att utvecklingen av datorprogram oavsett storlek eller komplexitet kunde delas upp i två utvecklingssteg: Analys och Kodning . För små mjukvaruutvecklingsprojekt var dessa två steg tillräckliga, men inte för utveckling av större mjukvarusystem. Dessa kräver många ytterligare steg fram och tillbaka, vilket ger utvecklingen en iterativ karaktär.

För att föreställa sig denna iterativa utveckling föreslog Royce ett antal tillvägagångssätt, även om han aldrig använde termen vattenfall eller förespråkade det som en effektiv metod . Den tidigaste användningen av termen "vattenfall" kan ha varit ett papper från 1976 av Bell och Thayer.

Royce föreställde vattenfallsmodellen med följande sju steg:

  • Systemkrav
  • Programvarukrav
  • Analys
  • Programdesign
  • Kodning
  • Testa och
  • Drift

Han kallade dem "implementeringssteg för att utveckla ett stort datorprogram för leverans till en kund". Royce förutsåg en stor brist i denna metodik, som han beskrev som:

Testfasen som inträffar i slutet av utvecklingscykeln är den första händelsen för vilken timing, lagring, input/output-överföringar etc. upplevs som särskiljda från analyserade. Dessa fenomen är inte exakt analyserbara. De är till exempel inte lösningarna på de vanliga partiella differentialekvationerna i matematisk fysik. Men om dessa fenomen misslyckas med att tillfredsställa de olika yttre begränsningarna, krävs alltid en stor omdesign. En enkel oktal patch eller gör om någon isolerad kod kommer inte att fixa den här typen av svårigheter. De nödvändiga designändringarna kommer sannolikt att vara så störande att programvarukraven som designen bygger på och som ger skälen till allt bryts...

Enligt Royce i processmodellen "är designiterationerna aldrig begränsade till det successiva steget", och för den modellen är utan iteration "risk och inbjuder till misslyckande". Som ett alternativ föreslog Royce en mer inkrementell utveckling, där varje nästa steg länkar tillbaka till steget innan. Den "klassiska" vattenfallsmodellen är figur 2. Modellerna blir stegvis mer förfinade upp till figur 10. Royce säger om figur 4-modellen:

Jag tror att det illustrerade tillvägagångssättet är i grunden sunt.

Programvarusystemteknik

I början av 1980-talet myntade Winston Royce termen "software system engineering" (SwSE) vid ett av seminarierna i Management of Software Acquisition-kursen vid Defence Systems Management College i Fort Belvoir, Va.

Enligt Richard H. Thayer, emeritusprofessor i programvaruteknik vid California State University, Sacramento, är programvarusystemsteknik angelägen om att "tillämpa systemtekniska principer specifikt på utvecklingen av stora, komplexa programvarusystem ger ett kraftfullt verktyg för process- och produkthantering. " Programvarusystemingenjörer kan ta ansvar för "den övergripande tekniska hanteringen av systemet och verifieringen av de slutliga systemprodukterna."

Mjukvaruarkitektur

I artikeln Software Architecture: Integrating Process and Technology från 1991 beskriver Royce och Royce sambandet mellan arkitektur och mjukvaruutvecklingsprocessen. Enligt Philippe Kruchten et al. (2006) var denna artikel den första "att positionera mjukvaruarkitektur - i både titel och perspektiv - mellan teknik och process."

Se även

Publikationer

Royce publicerade flera böcker och artiklar. Böcker

  • 1959. Transoniskt flöde över en icke-lyftande, smal rotationskropp . Pasadena: California Institute of Technology, 1959.
  • 1997. Software Engineering Project Management . 2:a upplagan. Med R. Thayer & Ed Yourdon .

Artiklar, ett urval:

  • 1970. " Managing the Development of Large Software Systems ", Proceedings of IEEE WESCON 26 (augusti): 1–9.
  • 1989. "Lockheed's Software Technology Center". I: Modern mjukvaruteknik, grunder och aktuella perspektiv . Peter A. Ng (red.). Van Nostrand Reinhold Co. sid. 561–578.
  • 1990. " [2] ", 'Dr. Vinn Royce Process Round Table 10 augusti 1990
  • 1991. "Aktuella problem." I: Aerospace Software Engineering , redigerad av Christine Anderson och Merlin Dorfman, 5–15. Washington, DC: American Institute of Aeronautics and Astronautics.
  • 1991. "Software Architecture: Integrating Process and Technology", med Walker Royce i TRW Quest , vol. 14, nr. 1, sid. 2–15.
  • 1992. " Status Report: Computer-Aided Prototyping ". Med Walker Royce. I: IEEE Software Vol 9 (6): sid. 77–81