answersLogoWhite

0


Best Answer

Software design principles represent a set of guidelines that helps us to avoid having a bad design. The design principles are associated to Robert Martin who gathered them in "Agile Software Development: Principles, Patterns, and Practices". According to Robert Martin there are 3 important characteristics of a bad design that should be avoided: * Rigidity - It is hard to change because every change affects too many other parts of the system. * Fragility - When you make a change, unexpected parts of the system break. * Immobility - It is hard to reuse in another application because it cannot be disentangled from the current application. * Software entities like classes, modules and functions should be open for extension but closed for modifications.* High-level modules should not depend on low-level modules. Both should depend on abstractions. * Abstractions should not depend on details. Details should depend on abstractions. * Clients should not be forced to depend upon interfaces that they don't use. * A class should have only one reason to change. * Derived types must be completely substitutable for their base types. * Data design - created by transforming the analysis information model (data dictionary and ERD) into data structures required to implement the software. Part of the data design may occur in conjunction with the design of software architecture. More detailed data design occurs as each software component is designed. * Architectural design - defines the relationships among the major structural elements of the software, the "design patterns" than can be used to achieve the requirements that have been defined for the system, and the constraints that affect the way in which the architectural patterns can be applied. It is derived from the system specification, the analysis model, and the subsystem interactions defined in the analysis model (DFD). * Interface design - describes how the software elements communicate with each other, with other systems, and with human users; the data flow and control flow diagrams provide much of the necessary information required. * Component-level design - created by transforming the structural elements defined by the software architecture into procedural descriptions of software components using information obtained from the process specification (PSPEC), control specification (CSPEC), and state transition diagram (STD). These models collectively form the design model, which is represented diagrammatically as a pyramid structure with data design at the base and component level design at the pinnacle. Note that each level produces its own documentation, which collectively form the design specifications document, along with the guidelines for testing individual modules and the integration of the entire package. Algorithm description and other relevant information may be included as an appendix. In order to evaluate the quality of a design (representation) the criteria for a good design should be established. Such a design should: * exhibit good architectural structure * be modular * contain distinct representations of data, architecture, interfaces, and components (modules) * lead to data structures that are appropriate for the objects to be implemented and be drawn from recognizable design patterns * lead to components that exhibit independent functional characteristics* lead to interfaces that reduce the complexity of connections between modules and with the external environment * be derived using a reputable method that is driven by information obtained during software requirements analysis These criteria are not achieved by chance. The software design process encourages good design through the application of fundamental design principles, systematic methodology and through review.

User Avatar

Wiki User

14y ago
This answer is:
User Avatar
More answers
User Avatar

Wiki User

11y ago

It means that different tasks are separated into different methods, and even into different objects.

This answer is:
User Avatar

Add your answer:

Earn +20 pts
Q: What is the objective of modular software design?
Write your answer...
Submit
Still have questions?
magnify glass
imp
Continue Learning about Engineering

What are the specifications of a modular design?

A modular design is a design approach where a product or system is divided into smaller, self-contained modules that can be independently created, modified, or replaced. These modules have well-defined interfaces that allow for easy integration and interoperability. This design allows for flexibility, scalability, and easier maintenance and troubleshooting.


What is modular ratio in rcc?

In reinforced concrete construction, the modular ratio refers to the modulus of elasticity of concrete to that of steel. It is used in structural design calculations to determine distribution of stresses between concrete and steel in beams and columns.


What is flexibility in software engineering?

Flexibility: The ease with which a system or component can be modified for use in applications or environments other than those for which it was specifically designed We find this surprising because hardly any artefact is ‘flexible’ in absolute terms. The RAM capacity of a desktop computer, for example, can be expanded only if the hardware and the operating system were specifically designed to accommodate for such changes. Rapid technological developments pervade every aspect of daily life, having a direct effect on the software we use. Every element of the software’s operational environment is in a state of constant flux: Frequent changes in the hardware, operating system, cooperating software, and client’s expectations are motivated by performance improvements, bug-fixes, security breaches, and attempts to assemble synergistically ever more sophisticated software systems. Classic and contemporary literature in software design recognize the central role of flexibility in software design and implementation. Structured design, modular design, object-oriented design, software architecture, design patterns, and component-based software engineering, among others, seek to maximize flexibility.


What is modular programing mention any 2 charecteristic?

Modular programming is a design technique which separates a program into small, self-contained units or modules, each focusing upon a particular aspect of the program. Modular programming typically combines structured programming, object oriented programming and generic programming techniques.


What is Unified design tool?

The Unified Design tool is an emerging trend in software development. It has scientific and business applications. The design of this solution domain has an impact on the overall quality of the software.

Related questions

Where can I purchase modular billing software?

You can purchase modular billing software by visiting http://www.xpertbilling.com/. Another great site is http://www.modularmerchant.com/.


What is the architectural design of a modular building?

Virtually any architectural design can be made modular. Colonial, Victorian, Contemporary, Georgian, Tudor and almost any other style imaginable can be produced in a modular fashion.


What is design in modular form and its advantages?

Basically, design in modular form means designing a whole product (see program or software piece) based on modules (functions, classes, and a like). The advantages would be a flexible structure, easy to maintain, debug, upgrade and also customize with respect to changing customer requirememnts.


What are the specifications of a modular design?

A modular design is a design approach where a product or system is divided into smaller, self-contained modules that can be independently created, modified, or replaced. These modules have well-defined interfaces that allow for easy integration and interoperability. This design allows for flexibility, scalability, and easier maintenance and troubleshooting.


kitchen design?

Get Customized Modular kitchen based on your needs and preference, choose any from 8+ Modular kitchen ideas.


What is data Design in software design?

data design in software engineering


Is language a modular process?

Yes, language is considered a modular process, meaning that different aspects of language, such as phonology, syntax, and semantics, are processed by separate cognitive modules in the brain. This modular approach allows for different components of language to be processed independently but still work together to facilitate communication.


Give an example of how efforts in the development of software can pay dividends later in software maintenance?

A good modular design allows alterations to focus on only the pertinent sections of the software. The use of local variables reduces side effects and thus reduces the chance of "corrections" introducing more errors, etc.


What is the modular fashion?

Modular fashion is fashion that is based on engineering concepts, breaking down the design into multiple components. Modular fashion involves a lot of layering of different fashion styles and concepts. Modular designs start with a basic first layer, and "flair" is added on to that.


What is design in software engineering?

data design in software engineering


How can one design software for Punch Home?

You can design software for Punch Home using the Home Design Studio software. This software is available for purchase from the Punch Software website.


Definition of modular?

Modular refers to a interior design approach that consists of the subdivision of a system in several parts. All parts of the design are created and modified separately, they can be combined or separated with the intention of giving them a totally different functionality or to be interchangeable.