Elements of Software architecture


Offshore Virtual Server

A software architecture is defined by a configuration of architectural elements–components, connectors, and data–constrained in their relationships in order to achieve a desired set of architectural properties.
1 Components
A component is an abstract unit of software instructions and internal state that provides a transformation of data via its interface.
Example transformations include loading into memory from secondary storage, performing some calculation, translating to a different format, encapsulation with other data, etc.
2 Connectors
A connector is an abstract mechanism that mediates communication, coordination, or cooperation among components.
Connectors enable communication between components by transferring data elements from one interface to another without changing the data.
3 Data
A datum is an element of information that is transferred from a component, or received by a component, via a connector.
Examples include byte-sequences, messages, marshalled parameters


Object Oriented Software Engineering
Object oriented concepts
The size and complexity of software is increasing day by day. Conventional approaches of software design and implementation may not be effectively applicable.
We want to simplify the development process and to produce high quality maintainable software.
As we all know, development may take few years and same may have to be maintained for many years.
A maintainable software may reduce the maintenance cost and high quality may enhance the sustainability of the software.
What is Object Orientation?
Classes & Objects
o All book types may be combined to form a group called class.
o All objects are instances of a class.
o The class describes the structure of the instance which include behaviour and information.
o A set of objects with similar behaviour & information may constitute a class.
o Hence, an object has a state (information) and it offers number of operations (behaviour) depending upon its class.
A class represents a template for several objects and describes how these objects are structured internally. Objects of the same class have the same definition both for their operations and for their information structures.
o An instance is an object created from a class. The class describes the (behaviour & information) structure of the instance, which the current state of the instance is defined by the operations performed on the instance.
o An attribute (or information / state) is a data value held by the object of a class.
o Operations (or behaviour) are the functions which may be applied on a class.

Encapsulation
Encapsulation is also known as information hiding concept. It describes the idea of wrapping data and the methods that work on data within one unit, e.g., a class in Java. This concept is often used to hide the internal state representation of an object from the outside.
The data and operations are combined into a single unit.
The only way to access data is through operations which are designed to operate on the data. The data is not available to external world.
This concept may make the data safe and secure from external interventions.

 Inheritance
o We may organize our knowledge in terms of hierarchy of categories.
o All classes inherit information from the upper classes.
o Each derived class inherits the attributes of its base class and this process is known as inheritance. In general, low level classes (known as subclasses or derived classes) inherit state and behaviour from their high level class (known as a super class or base class).

 Polymorphism
The dictionary meaning of polymorphism is “many forms”. In the real world, the same operations may have different meanings in different situations. Same message is sent to different objects irrespective of their class, but the responses of objects may be different.

Polymorphism is considered to be an important concept of any object oriented programming languages.
As we all know, arithmetic operators such as +, =, – are used to operate on primary data types such as int, float etc.
We may overload these operators so that they may operate in the same way on objects (user defined data types) as they operate on primary data types.
Thus, the same operators will have multiple
Data Abstraction
Abstraction refers to the act of representing important and special features without including the background details or explanation about that feature. Data abstraction simplifies database design.
 
Object Oriented Analysis and Design
Object-Oriented Analysis (OOA): Object-Oriented Analysis (OOA) is the first technical activity performed as part of object-oriented software engineering. OOA introduces new concepts to investigate a problem. It is based on a set of basic principles, which are as follows-
⦁ The information domain is modeled.
⦁ Behavior is represented.
⦁ The function is described.
⦁ Data, functional, and behavioral models are divided to uncover greater detail.
⦁ Early models represent the essence of the problem, while later ones provide implementation details.
The above notes principles form the foundation for the OOA approach. 
Object-Oriented Design (OOD): An analysis model created using object-oriented analysis is transformed by object-oriented design into a design model that works as a plan for software creation. OOD results in a design having several different levels of modularity i.e., The major system components are partitioned into subsystems (a system-level “modular”), and data manipulation operations are encapsulated into objects (a modular form that is the building block of an OO system.). In addition, OOD must specify some data organization of attributes and a procedural description of each operation. Shows a design pyramid for object-oriented systems. It is having the following four layers.

⦁ The Subsystem Layer : It represents the subsystem that enables software to achieve user requirements and implement technical frameworks that meet user needs.
⦁ The Class and Object Layer : It represents the class hierarchies that enable the system to develop using generalization and specialization. This layer also represents each object.
⦁ The Message Layer : It represents the design details that enable each object to communicate with its partners. It establishes internal and external interfaces for the system.
⦁ The Responsibilities Layer : It represents the data structure and algorithmic design for all the attributes and operations for each object.
The Object-Oriented design pyramid specifically emphasizes specific product or system design. Note, however, that another design layer exists, which forms the base on which the pyramid rests. It focuses on the core layer the design of the domain object, which plays an important role in building the infrastructure for the Object-Oriented system by providing support for human/computer interface activities, task management.
Some of the terminologies that are often encountered while studying Object-Oriented Concepts include:

  1. Attributes: a collection of data values that describe a class.
  2. Class: encapsulates the data and procedural abstractions required to describe the content and behaviour of some real world entity. In  other words,  A class is a generalized description that describes the collection of similar objects.
  3. Objects : instances of a specific class. Objects inherit a class’s attributes and operations.
  4. Operations: also called methods and services, provide a representation of one of the behaviour of class.
  5. Subclass: a specialization of the super class. A subclass can inherit both attributes and operations from a super class.
  6. Superclass:  also called a base class, is a generalization of a set of classes that are related to it.

Amelia Noah

Subscribe to our Newsletter

Subscribe to receive the weekly Newsletters from our website. Don’t worry, we won’t spam you.