What is good software design in software engineering. This includes both a low level component and algorithm design and a high level architecture design. By lucid chart without good software design programming is an art of adding bugs to an empty text file louise srygley. The purpose of design phase in the software development life cycle is to produce a solution to a problem given in the srssoftware requirement specification document. Structured design techniques help developers to deal with the size and complexity of programs.
To achieve the flexibility the basic design concepts such as abstraction refinement and modularity should be applied effectively. In fact there is a lot of literature on good software design that just focuses on design principles that make it easy to make changes to parts of the software without breaking its functionality. For assessing user requirements an srs software requirement specification document is created whereas for coding and implementation there is a need of more specific and detailed requirements in software terms. Creative skill past experience a sense of what makes good software and an overall commitment to quality are examples of critical success factors for a competent design.
The design process is a sequence of steps that enables the designer to describe all aspects of the software for building. Basically design is a two part iterative process. Good software is maintainable. The independent modules are easier to maintain test and reduce error propagation and can be reused in other programs as well.
Software design should be flexible enough to adapt changes easily. First part is conceptual design that tells the customer what the system will do. The software has good design if. So software design covers the initial design and planning stage however software engineering covers the.
Software can be easy to maintain if has consistent styling good comments is modular etc. The output of the design phase is sofware design document sdd. New colleague can come and fix bugs in the project after a week training. New feature could be typically added in a week.
Middle skilled programmer can work on the project without asking questions to his colleagues. A good system design is to organise the program modules in such a way that are easy to develop and change. Analysts create instructions for the developers about how code should be written and how pieces of code should fit together to form a program. Software design is a process to transform user requirements into some suitable form which helps the programmer in software coding and implementation.
Software design usually involves problem solving and planning a software solution.