Chapter 4a - High Level Design
Chapter 4a - High Level Design
Chapter 4a
Topics includes…
Software Specifications
UML
Software Specifications
Security. Your high‐level design should sketch out all
the application’s security needs. Those needs may
include the following:
Operating system security
Application security
Data security
Network security
Physical security
Software Specifications cont…
Hardware. Additional hardware that you need to specify
might include the following:
Printer
Network components (cables, modems, gateways, and
routers)
Servers (database servers, web servers, and application
servers)
Specialized instruments (scales, microscopes, programmable
signs, and GPS units)
Audio and video hardware (webcams, headsets, and VOIP)
Software Specifications cont…
User Interface. The high‐level user interface design can
describe special features such as clickable maps,
important tables, or methods for specifying system
settings (such as sliders, scrollbars, or text boxes). This
part of the design can also address general appearance
issues such as color schemes, company
logo placement, and form skins.
Software Specifications cont…
Internal Interfaces. When you chop the program into
pieces, you should specify how the pieces will interact.
Then the teams assigned to the pieces can work
separately without needing constant coordination.
External Interfaces. External interfaces are often easier
to specify than internal ones because you usually don’t
have control over both ends of the interface.
Software Specifications cont…
Architecture. An application’s architecture describes
how its pieces fit together at a high level. Developers
use a lot of “standard” types of architectures. Many of
these address particular characteristics of the problem
being solved.
Software Specifications cont…
Types of Architecture:
Monolithic. In a monolithic architecture, a single program does
everything. It displays the user interface, accesses data, processes
customer orders, prints invoices, launches missiles, and does
whatever else the application needs to do.
Client/Server. A client/server architecture separates pieces of the
system that need to use a particular function (clients) from parts of
the system that provide those functions (servers). That decouples
the client and server pieces of the system so that developers can
work on them separately.
Service‐Oriented. A service‐oriented architecture (SOA) is similar
to a component‐based architecture except the pieces are
implemented as services. A service is a self‐contained program that
runs on its own and provides some kind of service for its clients.
Software Specifications cont…
Categories:
Sequence Diagram. A sequence diagram shows how
objects collaborate in a particular scenario. It
represents the collaboration as a sequence of
messages.
UML cont…
Categories cont…
Communication Diagram. Like a sequence diagram, a communication
diagram shows communication among objects during
some sort of collaboration. The difference is the sequence diagram focuses on
the sequence of messages, but the communication diagram focuses more on the
objects involved in the collaboration. Below is a communication diagram
emphasizes the objects participating in a collaboration.
UML cont…
Categories cont…
Timing Diagram. A timing diagram shows one or more objects’
changes in state over time. A timing diagram looks a lot like a sequence
diagram turned sideways, so time increases from left to right. These
diagrams
can be useful for giving a sense of how long different parts of a scenario
will take. More elaborate versions of the timing diagram show multiple
participants stacked above each other with arrows showing how
messages pass between the participants.
Interaction Overview Diagram. An interaction overview
diagram is basically an activity diagram where the nodes can be frames
that contain other kinds of diagrams. Those nodes can contain sequence,
communication, timing, and other interaction overview diagrams. This
lets you show more detail for nodes that represent complicated tasks.
End of Chapter 4a