Programming in the large involves programming by larger groups over longer periods of time, resulting in large and complex programs that are difficult to maintain. Careful planning is required to partition work into modules with well-defined interactions. Changes can also be difficult, so modules are designed to have high cohesion and loose coupling to minimize the impact of probable changes. Programming in the large requires abstraction skills to design modules and architecture that are unlikely to need change. It also requires management skills to direct efforts and build abstractions that not only work but guide development.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0 ratings0% found this document useful (0 votes)
308 views
1.small Vs Large Scale
Programming in the large involves programming by larger groups over longer periods of time, resulting in large and complex programs that are difficult to maintain. Careful planning is required to partition work into modules with well-defined interactions. Changes can also be difficult, so modules are designed to have high cohesion and loose coupling to minimize the impact of probable changes. Programming in the large requires abstraction skills to design modules and architecture that are unlikely to need change. It also requires management skills to direct efforts and build abstractions that not only work but guide development.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 3
Programming in the large
In software development, programming in the large can involve programming by larger
groups of people or by smaller groups over longer time periods. Either of these conditions will result in large, and hence complicated, programs that can be challenging for maintainers to understand. With programming in the large, coding managers place emphasis on partitioning work into modules with precisely-specified interactions. This requires careful planning and careful documentation. With programming in the large, program changes can become difficult. If a change operates across module boundaries, the work of many people may need re-doing. Because of this, one goal of programming in the large involves setting up modules that will not need altering in the event of probable changes. This is achieved by designing modules so they have high cohesion and loose coupling. Programming in the large requires abstraction-creating skills. Until a module becomes implemented it remains an abstraction. Taken together, the abstractions should create an architecture unlikely to need change. They should define interactions that have precision and demonstrable correctness. Programming in the large requires management skills. The process of building abstractions aims not just to describe something that can work but also to direct the efforts of people who will make it work. In computer science terms, programming in the large can refer to programming code that represents the high-level state transition logic of a system. This logic encodes information such as when to wait for messages, when to send messages, when to compensate for failed non-ACID transactions, etc.
Programming in the small
In software development, programming in the small describes the activity of writing a small program. Small programs are typified by being small in terms of their source code size, are easy to specify, quick to code and typically perform one task or a few very closely related tasks very well. Programming in the small can involve programming by individuals or small groups over short time periods and may involve less formal practices (for instance less emphasis on documentation or testing), tools and programming languages (e.g. the selection of a loosely typed scripting language in preference to a strictly typed programming language). Programming in the small can also describe an approach to making a prototype software or where rapid application development is more important than stability or correctness. In computer science terms, programming in the small deals with short-lived programmatic behavior, often executed as a single ACID transaction and which allows access to local logic and resources such as files, databases, etc.