SOFTWARE DESIGN: FROM WORDS TO CODES PART I
Tags: programming, beginners, tutorial, codenewbie
Published: 2022-03-28 15:54:32

In Programming, there's a situation that comes to us where we want to turn our written requirements into codes. You may find it difficult to convert lines and paragraphs of your software specs into a working code and it is totally fine. Instead of jumping ASAP on your Code Editor or IDE and think how to start it while reading in it, you can cut it into different parts where each move seems very achievable to code. Don't worry I will give you some tested and proven ideas for doing this and it is called **Software Designing**.

***
First, we need to ready our written requirements where we get all of the ideas about our software. If you already got it, then we can move to the next phase. If you don't have one yet, don't worry I have an example below so you can cast an idea out of it.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/z9ntznsz29rq4yrjd24p.png)

Once, we have written requirements, we can move to the next part; Identifying the Elements.

***
Next, we're going to extract the parts of that paragraph above that gives the main idea of our software. For better understanding, I highlighted them as what you see below and as we go through there, I'm gonna explain them.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9az4l4ofcbjwuq70u2nq.JPG)

1. Green round rectangles - Objects
2. Blue rectangles - characteristics of Objects

Since we finished identifying each `class` and their *attributes*. It's time to think about their connections and configure their relations to each other.

***
Before I show you the diagram I created by traversing through the written guide, let me explain to you first the elements I used that you may see on the diagram I made so you won't be confused about these symbols.

1. Single arrows - singular; means "not all" of the Objects are required to have relation to another one.
2. Double arrows - plural; means "all" of the Objects are required to have relation to another one.
3. Light Blue hexagons - relationships between two Objects.
4. Blue rectangle with broken lines - characteristics of Objects that will have value through their relationship with another one.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/l4ngojnzzq4hco6b5b9u.JPG)

> TIP:
In making its connections, you should ask yourself what part is the most important, and which among entities are the most independent, and which has future connections. And that's where we start creating their connections. You don't need to think so hard to figure it out. Just pick randomly and try to figure out what should be working before it, then figure out next what is after it and that's where you can build it.

***
This is the method I use to turn my software ideas written in a text file into a working code. This is my implementation of doing **Software Design**, maybe my method is not that hardcore but the point is it helps me to make my work easier to do. Now as you can see it is easier now to understand and code. Click here to see [part 2](https://dev.to/codeitmichael/software-design-from-written-requirements-into-codes-part-ii-37d8).

***
Good day, guys!! You can check here my accounts:
Twitter: [`Codeit_Michael`](https://twitter.com/Codeit_Michael)
Github: [`Codeit-Michael`](https://github.com/Codeit-Michael)