Classification of software design based on abstraction level

Now we will list a few fundamental design concepts that have been evolved over the years of experience in software designing -


Abstraction

The first stage of Designing is focused on generalizing our concept of system We design a basic system by picking up the most relevant information and hiding the complexities of the system

Refinement

This is another design aspect which comes into picture in later stage of design process Here we can concentrate on collaboration. refinement starts once our high level design is ready. Then we keep on applying refinement on our design and finally reach the low-level program trucks light packages, interfaces, classes, objects, methods, variables, etc.

Modularity

Complex design can be divided into two models. While designing, it is made sure that module can be treated in isolation if needed. It means that the inputs outputs or interaction should be well defined for the module a and if needed, hatim T1 can be assigned to work on that module in isolation. The assign development team 31 may not actually have the access to the larger perspective of the system or it may not have access to working module X with which module interacts.

Software architecture

One of the most important design concepts is the overall architecture for the software architecture of the system which should be very carefully designed. This architecture plays important role in system implementation and kept on getting referred throughout the lifetime of software system. All the stakeholders will always wish to have comprehensive, appealing, are available, and unfegined software architecture at first place. A good software architecture always signals a good return of investment for the stakeholders.

Control hierarchy

Another important aspect of system is flow of control and data. Design at some level should also be able to project this aspect of the system. Stages of user interaction and then subsystem interactions can be used to show the control hierarchy at high level. At more detail level control structures of programs and their following sequences represents the control hierarchy. The above mentioned terms of design are general design concepts software Architects and expert engineers can add more terms and parameters that they have learnt and experienced. Design engineering and process can never be frozen. It has witnessed few major changes in software systems in past few years. Mobile applications and internet for stars to rethink on traditional design strategies. With modern Trends and need in software development, we should not hesitate to find verify and adopt the innovative strategies in software design.