Professional Documents
Culture Documents
3 Architecture Design Lecture
3 Architecture Design Lecture
The design process for identifying the sub-systems making up a system and the
framework for sub-system control and communication is architectural design.
The output of this design process is a description of the software architecture.
Software Design:
• Process of converting the requirements into the design of the system.
• Definition of how the software is to be structured or organized.
For large systems, this is divided into two parts:
Architectural design defines main components of the system and how they
interact. Its characteristics are Performance, Security, Safety: Availability and
Maintainability
Detailed design components are decomposed and described at a much finer
level of detail.
The architecture of a packing robot control system
Architectural design decisions
Layered Architecture Pattern: Organizes the system into layers with related
functionality associated with each layer. A layer provides services to the layer
above it so the lowest-level layers represent core services that are likely to be
used throughout the system. A layered model of a system for sharing copyright
documents held in different libraries.
Used to model the interfacing of sub-systems.
Organises the system into a set of layers each of which provide a set of
services.
Supports the incremental development of sub-systems in different layers.
When a layer interface changes, only the adjacent layer is affected.
A generic layered architecture
The architecture of the LIBSYS system
Repository architecture
Class – A class defines the blue print i.e. structure and functions of an object.
Objects – Objects help us to decompose large systems and help us to
modularize our system. Modularity helps to divide our system into
understandable components so that we can build our system piece by piece. An
object is the fundamental unit (building block) of a system which is used to
depict an entity.
Inheritance – Inheritance is a mechanism by which child classes inherit the
properties of their parent classes.
Abstraction – Abstraction in UML refers to the process of emphasizing the
essential aspects of a system or object while disregarding irrelevant details. By
abstracting away unnecessary complexities, abstraction facilitates a clearer
understanding and communication among stakeholders.
Encapsulation – Binding data together and protecting it from the outer world
is referred to as encapsulation.
Polymorphism – Mechanism by which functions or entities are able to exist in
different forms.