Hi dear fellows my name is Abdul Haseeb. Today you are going to know about a very important field of computer science and software engineering. Which is Software Design and Architecture. As the software design and architecture are two different terms. Before starting the topic properly you need to understand the difference. And the working or functionality of these two terms that is software design and architecture.
- This is Highest level of abstraction.
- Gives Entire Structure of System
- Never Gives Implementation details
- Describes functionalities.
- Describes Modulus of class.
- This also Emphasizes on Modules.
- Explains how to implement in details.
The architecture word is derived from Latin word architecture. Which means planning or constructing physical objects. In the same way the term Software architecture describes the externally visible structure of a software system.
Software Architecture Definition
“The Software architecture of a computer system is the structure including externally visible properties of its elements and the relationships among them”.
Software Architecture Goal
The Goal of software architecture is to expose the details of a software system. Which are related to its structure and formation. Here are the three goals of Software architecture.
- It aims to realize use cases and written outlines by clients.
- Telling the requirements of the stake holders.
- Handling all the functional requirements and nonfunctional requirements as well.
Software Architecture Importance
- The (SA) has so much importance regarding Major focus on components used in application
- It tells the interaction of components in Software.
- Provides the Algorithms and Details of Components.
The software design tells how the system will do some task. As I told in comparison between the both these terms software design and architecture. The design also covers the implementations details.
An others aspect of software design is the software requirement analysis which is the abbreviated as (SRA).
In SRA we covers and infect lists the Whole applications for which that software system is being developed.
Software Design Definition
Software design is infect the process in which we define all the software methods, its functions, all objects, the whole structure and the interaction of our written code so that the resulting functionality could satisfy our user’s full requirements.
Software Design Goal
The main goal of software designs is that how a system will do the following.
- The flexibility (update able system)
This is the capability of a system to be updated. The updates are additional new feature which we may be added letter. Updating is resulted after the insufficiency of working. So the design should be capable to be updated whenever there is a need for change in software system.
- Software Extensibility (Enhancements)
The extensibility is the addition of features without updating the basic structure. This extensibility feature is usually used by Inheritance and polymorphism properties of the Programing language we use.
- System Maintainability (Maintenance )
This includes the both flexibility as well as extensibility. The word maintainability means refactoring or ensuring to repair the system whenever it is required. The maintenance also repairs the damaged or effected portions of system. The codes including errors and bugs are fixed by maintenance. A good design should always be able to support the above most important phases of the design.
Software Design Importance
The Software design has vital importance in software development process. The importance of software design can be explained in the following key points.
- It is the first stage of software development.
- It tells how the product is going to look and how it is going to work.
- Gives the product estimations and pure ideas about software system.
- Helps the better understandings of product’s functions and performance.
- Makes the things more precise and clear for the peoples working on the project.
To conclude this topic we can say the software design and architecture are two different. But interrelated aspects of software development. The difference in these terms is that the architecture tells basic skeleton or framework of system. But design covers the whole implementations and functionality details of our software system in depth.
For any question comment below. And don’t to forget to share it with others if you like my article. Follow us and like our Facebook page to get more researches and articles.