Software Architecture Design: UML Concepts & Layered Systems

Classified in Computers

Written at on English with a size of 2.54 KB.

Software Architecture Design Principles

Key aspects of software design include:

  • Software Architecture Design: Defines the major structural components of the software and their relationships.
  • Project Data Design: Involves designing the data structure needed to implement the software.
  • Procedural Design: Refines and details the procedural description of the structural components defined in the software architecture.
  • Interface Design: Describes how software communicates internally (internal interfaces), with other systems (external interfaces), and with users (user interface).

Component vs. Class Diagrams in UML

Similarities

  • Both can realize a set of interfaces.
  • Both can participate in various relationships (dependency, generalization, association).
  • Both can be nested.
  • Both allow instances.
  • Both can participate in interactions.

Differences

The primary distinction lies in deployment: if the element being modeled resides on a node at runtime, it's typically a Component; otherwise, it's a Class.

Understanding UML Nodes

A node in UML is defined as:

  • A physical element that exists at runtime.
  • Represents a computational resource, often hardware.
  • Represents the hardware where components are installed and executed.

Client-Server Software Layers

The components of a typical business application can be grouped into at least three logical layers:

  1. Presentation Layer: This is the outermost layer of the software. Its function is to capture stimuli from external events and perform some validation or editing of input data. It also submits responses to these events to the outside world. Generally, it is located on a client machine, such as a PC, although this is not a rigorous rule.
  2. Business Logic Layer: This layer contains the code that implements and enforces business policies. Rules, regulations, and calculations are found here. It is often the most adaptable layer and can be located on remote clients, the central server, or any intermediate location.
  3. Data Management Layer: This layer provides access to corporate data. It manages concurrent requests for database access and handles the synchronization of distributed data elements. Much of this layer resides in the same physical location as the data itself.

Entradas relacionadas: