Q1(a) Explain any four software design concepts with examples.
1. Abstraction :- hiding complex implementation details and exposing only the necessary
functionality to the user.
Example: In object-oriented programming, a class Car can provide methods like
start() or stop() without revealing the internal mechanics of how the engine works.
2. Modularity :- involves dividing a system into smaller, manageable, and independent
modules that can be developed, tested, and maintained individually.
Example: In a web application, separate modules handle user authentication,
database access, and UI rendering.
3. Encapsulation :- refers to bundling data and methods that operate on that data within a
single unit, such as a class, and restricting access to specific components.
Example: In Java, private variables can only be accessed through public getter and
setter methods.
4. Coupling and Cohesion
Coupling :- Degree of dependency between modules. Lower coupling leads to better
maintainability.
Cohesion :- Degree to which elements of a module belong together. Higher cohesion is
preferred.
Example: A payment module that only handles payment operations has high
cohesion, whereas if it includes unrelated functionalities, it has low cohesion.
Q1(b) What are design patterns? Explain their importance with examples.
- Design Patterns: Design patterns are reusable solutions to common problems that occur in
software design. They provide best practices and proven techniques for solving specific
design issues.
1. Improves code readability and reusability.
2. Promotes standard solutions for recurring problems.
3. Makes the software easier to maintain and extend.
- Examples:
1. Singleton Pattern: Ensures that only one instance of a class is created.
- Example: Database connection objects in an application to ensure resource efficiency.
2. Observer Pattern: Allows one object to notify other objects when its state changes.
Example: In a weather application, changing the temperature (subject)
automatically updates the display (observers).
Q3(a) What are the golden rules of User Interface Design? Explain in detail.
1. Place the User in Control :- Allow users to interact with the interface freely
and undo/redo their actions.
Example: Providing a “Back” button or confirmation dialog before
deleting a file.
2. Reduce the User’s Memory Load :- The interface should display necessary
information and reduce the need for users to remember tasks.
Example: Autofill forms or breadcrumbs in navigation.
3. Consistency is Key :- The UI should maintain consistent color schemes,
fonts, and controls to avoid confusion.
Example: Using the same button style throughout an application.
4. Provide Feedback :- Immediate and clear feedback helps users understand
system responses.
Example: Loading indicators, error messages, or success notifications.
Q3(b) Explain the Project Management Life Cycle with neat diagrams.
1. Initiation :- Define the project scope, objectives, and stakeholders.
2. Planning :- Develop a detailed project plan including schedules, resources,
budgets, and risks.
3. Execution :- Implement the project plan by assigning tasks and monitoring
progress.
4. Monitoring and Controllin :- Track project progress, resolve issues, and
ensure the project stays on track.
5. Closure :- Deliver the project, obtain client approval, and document lessons
learned.
[Initiation] --> [Planning] --> [Execution] --> [Monitoring & Controlling] -->
[Closure]
Q5(a) Define software quality. Explain any four software quality metrics.
- Software Quality: Software quality refers to the degree to which a software
product satisfies user requirements, is reliable, and performs effectively.
1. Reliability :- Measures how consistently the software performs its intended
functions.
Example: Mean Time Between Failures (MTBF).
2. Maintainability :- Measures the ease with which the software can be
modified or fixed.
Example: Cyclomatic Complexity for code simplicity.
3. Efficiency :- Refers to the software’s use of system resources like CPU and
memory.
Example: Response time and resource utilization.
4. Usability :- Evaluates how easy it is for users to learn and use the software.
Example: Task completion rate or user satisfaction scores.
Q5(b) What are the objectives of software testing? Explain Unit and
Integration Testing.
1. To identify defects and bugs.
2. To ensure the software meets requirements.
3. To improve software reliability and performance.
4. To validate that software works in all intended environments.
Unit Testing :- Focuses on testing individual components or functions of the
software.
Example: Testing a single function that calculates tax in an application.
Integration Testing :- Ensures that different modules work together as
expected.
Example: Testing the integration of the login module with the user
dashboard.
Q7(a) What is Software Configuration Management (SCM)? Discuss version
control mechanisms in detail.
- Software Configuration Management (SCM): SCM is the process of tracking
and controlling changes in software components throughout the development
lifecycle.
1. Local Version Control :- Files are stored locally, and changes are manually
tracked.
Limitation: Does not support collaboration.
2. Centralized Version Control (CVS) :- A central server stores all versions of
the code, and users commit changes to this central repository.
Example: Subversion (SVN).
3. Distributed Version Control (DVCS) :- Every user has a local copy of the
repository, enabling offline work and parallel development.
Example: Git and Mercurial.
Q7(b) Write short notes on:
i) Change Control Mechanism:
- It is the process of managing and approving changes to a project.
1. Identify the change.
2. Evaluate the impact of the change.
3. Approve or reject the change.
4. Implement and review the change.
ii) RMMM Plan (Risk Mitigation, Monitoring, and Management):
- The RMMM plan identifies risks, plans strategies to mitigate them, and
monitors their status.
Risk:- A critical team member leaving the project.
Mitigation:- Cross-train other team members.
Monitoring:- Regular team updates to identify dependency on single
individuals.