Skip to content
VUBuddy

CS603 Solved Subjective Updated 2023

Software Architecture and Design PDF 219 KBUpdated 23 Oct 2026
Subjective CS603 Solved Subjective Updated 2023 PDF 219 KB
vubuddy.com
Type
Subjective
Course
CS603 Software Architecture and Design
Size
PDF 219 KB
Updated
23 Oct 2026
Free download 0 of 3 used today
Download free · 219 KB

You get 3 free files a day on the website. Add the Chrome extension for 30 a day.

Unlimited downloads in the Android app Get it free on Google Play

Preview text

Text from pages 1, 2, 3 of 10. Download the file for all 10 pages.

CS603 · 2023 final term questions Updated · By ChatGPT

Q1. refactoring and performence me diftence

the difference between refactoring and performance optimization:

Refactoring: Improves code quality and readability by restructuring code without changing its behavior.

Performance Optimization: Enhances code efficiency to make it run faster and consume fewer resources.

Q2. three types deni thi preventer change

I believe you're referring to the " Change Preventer" code smells, which are design issues in software development that can make it difficult to make changes to the codebase. Here are three types of " Change Preventer" code smells:

  1. Divergent Change: This occurs when a single class is frequently modified for various reasons, such as adding new features, fixing bugs, or making changes unrelated to its primary responsibility. It violates the Single Responsibility Principle (SRP) and makes the codebase hard to maintain.
  2. Shotgun Surgery: Opposite to divergent change, this smell involves making many small changes across multiple classes whenever a single change in requirements is needed. It indicates that the code is tightly coupled and lacks proper separation of concerns.
  3. Parallel Inheritance Hierarchies: In this situation, a set of subclasses mirrors another set of classes with a parallel hierarchy. When changes are made to one hierarchy, they often require corresponding changes in the other, leading to code duplication and maintenance challenges.

These code smells should be identified and addressed during code reviews and refactoring to improve code maintainability and extensibility.

Q3. layers se depnecies km hoti h

" In a layered architecture, dependencies between different parts of the system are minimized through clear separation of concerns, standardized interfaces, and well-defined boundaries, which allows for independent development, testing, and maintainability."

4 developer q derte hen refactoring se

" Developers may hesitate to refactor code due to concerns about potential disruptions to existing functionality, the additional time and effort required, and the need for comprehensive test coverage to ensure changes don't introduce bugs."

5 architecture design q zarori h

" Architecture design is essential in software development because it provides a structured plan for organizing and building a system. It helps ensure that the system meets functional and nonfunctional requirements, promotes maintainability, scalability, and performance, and facilitates team collaboration by establishing a common understanding of the system's structure and components."

Long question · 1 option se diye hoy the depnecies fine krne the · 2 could cuple characteristics

I apologize for the misunderstanding. Here are the fundamental characteristics of coupling in software design, irrespective of the specific types:

  1. Degree of Interdependence: Coupling represents the level of interdependence between different modules, components, or classes within a software system.
  2. Strength of Connection: It indicates how strongly one module relies on or influences another module.
  3. Impact of Changes: Coupling affects how changes made to one part of the system can impact other parts. Higher coupling increases the risk of unintended consequences when making modifications.
  4. Ease of Maintenance: Looser coupling typically leads to easier maintenance, as changes to one module are less likely to require changes in other modules.
  5. Modifiability and Flexibility: Lower coupling enhances the system's modifiability and flexibility, allowing for easier adaptation to changing requirements.
  6. Reusability: Loose coupling promotes reusability, as components with fewer dependencies can be more easily reused in different contexts.
  7. Testability: Loosely coupled modules are often more straightforward to test in isolation, leading to better testability and robustness.
  8. Complexity Reduction: Reducing coupling simplifies the codebase and makes it more understandable, aiding in code comprehension and maintenance.
  9. Parallel Development: Looser coupling allows for parallel development of different components by different teams or developers.
  10. Scalability: Systems with lower coupling are often more scalable, as individual components can be scaled independently.
  11. Risk Mitigation: Minimizing coupling helps mitigate the risk of unexpected issues arising from changes made to the codebase.

These characteristics highlight the importance of managing coupling in software design to create maintainable, adaptable, and robust systems.

3 multiple view model me hun mvc se q use krte hen bht zyda asan tha paper

Using the Model-View-Controller (MVC) architectural pattern with multiple view models can be beneficial in certain scenarios. Here are solid reasons for employing MVC with multiple view models:

  1. Modularity and Separation of Concerns: MVC promotes a clear separation of concerns. Each component (Model, View, Controller) has a distinct role, which makes it easier to manage the application's complexity. By using multiple view models, you extend this separation to the View layer, allowing for more modular and organized code.
  2. Reusability: Multiple view models can be designed to encapsulate specific presentation logic or behaviors. These view models can be reused across different views, reducing code duplication and promoting code consistency. For example, if you have similar functionality in different parts of the application, you can reuse the appropriate view model.
  3. Testability: MVC with multiple view models enhances the testability of your application. Each view model can be unit-tested independently of the user interface, making it easier to verify the correctness of the presentation logic.
  4. Scalability: As your application grows, it's essential to maintain scalability. Multiple view models allow you to scale your application by adding new views
All CS603 files →
CS603 Software Architecture and Design All CS603 handouts, past papers, quizzes and MCQs in one place. Open course page

Get more out of VUBuddy, for free

Android app Free on Google Play
  • Unlimited downloads
  • The explanation behind every MCQ answer
  • Study offline on slow data
Get the Android app
Chrome extension Free on the Chrome Web Store
  • 30 downloads a day instead of 3
  • Sign in and buy Pro Semester here
Add to Chrome

One Pro Semester membership works in both the extension and the app.