Page 132 - DCAP405_SOFTWARE_ENGINEERING
P. 132
Unit 8: Design Engineering
best thing might be some tools that let programmers (or technical writers) extract specific Notes
information from the source code that can then be documented in some other way. Undoubtedly,
keeping such documentation up to date manually is difficult. This is another argument for the
need for more expressive programming languages. It is also an argument for keeping such
auxiliary documentation to a minimum and keeping it as informal as possible until as late in the
project as possible. Again, we could use some better tools, otherwise we end up falling back on
pencil, paper, and chalk boards.
The design of software is often depicted by graphs that show components and their relationships.
For example, a structure chart shows the calling relationships among components. Object-oriented
design is based on various graphs, as well. Such graphs are abstractions of the software, devised
to depict certain design decisions. Coupling and cohesion are attributes that summarizes the
degree of interdependence or connectivity among subsystems and within subsystems,
respectively. When used in conjunction with measures of other attributes, coupling and cohesion
can contribute to an assessment or prediction of software quality.
(a) Abstraction: When we consider a modular solution to any problem, many levels of
abstraction can be posed. At the highest level of abstraction, a solution is stated in broad
terms using of the problem environment. At lower levels of abstraction, a more detailed
description of the solution is provided.
(b) Architecture: An architecture is not a simple flat view of the component topology, though
an architecture diagram showing the components and relationships among them is a
central thinking and communicating tool for the architects and the development team,
and others they partner with. Our architecture needs to include:
Meta-architecture: the architectural vision, style, principles, key communication and
control mechanisms, and concepts that guide the team of architects in the creation of
the architecture.
Architectural views: Just as building architectures are best envisioned in terms of a
number of complementary views or models, so too are software architectures. In
particular, structural views help document and communicate the architecture in
terms of the components and their relationships, and are useful in assessing
architectural qualities like extensibility. Behavioral views are useful in thinking
through how the components interact to accomplish their assigned responsibilities
and evaluating the impact of what-if scenarios on the architecture. Behavioral models
are especially useful in assessing run-time qualities such as performance and security.
Execution views help in evaluating physical distribution options and documenting
and communicating decisions.
(c) Design Patters: A software design pattern describes a family of solutions to a software
design problem. It consists of one or several software design elements such as modules,
interfaces, classes, objects, methods, functions, processes, threads, etc., relationships among
the elements, and a behavioral description. Example design patterns are Model/View/
Controller, Blackboard, Client/Server, and Process Control. The purpose of design patterns
is to capture software design know-how and make it reusable. Design patterns can improve
the structure of software, simplify maintenance, and help avoid architectural drift. Design
patterns also improve communication among software developers and empower less
experienced personnel to produce high-quality designs.
(d) Modularity: The basic idea underlying modular design is to organize a complex system
(such as a large program, an electronic circuit, or a mechanical device) as a set of distinct
components that can be developed independently and then plugged together. Although
this may appear a simple idea, experience shows that the effectiveness of the technique
depends critically on the manner in which systems are divided into components and the
LOVELY PROFESSIONAL UNIVERSITY 125