Classic Movies and Books

Learn Software Development

All about the processes involved in software development

Search this site
Google
 

What is software design ?

Filed Under Terms, Techniques, SDLC, Process, Development, Software | Posted on September 3, 2007




What is software design ? This is not a straight-forward question, but let me attempt to answer this question:

Software design is a process of problem-solving and planning for a software solution. After the purpose and specifications of software is determined, software developers will design or employ designers to develop a plan for a solution. It includes low-level component and algorithm implementation issues as well as the architectural view. The software requirements analysis (SRA) step of a software development process yields specifications that are used in software engineering. A software design may be platform-independent or platform-specific, depending on the availability of the technology called for by the design.
Design is a meaningful engineering representation of something that is to be built. It can be traced to a customer’s requirements and at the same time assessed for for quality against a set of predefined criteria for ‘good’ design. In the software engineering context, design focuses on four major areas of concern, data, architecture, interfaces, and components.
Designing software is an exercise in managing complexity. The complexity exits within the software design itself, within the software organization of the company, and within the industry as a whole. Software design is very similar to systems design. It can span multiple technologies and often involves multiple sub-disciplines. Software specifications tend to be fluid, and change rapidly and often, usually while the design process is still going on. Software development teams also tend to be fluid, likewise often changing in the middle of the design process. In many ways, software bears more resemblance to complex social or organic systems than to hardware. All of this makes software design a difficult and error prone process.
Software design documentation may be reviewed or presented to allow constraints, specifications and even requirements to be adjusted prior to programming. Redesign may occur after review of a programmed simulation or prototype. It is possible to design software in the process of programming, without a plan or requirement analysis, but for more complex projects this would not be considered a professional approach.


Leave a Reply