Software Engineering Tutorial

Introduction SDLC Objectives of Software Design Conceptual and Technical Design in Software Engineering Coupling in Software Engineering Information System for Strategic Advantage Advantages and Disadvantages of V-Model Documentation Guidelines in Software Engineering Application Software

SDLC Models

Agile Model Big-bang Model Incremental Model Iterative Model Prototype Model RAD Model Spiral Model V-Model Waterfall Model

Software Management

Project Management Project Management Activities Project Management Tools

Software Metrics

Software Quality Metrics Halstead's Software Metrics Object Oriented Metrices Data Structure Metrics Overall Equipment Effectiveness Some Important Quality Metrics

Project Planning

Software project planning Cost Estimation Model

Software Configuration

Software Configuration Management Project Monitoring and Control

System Design

Strategies for System Design Caching in System Design Load Balancer – System Design Dropbox - System Design Netflix - System Design Twitter - System Design

Misc

Routing Requests through Load Balancers Object Oriented Analysis and Design in Software Engineering Online Library Management System ER Diagram in Software Engineering Umbrella Activities in Software Engineering Difference between V-Model and Waterfall Model Timeboxing Model in Software Engineering Flowcharts and their Uses Overview of Fish SDLC Model Characteristics of Testable Software Component Design in Software Engineering Project Planning in Software Engineering Software Process Characteristics Types of Systems in Software Engineering Advantages and Disadvantages of using ERP systems Architectural Design Elements in Software Engineering Debugging Strategies in Software Engineering Design Techniques in Software Engineering Software Design Strategies Characteristics of SRS in Software Engineering Coding Conventions in Software Engineering Components of Software in Software Engineering Domain Requirements in Software Engineering Feasibility Study in Software Engineering Metrics of Source Code Role of System Analyst in Software Engineering SQA Plan in Software Engineering

Architectural Design Elements in Software Engineering

The architectural design is necessary for the software to portray its design accurately. As defined by IEEE, architectural design is the process of specifying a group of hardware and software components, as well as their interfaces, in order to provide the foundation for a computer system. One of these numerous architectural styles can be seen in the software created for computer-based systems. 

Each style will outline a group of systems that includes: 

  • A group of elements (such as a database or computing modules) that together carry out a specific task for the system.
  • The collection of connectors will support component cooperation, coordination, and communication.
  • Conditions that determine how a system's components can be integrated.
  • Semantic models that aid the designer in comprehending the system's general characteristics.

The system's components are given a structure through architectural styles. 

Architectural Style Taxonomy

Data-cantered architectural designs

This design will include a data store at its core, which is constantly used by other components to update, add, remove, or alter the data already existing in the store.

The figure serves as an example of a typical data-cantered design. The client program accesses a central repository. When client-related data or client-interested data modify the alerts to client software, a variation of this strategy is utilized to turn the repository into a blackboard.

This architecture's data-centric approach will aid integrability. This means that new client components may be introduced to the architecture, and old ones can be altered without the consent or worry of other clients.

Clients can exchange data via the blackboard technique

  • Data-cantered architecture has an advantage.
  • The data repository is unrelated to the clients.
  • Client work that is independent of one another Adding more clients could be easy.
  • Modification is often relatively straightforward.

Flow-based Architectures

  • This type of architecture is utilized when input data is turned into output data using several computationally manipulative components.
  • Since it employs pipes and filters and contains a group of parts called filters connected by lines, the figure represents pipe-and-filter architecture.
  • Data is transmitted from one component to the following through pipes.
  • Each filter operates independently and is built to accept data input in a specific format and output data in a different format to the following filter. The operation of neighbouring filters is not necessary for the filters.
  • Batch sequential refers to a data flow that reduces to a single line of transformations. 
  • This structure transforms a batch of data using several successive components.

Data Flow architecture's benefits

  • It promotes maintenance, reusing, and customization.
  • Concurrent execution is supported in this design.
  • The data flow architecture's drawback. 
  • Data flow architecture does not support applications that demand a higher level of user interaction.
  • The coordination of two unrelated but connected streams is challenging. 

Call and Return architectures

These are used to build scalable, adaptable programs. Within this genre, there are several sub-styles. The following will discuss two of them.

This component displays a main program or sub-program architecture dispersed among several machines over a network. Remote procedure call architecture.

Architectures for main programs or subprograms

This component displays an architecture dispersed over several machines on a network in a main program or subprogram via remote procedure calls.

The main program structure is divided into various subprograms or functions organized into a control hierarchy. Numerous subprograms that can call other components are included in the main program.

Object-oriented architecture

The parts of a system contain both the procedures to be used to modify the data and the data itself. Message forwarding is used to establish the components' coordination and communication.

Features of object-oriented architecture

  • System integrity is protected via objects.
  • An object is not aware of the presence of other objects.

The benefits of object-oriented architecture

  • It allows the designer to divide a problem into several independent objects.
  • Changes may be made without affecting other objects since other objects know the object's implementation specifics.

Layered construction

  • Several distinct levels are defined, each of which executes a predetermined set of actions.
  • Each layer will do a few operations that get increasingly closer to machine instructions.
  • Components will accept user interface actions at the outer layer, execute operating system interfacing (communication and coordination with OS) at the inner layer, and perform application software tasks at intermediate layers.
  • The OSI-ISO (Open Systems Interconnection-International Organisation for Standardisation) communication system is a typical illustration of this architectural design.

Enterprise Architecture's Foundational Elements: Point, Line, Plane, and Volume

  • The four fundamental components of architecture and design—Point, Line, Plane, and Volume—must be understood if you wish to work as a building architect or designer. You may make any architecture or design with these four components. And if you use design and architecture concepts, you will produce stunning and unforgettable items.
  • The idea of using architecture in the design and realization of a structure or solution is to make it more durable, aesthetically pleasing, and usable/functional than it would be if it weren't for architecture. The overall notion that will be applied to a building or solution upon realization is the architecture of a structure or solution. And because architecture considers concepts and principles, it varies from the typical design of structures and solutions. It all begins conceptually. Normal design frequently only begins at the physical/technical level or the logical/functional level and conforms with rules and regulations.
  • You may create any building, bridge, or landscape without using architecture. With architecture, you may create structures that draw visitors from countless miles away. An analogous argument might be made that rather than merely creating and operating it like a typical ordinary firm, businesses like Facebook and Google have been established and continuously evolved using the smartest enterprise architecture (whole idea) imaginable.
  • Very few corporate architects know or regularly employ these four aspects, even though everyone in building architecture and design does.

Why use four elements?

  • As an architect or designer, you develop. Additionally, you make an effort to use the three-dimensional space provided in the greatest possible way to meet the needs of the owner, customer, and other stakeholders.
  • In the three-dimensional world, humans can adopt a variety of stances from which to see objects. 'Location' and 'Place' are these positions inside a space. 'Points' are what the placements are.
  • We must travel a distance when we wish to go from one location to another. In our world, a straight line is the fastest way to get from one place to another.
  • We can see the surface of things when we look at them. The surface might be spherical, flat, curved, or can take on any shape or form. Here, we discuss an aircraft.
  • We can wander around objects and things with contents and look at their surfaces. Here, we discuss volume.
  • Anything seen or noted in three-dimensional space is either a point, line, plane, or volume. Any building, design, or solution comprises points, lines, planes, and volumes. These four items are referred to as the "basic elements of architecture and design" for this reason. Of course, there are other things, such as units, design concepts, and architectural principles.
  • But let's now concentrate on these four components, how building design uses them, and how corporate architecture could or might not utilize them.

Point

A point has no size by itself. A design represents a point as a dot and engages with its surroundings. A point is the fundamental component of everything since every line comprises points. A point represents a location. For instance, the placement of an eye-catcher, a human moving over a landscape, or a person utilizing a structure's functionalities. We define a route as a sequence of temporal places. What routes do we want people to take, then?

The architect chooses numerous areas in the design space in landscape and building architecture that should offer a particular view or outlook: What are the things you need to see and feel if you are at the front of a property? Is it beckoning you to go inside the house? What should you be able to see if you are at the top of a hill? Does it live up to the hype?

Le Corbusier's five points on architecture

A collection of architectural ideas known as "the Five Points of a New Architecture" were devised by Le Corbusier, one of the most prominent and successful architects of all time. These are the five things:

  • The new aesthetic is based on replacing supporting walls with a grid of reinforced concrete columns that carry the structural load.
  • Because there are no supporting walls in the ground plan, the house's internal usage is unrestricted.
  • The façade is free from structural restraints thanks to separating the buildings outside from its structural purpose.
  • The large, horizontal window that runs the length of the façade evenly distributes light across the space.
  • Roof gardens on flat roofs can be used domestically and offer concrete roof necessary protection.

Enterprise Architecture Points of View

The architect in corporate architecture might likewise carry out this task. They could pick and place dots where customers and workers would see, feel, and hear the business differently. Customers are more inclined to purchase things from a firm if they feel, hear, see, and notice them well. The same holds for staff members providing services.

Any architect employed by the company should produce visualizations of views of structures and solutions that, given their position, align with stakeholders' interests and concerns. We call these ideas perspectives. A Chief Information Officer, IT

Manager or IT auditor is interested in and knowledgeable in very different subjects than a Chief Financial Officer, Financial Manager, or Financial Controller. Their views of view diverge drastically. They are obligated to refrain from utilising your visualised perspectives to assist their decision-making if you, as an architect, do not consider this. The question of why architects don't employ opinions more frequently remains to be solved in this situation.