Design
Design, in the context of software development, is an important aspect to the process of creating reliable and valid computer
software in the most efficient manner possible. Whether documented formally in a specification or informally on a white board,
a clear and concise design aids software developers in creating a high-quality product. Design focuses on how the
problem will be solved, whereas requirements engineering focus on the problem itself. The design of the system is the plan
of implementation.
There are several tools that help with the design stage of the software process. One important tool is the Unified Modeling
Language or UML, created by the Three Amigos: Grady Booch, Jim Rumbaugh, and Ivar Jacobson. UML is a standardized
way to define
the relationships and interactions between objects in a system. The design of the system can be modeled using class diagrams,
sequence diagrams, and state charts. A class diagram is a static model that describes the different classes or objects, the
attributes and operations of the objects, and the relationships between all of the objects in the program. Sequence diagrams
are dynamic models used to describe the sequence of messages sent between objects over different scenarios in the system.
State charts are a dynamic model that describes the decision points and paths through the application.
Design patterns are also important to the design of software applications, but are discussed in another module.
Previous
