software design principles
#1

explain the role and importance of software design principles
Reply
#2

The principles of software design represent a set of guidelines that help us to avoid having a bad design. The design principles are associated with Robert Martin, who met them in "Agile Software Development: Principles, Patterns, and Practices". According to Robert Martin there are three important characteristics of a bad design that should be avoided:

• Stiffness - Difficult to change because every change affects too many other parts of the system.
• Fragility: When you make a change, unexpected parts of the system are broken.
• Immobility - It is difficult to reuse in another application because it can not be unraveled from the current application.

Basic Software Design

Software design is a phase in software engineering, in which a plan is developed to serve as the basis for the construction of the software system. IEEE defines software design as "a process of definition, architecture, components, interfaces and other characteristics of a system or component and the result of that process".
At the design stage, many critical and strategic decisions are made to achieve the desired functionality and quality of the system. These decisions are taken into account to successfully develop the software and carry out its maintenance in a way that improves the quality of the final product.

Principles of Software Design

Developing the design is a cumbersome process as most expansive errors are often introduced at this stage. In addition, if these errors go unnoticed to later stages, it becomes more difficult to correct them. Therefore, a number of principles are followed when designing the software. These principles act as a framework for designers to follow good design practice.

[Image: thumb561-Principles-of-Software-Design-f...b111d5.jpg]

Some of the commonly followed design principles are as follows.


1. Software design must correspond to the analysis model: Often a design element corresponds to many requirements, therefore, we must know how the design model satisfies all the requirements represented by the analysis model.
2. Choose the right programming paradigm: A programming paradigm describes the structure of the software system. Depending on the nature and type of application, different programming paradigms can be used, such as procedural, object-oriented, and prototype paradigms. The paradigm must be chosen taking into account constraints such as time, availability of resources and the nature of user requirements.
3. Software design must be uniform and integrated: Software design is considered uniform and integrated, if the interfaces are properly defined between the design components. To do this, the rules, format, and styles are set before the design team begins designing the software.
4. Software design must be flexible: Software design must be flexible enough to adapt changes easily. To achieve flexibility, basic design concepts such as abstraction, refinement and modularity must be effectively applied.
5. Software design must ensure minimal (semantic) conceptual errors: The design team must ensure that major conceptual design errors, such as ambiguity and inconsistency, are addressed in advance before addressing the syntactic errors present in The design model.
6. Software design should be structured to degrade smoothly: Software should be designed to handle unusual changes and circumstances, and if the need for termination arises, it must do so in an appropriate manner so that the functionality of the software is not affected.
7. Software design should represent the correspondence between the software and the real world problem: The software design should be structured in such a way that it is always related to the real world problem.
8. Reuse of software: Software engineers believe in the phrase: 'do not reinvent the wheel'. Therefore, software components must be designed in such a way that they can be effectively reused to increase productivity.
9. Design for testing: A common practice followed is to keep the testing phase separate from the design and implementation phases. That is, the software is first developed (designed and implemented) and then delivered to testers who subsequently determine whether the software is fit for distribution and subsequent use by the customer. However, it has become clear that the process of separating the evidence is seriously defective, as if any type of design or implementation errors are encountered after implementation, so all or a substantial part of the software needs to be redone. Therefore, test engineers must be involved from the initial stages. For example, they should be involved with analysts to prepare tests to determine if user requirements are met.
10. Prototypes: Prototypes should be used when requirements are not fully defined at the outset. The user interacts with the developer to expand and refine the requirements as development progresses. By using prototypes, you can develop a rapid "mockup" of the system. This model can be used as an effective means to give users an idea of how the system will look and demonstrate functions to be included in the developed system. Prototyping also helps reduce the risk of designing software that does not meet customer requirements.
Keep in mind that design principles are often limited by existing hardware configuration, deployment language, existing data structures and files, and existing organizational practices. In addition, the evolution of each software design must be meticulously designed for future evaluations, referrals and maintenance.
Reply

Important Note..!

If you are not satisfied with above reply ,..Please

ASK HERE

So that we will collect data for you and will made reply to the request....OR try below "QUICK REPLY" box to add a reply to this page
Popular Searches: software design principles, principles of modern software management, 1 describe software design principles, explain software design principles, design concepts and principles in software engineering ppt pdf, uniformity design principles, principles that guide software design,

[-]
Quick Reply
Message
Type your reply to this message here.

Image Verification
Please enter the text contained within the image into the text box below it. This process is used to prevent automated spam bots.
Image Verification
(case insensitive)

Possibly Related Threads...
Thread Author Replies Views Last Post
  fayol principles of management applied in kfc 3 6,049 24-06-2018, 06:33 PM
Last Post: Guest
Exclamation fayol s principles in apple company 2 3,060 27-05-2018, 12:07 PM
Last Post: Guest
  design and fabrication of welding slag cleaning machine 4 9,135 17-03-2018, 02:58 PM
Last Post: Guest
  renewable energy design application in water cooler ppt 1 9,108 16-03-2018, 06:04 PM
Last Post: Guest
  ppt on design and implementation of intelligent campus security tracking system based on rfid and zigbee 7 16,067 09-02-2018, 02:20 PM
Last Post: udaya
Photo aadhar card software free download 1 2,842 24-11-2017, 08:00 PM
Last Post: hit454184
  to design an appropriate logic gate combinatin for a given truth table 1 5,536 13-10-2017, 10:26 AM
Last Post: Akash Mendhe
  fayol s principles of management used in amul 10 10,005 03-07-2017, 10:26 AM
Last Post: jaseela123d
  fayol s principles of management used in amul 2 2,331 03-06-2017, 10:12 PM
Last Post: Guest
  design of raft foundation as per indian code spreadsheet 6 4,829 23-05-2017, 07:00 PM
Last Post: Marwin

Forum Jump: