DEV Community

Mastering System Analysis and Architecture: A Comprehensive Guide

Image description

System Analysis and Design?

System Analysis and Design has to do with studying and examining the existing system in order to understand the problems it might contain so to be able to create a better tech solution for it.

Its like you building a new system for a school that works better than the old one. This strategy is more efficient in a way that it uses a user-friendly way to help meet the needs of everyone.

There are mainly two parts involved in it:

There is the system analysis which requires one to examine who things look now and then see what is good and bad. Also engage with the users whether through observation or communicating with them to find out the needs and wants from the new system itself.

The other part is the system design which firstly requires one to outline the blueprint that is examining the requirements you collected from the analysis phase then based on those plan out how you going to make the new system work. Secondly would be a break down of the system, into smaller components so to be able to study them individually on how they would interact with one another.



Software Development Life Cycle (SDLC)

Image description

Software Development Life Cycle is a structured process that is divided into four stages. Namely planning, creating, testing and deploying.



Planning:

Image description

Planning deals with listing down the goals, scope and feasibility of the project. So say for instance, you want to plan on building a new mobile application, you first decide what it will do, who will be the target audiences and the amount of finances and time it will consume for you to develop it.



Analysis:

Image description

Secondly would be analysis where you would gather up what is required and study the system you are currently busy with. So if we were to put in a scenario of the mobile application, this is the part where you engage with the potential users through interviews to try and understand their needs and what they would prefer. You also try look at othet mobile applications that operate similarily to the one you ought to build and compare so you be able to see what works and what doesn't.



Design:

Image description

One of my favorite parts of the system development life cycle is the design phase where you design the system through means of creating these technical specification. Say with the web application this is basically where you design the database and then choose on which technology stack you will be utilizing for this part of development phase.



Implementation:

Image description

The implementation phase is basically involves coding and integrating the system. So with the web application this is where developers start being in action and they build backend, fontend and database and once you done building them individually, you integrate them together.



Testing:

Image description

The testing phase simply makes sure that the system works as intended. This is where we check if there aren't any issues or bugs contained in the application. To make sure that everything works smoothly and accordingly, the developers test the performance, features, and interaction of the user.



Deployment:

Image description

Deployment is all about releasing the system for usage. This is when the application is published on platforms like Heroku, the Apple App Store, or Google Play and can be downloaded.



Maintanance:

Image description

Maintaining the system has to do with scanning through the system and seeing if there aren't any bugs after deployment. If there are bugs, then we fix the bugs and update the available features on the system. In the scenario of software application development, this is the last phase where developers continue to monitor the performance of the system. They also continuously improve the application by means of adding new features, releasing updates to help fix the bugs and improving more on the user experience.



There are also 3 different types of models that fall under the Software Development Life Cycle:

The Waterfall Model:

Image description

The steps included under the waterfall model are requirement, design, implementation, testing, deployment and maintenance.

Practical example would be that of the above of building a house. You first gather what is needed to building the house like the deign, the number of rooms, the size of the house and then draw that on your architectural plan of it. What then follows is constructing the architectural design step by step, from outlining the base to completing the inside parts of the house. Once all completed, people can move into it and start utilizing it.



The Iterative Model:

Image description

This model basically structures the system in an incremental format as it allows for revision based on user's feedback at each stage to take place.

Like this model deals with collecting feedback from users so to be able to improve on the system, like say for instance you are building an e-commerce website. Obviously you will start with a very simple product catalog and then start gathering feedback from the users. From the feedback you are able to implement a lot such as adding the user's account and a search functionality and then combining the two options. Each step will improve based on user's input.



The Agile Model:

Image description

This model basically concentrates on iterative progress, flexibility, and collaboration through frequent releases.

An example would be creating a new social media application and making sure it evolves to meet the needs of the users through means of working closely with the developers and designers, keeping up intact with the new releases and versions of the app, and adding the features and improvements.



There are also three diagram I recently learned about and those are Use Case diagrams, Entity-Relationship Diagrams and the Data Flow Diagrams.

Use Case Diagram:

So with the Use case diagram, it visually shows how the user iteracts with the system. So basically the actors are the users and different actions are the use cases.

Below is basically an example one would see when a person interacts with an online ordering system


Image description

Actors are basically your delivery guy, admin and customer and then use cases are basically processes of placing the order, making payment, managing menu, assigning delivery and placing order.



Entity Relationship Diagram:

The next one is the entity relationship diagram which visually show the relationships and data in a system. So basically this helps one understand how the database is organized and structured.


Image description

Entities is the order and customer. Attributes on the other hand are basically the properties which in this instance is the Customer's name and order ID and lastly is the relationships component which shows the interaction between entities and in this instance that is managers and places.



Data Flow Diagram:

The last one is definitely the Data Flow Diagram(DFD) is simply a diagram that shows how data flows in a system.


Image description
This in terms of the food ordering scenario, is divided into four parts. First being processes that includes the update order status component, view menu component, place order, make payment and assign delivery.
Another one that follows is the data stores that is basically deals with payment records, menu database and order database. Another one would be extenal entities like delivery person, customer, payment gateway and admin. The last component is the data flows which shows that the customer sending order details to order database, order database updates order status, payment gateway processes payment, delivery person receives delivery assignment.



Any Thoughts?

Image description

My journey to learning all about system design and architecture continues, and if you have read till this far, please let me know what you think in the commentary section. Thank you!😊

Hostinger image

Get n8n VPS hosting 3x cheaper than a cloud solution

Get fast, easy, secure n8n VPS hosting from $4.99/mo at Hostinger. Automate any workflow using a pre-installed n8n application and no-code customization.

Start now

Top comments (0)

Qodo Takeover

Introducing Qodo Gen 1.0: Transform Your Workflow with Agentic AI

Rather than just generating snippets, our agents understand your entire project context, can make decisions, use tools, and carry out tasks autonomously.

Read full post

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay