In software development, programming in the large and programming in the small describe two different approaches to writing software. The terms were coined by Frank DeRemer and Hans Kron in their 1975 paper "Programming-in-the large versus programming-in-the-small" Brooks identifies that the way an individual program is created is different to how a programming systems product is created. The former likely does one relatively simple task well.

PropertyValue
dbpprop:abstract
  • In software development, programming in the large and programming in the small describe two different approaches to writing software. The terms were coined by Frank DeRemer and Hans Kron in their 1975 paper "Programming-in-the large versus programming-in-the-small" Brooks identifies that the way an individual program is created is different to how a programming systems product is created. The former likely does one relatively simple task well. It is probably coded by a single engineer, is complete in itself, and is ready to run on the system on which it was developed. The programming activity was probably fairly short-lived as simple tasks are quick and easy to complete. This is the endeavour that DeRemer and Kron describe as programming in the small (see below for citation). Compare with the activities associated with a programming systems project, again as identified by Brooks. Such a project is typified by medium-sized or large industrial teams working on the project for many months to several years. The project is likely to be split up into several or hundreds of separate modules which individually are of a similar complexity to the individual programs described above. However, each module will define an interface to its surrounding modules. Brooks describes how programming systems projects are typically run as formal projects that follow industry best practices and will comprise testing, documentation and ongoing maintenance activities as well as activities to ensure that the product is generalised to work in different scenarios including on systems other than the development systems on which it was created. DeRemor and Kron have this to say about programming in the large vs in the small (taken from the abstract of their paper - see the references section, below): "By large programs we mean systems consisting of many small programs (modules), possibly written by different people. We need languages for programming-in-the-small, i.e. languages not unlike the common programming languages of today, for writing modules. We also need a “module interconnection language” for knitting those modules together into an integrated whole and for providing an overview that formally records the intent of the programmer(s) and that can be checked for consistency by a compiler. We explore the software reliability aspects of such an interconnection language. Emphasis is placed on facilities for information hiding and for defining layers of virtual machines."
  • Pojem programování ve velkém (Programming in the Large) se používá v souvislosti s vývojem software. Během vývoje metodologií programování a souvisejících věcí se chápání tohoto pojmu mohlo v detailech lišit. Obecně se dá říci, že se týká rozsáhlejších projektů, které kvůli rozsahu musí být řešeny více lidmi a projekt je vyvíjen a udržován relativně dlouhou dobu. Během vývoje tak vzniká kód, který nemůže být zvládnut jednou osobou jako celek. Musí se uplatnit přístup jeho rozdělení, pochopení, vývoje a údržby po částech. Rozdělení projektu na části vyžaduje definici rozhraní mezi částmi a systematický popis chování jednotlivých částí. To jinými slovy znamená, že musí být zpracovávána pečlivá dokumentace a vývoj projektu musí být pečlivě plánován. Při programování ve velkém se obtížně provádějí změny. Nejobtížněji se provádějí změny, které souvisejí s více částmi a případně se změnou rozhraní mezi nimi. Jedním z cílů je proto (při programování ve velkém) dosažení stavu, kdy jsou části projektu na sobě relativně nezávislé. Technikami, které dosažení takového cíle napomáhají, jsou například důsledné používání programátorských abstrakcí, používání jednotkových testů a refaktorizace. Snažíme se jimi snížit pravděpodobnost vzniku programátorských chyb, dosáhnout automatické testovatelnosti správnosti implementace, usnadnit hledání a opravu chyb a usnadnit další vývoj. Nástroje a techniky používané při programování ve velkém přímo ovlivňují styl programování. Ten má část lidskou (co se chce dělat programátorovi a co požaduje uživatel), věcnou (dosažení požadované funkčnosti) a ekonomickou. Ze všech uvedených pohledů se zdánlivá zbytečnost některých kroků (tvorba dokumentace, psaní testů, atd. ) ukazuje opravdu jen jako zdánlivá. Koncepci programování ve velkém uvedli Frank DeRemer a Hans Kron v článku „Programming-in-the-Large Versus Programming-in-the-Small“, IEEE Trans. on Soft. Eng. 2(2) v roce 1976.
dbpprop:date
  • December 2008
dbpprop:wikiPageUsesTemplate
rdfs:comment
  • In software development, programming in the large and programming in the small describe two different approaches to writing software. The terms were coined by Frank DeRemer and Hans Kron in their 1975 paper "Programming-in-the large versus programming-in-the-small" Brooks identifies that the way an individual program is created is different to how a programming systems product is created. The former likely does one relatively simple task well.
  • Pojem programování ve velkém (Programming in the Large) se používá v souvislosti s vývojem software. Během vývoje metodologií programování a souvisejících věcí se chápání tohoto pojmu mohlo v detailech lišit. Obecně se dá říci, že se týká rozsáhlejších projektů, které kvůli rozsahu musí být řešeny více lidmi a projekt je vyvíjen a udržován relativně dlouhou dobu. Během vývoje tak vzniká kód, který nemůže být zvládnut jednou osobou jako celek.
rdfs:label
  • Programming in the large and programming in the small
  • Programování ve velkém
skos:subject
foaf:page
is dbpprop:redirect of