Software Design is a process of transforming user requirements into some suitable form, which will then help programmer in software coding and implementation. One of the main components in software design is software requirements analysis (SRA), because software requirements analysis lists specifications used in software design.
In Ikhwan IT we assess user requirements by creating a software requirement specification (SRS) document. Then we analyze the requirements data to conceive a high-level design. We perform the process like as shown in the software design life cycle below.
In Software Design we yield three levels of results i.e.:
- Architectural Design. Architectural design is the highest abstract version of the system. At this level we identify software as a system with many components that are interacting with each other. Hence, we get idea of the proposed solution domain.
- High Level Design. At high level design we break single entity multiple component concept of architectural design into a less abstracted view of sub systems and modules. We then depict their interaction with each other. At high level design we focus on how the system along with all of its components can be implemented in the forms of modules. We then recognize modular structure of each sub system as well as their relation and interaction among each other.
- Detailed Design. At detailed design we deal with implementation part of what is seen as the system and its sub systems in two previous designs. It is more detailed towards modules and their implementations. We define logical structure of each module and their interfaces to communicate with other modules.
We can develop software for a variety purposes:
- To meet specific needs of a specific client / business (in case of custom software).
- To meet a perceived need of some set of potential users (in case of commercial and open source software).
- For personal use (e.g. a scientist may write software to automate the task).