Difference between Good Design and Bad Design in Software Engineering

The term design is used in two ways. While used as verb, it means – the design process and used as noun, it means- the result of design process. Design is a meanigful engineering representation of something that is to be built. The result of a design process is called as design model or the design of the system.

Design for computer software is as important as a roadmap for a home, otherwise the result will be chaos. A system design is a plan for a solution for the system. Here a system is components with clearly defind behavior that interact with each other in a predefined manner to produce certain behaviors or services for its environment.

The software design process often has two levels. One of which determines the modules for the system, their specifications and their interrelationship. This is known as elaborate design or logic design, decides the module’s internal design.

A design- methodology is a systematic method that creates a design by applying a set of techniques and guidelines. Most design practices focus on system design. Also most recently, provide a set of guidelines to help the developer, designing a system.

Differentiate of good and bad design against its key characteristics is provided in table.



Characteristics Good Design Bad Design
Change Change is one part of the system does not always require a change in another part of the system. One conceptual change requires changes to many parts of the system.
Logic Every piece of logic has one and one home. Logic has to be duplicated.
Nature Simple Complex
Cost Small Very high
Link The logic link can easily be found. The logic link cannot be remembered.
Extension System can be extended with changes in only one place. System cannot be extended so easily.

Attention reader! Don’t stop learning now. Get hold of all the important CS Theory concepts for SDE interviews with the CS Theory Course at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up


If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.