CS603 Solved Subjective Updated 2023
- Type
- Subjective
- Course
- CS603 Software Architecture and Design
- Size
- PDF 219 KB
- Updated
- 23 Oct 2026
You get 3 free files a day on the website. Add the Chrome extensionSign in with the extension for 30 a day.
Preview text
Text from pages 1, 2, 3 of 10. Download the file for all 10 pages.
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:
- 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.
- 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.
- 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."
I apologize for the misunderstanding. Here are the fundamental characteristics of coupling in software design, irrespective of the specific types:
- Degree of Interdependence: Coupling represents the level of interdependence between different modules, components, or classes within a software system.
- Strength of Connection: It indicates how strongly one module relies on or influences another module.
- 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.
- Ease of Maintenance: Looser coupling typically leads to easier maintenance, as changes to one module are less likely to require changes in other modules.
- Modifiability and Flexibility: Lower coupling enhances the system's modifiability and flexibility, allowing for easier adaptation to changing requirements.
- Reusability: Loose coupling promotes reusability, as components with fewer dependencies can be more easily reused in different contexts.
- Testability: Loosely coupled modules are often more straightforward to test in isolation, leading to better testability and robustness.
- Complexity Reduction: Reducing coupling simplifies the codebase and makes it more understandable, aiding in code comprehension and maintenance.
- Parallel Development: Looser coupling allows for parallel development of different components by different teams or developers.
- Scalability: Systems with lower coupling are often more scalable, as individual components can be scaled independently.
- 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:
- 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.
- 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.
- 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.
- Scalability: As your application grows, it's essential to maintain scalability. Multiple view models allow you to scale your application by adding new views
Related CS603 files
All CS603 files →Get more out of VUBuddy, for free
- Unlimited downloads
- The explanation behind every MCQ answer
- Study offline on slow data
- 30 downloads a day instead of 3
- Sign in and buy Pro Semester here
One Pro Semester membership works in both the extension and the app.