The Architecture and levels of designs dilemma

The software industry is considered a new industry compared to other old industries like automotive, banking, manufacturing, …etc, which makes professionals from different industries may not able to understand what is the role of the architect? what is the difference between architecture levels Why the architecture is important and when it is needed?

There is a lot of mix between the architecture roles, from enterprise architect, Business architect, data architect, system architect, infrastructure architect, software architect …etc? Moreover, there is a lot of misunderstanding about the different levels of architecture and design. Even some of the software engineers may not know the difference when each level is needed. I explained before the difference between the software architecture, software design, and software structure in this article, while it needs some extra illustration.

This article mainly will focus on why the architecture is important and when and what are the different levels from conceptual to the detailed design level from the software architecture perspective. So, let us start.

Read more

How to visualize the software using effortless diagrams!

Software visualization is essential in the software development lifecycle to realize how the software will be conceptualized, visualized, structured, understood, and implemented. Software visualization can be defined as the art and science of generating visual representations for the various aspects of the software.

The purpose of the visualization is setting a common understanding of the system for all stakeholders, for example, business users, development team, architects, designers, …etc.

It is a part of Software architecture and design which usually needs problem-solving and planning. This may include both a low-level component, algorithm design, and a high-level architecture design. The image below can summarize the types of visualization in the software architecture, for example, if we would like to present a system of two components, it can be visualized by text visualization or graphical visualization. I think all of us can conclude that the software requirements specifications document can be a textual visualization of the system. I think yes but not only as part of this textual presentation should include the design decisions and may have pseudo code in some parts.

sample component

In this article, we will discuss different types of graphical visualization for the software that are commonly used in the software development lifecycle. Therefore, We will discuss the following diagrams and their usage:

  • Context Diagram
  • Use Case Diagram
  • Activity Diagram
  • Class Diagram
  • Entity-Relationship Model

However, this article will not discuss how to draw these diagrams and each diagram modeling language as there are a lot of resources available online for describing the modeling and notation standards.

Read more

Difference between Software Architecture, Software Structure, and Software Design

Introduction

Over the past 10-15 years, Software architecture has been widely spread in the software engineering community, To the extent that there are currently many career positions for software architect like Technical Architect and Chief Architect. Also, Architecture has involved in many different domains, for example, the architecture used to describe and refer to the internal structure of microprocessor and structure of machines or Network. For that matter, Trying to find one widely accepted definition for software architecture is not easy, and this issue has been introduced in many books when the authors start defining software architecture.

Read more