answersLogoWhite

0


Best Answer

There should be low dependence and high interaction between the modules. The dependence should be low so that the module can work in absence of another module. So, there should be low coupling ad high cohesion in software design.

User Avatar

Wiki User

9y ago
This answer is:
User Avatar

Add your answer:

Earn +20 pts
Q: Why there should be low coupling and high cohesion in software design?
Write your answer...
Submit
Still have questions?
magnify glass
imp
Continue Learning about Computer Science

What is modularization in software engineering?

Modularization is the process of breaking a software system into a set of collaborating components. Each of these components should ideally have high cohesion and low coupling.Modularization is inherently a recursive process. A real world example of modularization would be a car. A car is composed of an engine, doors, chassis, etc. However, each component is then composed of modules, i.e. the door has a window, door lock, handle, etc.High cohesion means that each of a components components are closely related to each other, i.e. above the door's components of the window, door lock, and handle are all closely related.Low coupling means that each component should be independent of the other components. In the case of a car, the engine is clearly independent of the door. Low coupling means that different components can be developed by independent teams without affecting each other.Modularization in software involves partitioning a software system into logical components by a software architect. For example, a banking software system might be broken into the following components:ATM softwareTeller interface softwareBack office transaction processing


What is requirement documentation in software engineering?

The requirements of a software product are a list of features required by the customer. One or more managers/software engineers will usually sit down with the customer to get a list of exactly what the product should do and how it should do it. The development team will later use these requirements to design the software around the customers' expectations.


What are the categories of software engineering?

Important components of Software Engineering are: 1. Software Development Life Cycle(SDLC) 2. Software Quality Assurance 3. Software project Management 4. Software Management 5. Computer Aided Software Engineering (CASE)


What the differentiate or different stages of software development life cycle?

The Software development process is composed of many activities, notably the following. * Conception: Establishing a case model for the development of the software. * Requirements Analysis: Extracting the requirements of a desired software product is the first task in creating it. While customers probably believe they know what the software is to do, it is important to recognize incomplete, ambiguous or contradictory requirements. * Specification: Specification is the task of precisely describing the software to be written. What functions it should have, the user interface, and any other requirements. * Software architecture: The architecture of a software system refers to an abstract representation of that system. Architecture involves making sure the software system will meet the requirements of the product, as well as ensuring that future requirements can be addressed. The architecture step also addresses interfaces between the software system and other software products, as well as the underlying hardware and the operating system platform. * Implementation: Converting a design to functional code. * Testing: Testing all aspects of the software's functionality. * Documentation: An important task is documenting the internal design of software for the purpose of future maintenance and enhancement. * Software Training and Support: Users will have lots of questions and software problems which leads to the next phase of software. * Maintenance: Maintaining and enhancing software to cope with newly discovered problems or new requirements.


Who should perform the validation test-the software developer or the software user?

Neither, it should be performed by a qualified Software Tester and witnessed by a Software Quality Engineer, a Systems Engineer, and the customer/user representative. The Software Developer should be entirely out of the picture at this point and only be responsible for fixing bugs found during validation.

Related questions

How are software coupling and portability are related?

The concept of coupling embodies the reliability and dependability (strength) among all relationships between functional units.The concept of software portability is the usability of same components/software in different environments.For optimal software, it is generally the case where coupling has to be minimized and portability has to be maximized (for sustainability and effectiveness in the long run). Having said that, strong software that contains low levels of coupling could easily and efficiently is portable. Similarly, if the software is portable it is probably due to the low levels of coupling that it has.Think of these as Lego pieces. If you want a working building, then all those nooks and crannies should not be visible (implying some coupling). That means that they should be stuck together pretty tightly (coupling). At the same time, if you want to remove a part of your structure like a room or a floor, then the tightness of your pieces (coupling) shouldn't be as strong. Ultimately, your structures portability is only dependent on the tightness of the pieces.


Is it reasonable to say that problem domain components should never exhibit external coupling?

External coupling occurs when a component communicates or collaborates with infrastructure components (e.g., operation system functions, database capability, telecommunication functions). Although this type of coupling is necessary, it should be limited to a small number of components or classes within a system. Software must communicate internally and externally. Therefore, coupling is a fact of life. However, the designer should work to reduce coupling whenever possible and understand the ramifications of high coupling when it cannot be avoided.


What is modularization in software engineering?

Modularization is the process of breaking a software system into a set of collaborating components. Each of these components should ideally have high cohesion and low coupling.Modularization is inherently a recursive process. A real world example of modularization would be a car. A car is composed of an engine, doors, chassis, etc. However, each component is then composed of modules, i.e. the door has a window, door lock, handle, etc.High cohesion means that each of a components components are closely related to each other, i.e. above the door's components of the window, door lock, and handle are all closely related.Low coupling means that each component should be independent of the other components. In the case of a car, the engine is clearly independent of the door. Low coupling means that different components can be developed by independent teams without affecting each other.Modularization in software involves partitioning a software system into logical components by a software architect. For example, a banking software system might be broken into the following components:ATM softwareTeller interface softwareBack office transaction processing


What web design software should you use?

Which ever you are most comfortable with.


What is a good website design software?

There are many types of software available for website design, with many basic design programs offered as a free download. You should first determine what you want to start from scratch or work from a template.


What should be the experties for a computer engineer?

Electronic engineering (or electrical engineering), software design, and hardware-software integration instead of only software engineering or electronic engineering.


Is the DBMS Software selection done before the conceptual design?

Obviously Yes; however, if you are mastered in every database administration, then perhaps it is not applicable for you. But selection of database software should be done before the conceptual design.


What is end-user computing?

I believe you should call it User Centered Design. This design methodology focuses the software design on the end users. While many design processes focus on technology, they should be focus on the end-user. User Centered Design methodology implies R&D teams should consider the design from the users' perspective.


What is the difference between srs document and design document?

SRS is about "what is needed" i.e. what software should do! Design docuemnt is about how Developer will achieve specified SRS.


How do you connect the slave cylinder coupling?

If the slave cylinder does not have a flared nut coupling, then it should have a snap connector. The line end plugs into the cylinder and the coupling snaps to hold it into place.


Should there be a separate profession of software architect whose role is to work independently with a customer to design the software system architecture?

Yes, I think there already is actually. IT Architect or Software Architect is already a role - they're involved in the decision and design process for new software systems, and include analysis on software, hardware and other technologies that are needed.


What is srs in softewear engeenering?

SRS in context of Software Engineering stands for System Requirements Specification. It is a document that specifies the complete description of the behavior of the system. For example, if the group of software engineers are to design a software for a bank. Assuming they are provided with BRD (Business Requirement Design), the engineers first need to describe and design the behavior of the software. The various entities the software has to react with, the various properties it should possess and so on. These specification can be a type of SRS.