answersLogoWhite

0

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

10y ago

Still curious? Ask our experts.

Chat with our AI personalities

ProfessorProfessor
I will give you the most educated answer.
Chat with Professor
TaigaTaiga
Every great hero faces trials, and you—yes, YOU—are no exception!
Chat with Taiga
RafaRafa
There's no fun in playing it safe. Why not try something a little unhinged?
Chat with Rafa

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.