PMSE - Module II
PMSE - Module II
1. Data Coupling: Two modules are data coupled, if they communicate using an elementary
data that is passed as a parameter between the two.
2. Stamp Coupling: Two modules are stamp coupled, if they communicate using a composite
data item such as a record in PASCAL or structure in C.
3. Control Coupling: Control coupling exists between two modules, if data from one module
is used to direct the order of instruction execution in another. Eg: a flag set in one module
and tested in another module
4. Common Coupling: Two modules are common coupled, if they share some global data
items
5. Content Coupling: Content coupling exists between two modules, if they share code. For
example, a jump from one module into the code of another module can occur.
Q19. Explain the different approaches to Software Design
1. Function-Oriented Design:
In Function-oriented design, a software system is broken down into smaller
functional components or modules. Each module is designed to perform a specific function or
task. This approach is often associated with procedural programming languages.
Function-oriented design is characterised by the following principles:
Modularity: The system is divided into smaller, manageable modules, each responsible for a
specific function. This promotes code organisation and maintainability.
Reusability: The modules can be used in different parts of the program or even in other
projects.
Encapsulation: Modules encapsulate their logic and data, making them independent and
reducing the likelihood of unintended interactions.
Separation of Concerns: Each module performs a distinct functionality, which aids in
understanding, debugging, and maintenance.
Hierarchical Structure: Modules can be organised in a hierarchical manner, allowing for a
clear representation of dependencies and interactions.
Testing and Debugging: Modules can be individually tested and debugged, simplifying the
identification and resolution of issues.
2. Object-Oriented Design: Object-oriented design (OOD) is a design approach that is based
on the concept of objects. Objects are instances of classes, which define both data (attributes)
and behaviour (methods) that the objects possess. Object-oriented design is associated with
languages like Java, C++, Python, and others, and it is characterised by the following
principles:
Abstraction: Objects abstract real-world entities by representing their attributes and
behaviours.
Encapsulation: Objects encapsulate their data and methods, limiting access and preventing
direct manipulation of data.
Inheritance: Classes can inherit attributes and behaviours from other classes, allowing for
the creation of hierarchies and the reuse of code.
Polymorphism: Different objects can respond to the same method call in different ways,
enabling flexible and extensible code.
Modularity: Classes and objects promote modularity by encapsulating related data and
behaviour into self-contained units.
Q20. Define User Interface
The visual part of a computer application or operating system through which a client
interacts with a computer or software. It determines how commands are given to the computer
or the program and how data is displayed on the screen.
Q21. What are the different types of User Interfaces
1. Text-Based User Interface or Command Line Interface
2. Graphical User Interface (GUI)
Text-Based User Interface: This method relies primarily on the keyboard. A typical example
of this is UNIX.
Advantages
○ Many and easier customizations options.
○ Easier to Navigate and can look through folders quickly in a guess and check manner.
○ The user may switch quickly from one task to another and can interact with several
different applications.
Disadvantages
○ Typically decreased options.
○ Usually less customizable. Not easy to use one button for tons of different variations.
Q22. What are the characteristics of a good user interface design
1. Clear - Meaning and functions of the UI should be clearly communicated to the user
2. Concise - Explanation of the UI functionality should be concise
3. Responsive - The UI should respond fast and provide feedbacks to users
4. Consistent - There should be a fair level of consistency that the interface should maintain
throughout its working.
5. Attractive - The look and feel of the UI should be attractive.
6. Efficient - Implement an interface that lets people easily accomplish what they want
instead of simply implementing access to a list of features.
7. Familiar - Identify things that are familiar to the users and integrate them into the user
interface
8. Forgiving - People are bound to make mistakes when using a website or software. How a
software handles those mistakes is an important indicator of the quality of that software.