0% found this document useful (0 votes)
54 views

Assign 3

The document discusses control components in conventional vs object-oriented software, cohesion, module coupling, and differences between function-oriented and object-oriented development. 1) Control components are generally not required in object-oriented software because it divides problems into objects rather than functions and supports reusability, whereas conventional software is less reusable and maintenance of large systems is more difficult. 2) Cohesion refers to how related the elements of a module are in performing a single task, and low cohesion can cause problems as modules become large and complex due to performing unrelated tasks. 3) Module coupling describes interdependence between software modules and different types of coupling like data, control, common, and content coupling are explained

Uploaded by

shinjo
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
54 views

Assign 3

The document discusses control components in conventional vs object-oriented software, cohesion, module coupling, and differences between function-oriented and object-oriented development. 1) Control components are generally not required in object-oriented software because it divides problems into objects rather than functions and supports reusability, whereas conventional software is less reusable and maintenance of large systems is more difficult. 2) Cohesion refers to how related the elements of a module are in performing a single task, and low cohesion can cause problems as modules become large and complex due to performing unrelated tasks. 3) Module coupling describes interdependence between software modules and different types of coupling like data, control, common, and content coupling are explained

Uploaded by

shinjo
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 3

Subject Name: Essentials of Software Engineering Subject Code: IB304

ASSIGNMENT-2

1. Why are control components necessary in conventional software and are generally
not required in object-oriented software?

1) Conventional programming divides the problem into functions but object-oriented


programming divides the problem into a number of entities called object.
2) Conventional programming represents non real modelling but object-oriented
programming represents real world modelling like the parents’ child concept,
inheritance.
3) Conventional programming follows a top-down approach but object-oriented
programming follow bottom-up approach.
4) Conventional programming does not support reusability but object-oriented
programming support reusability the code.
5) Conventional programming is used for designing medium sized application,
maintenance and modification of large complex system is time consuming and costly.
Object oriented programming is used for designing large and complex applications,
maintenance and modification of large and complex system is relatively less time
consuming and costly.
6) Conventional programming follows Top - Down Approach, whereas Object-Oriented
programming follows Bottom - Up Approach.

2. What is cohesion? What problems are likely to arise if modules have low cohesion?

Cohesion is a measure of the degree to which the elements of the module are functionally
related. It is the degree to which all elements directed towards performing a single task
are contained in the component. Basically, cohesion is the internal glue that keeps the
module together. A good software design will have high cohesion.

 Low cohesion is when a class does a lot of jobs that don’t have much in common.
 It’s results in monolithic classes that are difficult to maintain, understand and reduces
re-usability.
 When a class is designed to do many different tasks rather than focus on a single
specialized task, this class is said to be a "low cohesive" class. Low cohesive classes are
said to be badly designed, as it requires a lot of work at creating, maintaining and
updating them.

Arushi
CSE-CSF
180111900
Subject Name: Essentials of Software Engineering Subject Code: IB304

 Low cohesion implies that a given module performs tasks which are not very related
to each other and hence can create problems as the module becomes large.
3. Define module coupling. Explain different types of coupling.

In software engineering, the coupling is the degree of interdependence between software


modules. Two modules that are tightly coupled are strongly dependent on each other.
However, two modules that are loosely coupled are not dependent on each other.
Uncoupled modules have no interdependence at all within them.

Types of Coupling:

• Data Coupling: If the dependency between the modules is based on the fact
that they communicate by passing only data, then the modules are said to be data coupled.
In data coupling, the components are independent to each other and communicating
through data. Module communications don’t contain tramp data. Example-customer
billing system.

• Stamp Coupling: In stamp coupling, the complete data structure is passed from
one module to another module.

• Control Coupling: If the modules communicate by passing control information,


then they are said to be control coupled. It can be bad if parameters indicate completely
different behavior and good if parameters allow factoring and reuse of functionality.
Example- sort function that takes comparison function as an argument.

• External Coupling: In external coupling, the modules depend on other


modules, external to the software being developed or to a particular type of hardware. Ex-
protocol, external file, device format, etc.

• Common Coupling: The modules have shared data such as global data structures. The
changes in global data mean tracing back to all modules which access that data to evaluate
the effect of the change. So, it has got disadvantages like difficulty in reusing modules,
reduced ability to control data accesses and reduced maintainability.

Arushi
CSE-CSF
180111900
Subject Name: Essentials of Software Engineering Subject Code: IB304

• Content Coupling: In a content coupling, one module can modify the data of another
module or control flow is passed from one module to the other module. This is the worst
form of coupling and should be avoided.

4. Differentiate between function oriented and object- oriented software development.

OBJECT-ORIENTED DESIGN FUNCTIONAL- ORIENTED DESIGN

The basic abstractions are not the real The basic abstractions, which are given to the
world functions but are the data abstraction user, are real world functions.
where the real-world entities are represented.
Functions are grouped together on the basics Functions are grouped together by which a
of the data they operate since the classes higher-level
are function is obtained.
associated with their methods.
OOD approach is mainly used for FOD approach is mainly used for computation
evolving systems which mimics a business sensitive application.
process or business case.
We decompose it in the class level. We decompose in function/procedure
level.
Bottom-up approach Top-down Approach

The state information is represented The state information is often


in a centralized memory but is represented in a centralized shared
implemented or distributed among the memory.
objects of the system.

Arushi
CSE-CSF
180111900

You might also like