Software Design. Definition of Design. “the process of defining the architecture, components, interfaces, and other characteristics of a system component” and “the result of [that] process.” IEEE610.12-90. Overview of Area. Design Goal.
“the process of defining the architecture, components, interfaces, and other characteristics of a system component” and “the result of [that] process.”
“There are two ways of constructing a software design. One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are obviously no deficiencies. The first method is far more difficult.”
The software architecture of a program or computing system is the structure or structures of the system, which comprise software components, the externally visible properties of those components, and the relationships among them.
Marry your architecture in haste, repent at your leisure.
- Barry Boehm
A doctor can bury his mistakes, but an architect can only advise his client to plant vines.
- Frank Lloyd Wright
“a modular, deployable, and replaceable part of a system that encapsulates implementation and exposes a set of interfaces.”
- OMG Unified Modeling Language Specification
Print Job Management system
Read print job data
Select job management function
Develop job cost
Build work order
Send job to production
Compute page cost
Compute paper cost
Computer production cost
Pass job to production