Q1: Define Asynchronous Messages and Synchronous Messages.
Asynchronous Messages:
Asynchronous messages are signals represented by a half arrow. They do not block the caller and allow the sender to continue execution without waiting for the receiver. These messages are commonly used to create new threads, create new objects, or communicate with a running thread.
Synchronous Messages:
Synchronous messages are call events represented by a full arrow. They show nested control flow where the caller waits for the called operation to finish before continuing execution.
Q2: Explain the Law of Balancing Act in Software Engineering.
Software engineering is a balancing act between different software characteristics such as cost, efficiency, reliability, and user friendliness. These requirements often conflict with each other. For example, improving user friendliness may reduce efficiency, and reducing cost may affect reliability. A software engineer must analyze these conflicts and strike a balance among them.
Examples of conflicts include:
• Cost vs Efficiency
• Cost vs Reliability
• Efficiency vs User Interface
Q3: How do you determine that an object belongs to a certain class?
In object-oriented design, an object is a tangible entity that shows well-defined behavior. Objects that share similar structure and behavior belong to the same class. A class defines the interface and implementation for these similar objects.
Q4: What is meant by the System’s Static View?
The system’s static view describes the structure of the system. It includes:
• Static view of semantic classes: Classes identified from system requirements.
• Static view of attributes: Attributes describe the characteristics of each class.
• Static view of relationships: Shows how objects are connected to each other.
• Static view of behaviors: Defines behaviors that support system use cases.
Q5: What is Behavior-Driven Perspective of an Object?
Behavior describes how an object acts or reacts through state changes and message passing. The behavior of an object is defined by its actions. A message is an action sent from one object to another to trigger a response. The operations that can be performed on an object are called methods.
Q6: What is Textual Analysis?
Textual analysis is a technique developed by Abbot and later extended by Graham. In this method, different parts of speech in the requirement specification are identified and modeled using various components of object-oriented design.
Q7: What is Software Architecture?
Software architecture is the organizational structure of a system. It defines system components, their relationships, and constraints on how they interact. These components can include classes, components, and subsystems.
Q8: What is the Cardinality of an Object?
Cardinality defines the number of instances of one object that can be associated with instances of another object.
Types include:
• One-to-One (1:1): One object relates to only one object.
• One-to-Many (1:N): One object relates to multiple objects.
• Many-to-Many (M:N): Multiple objects relate to multiple objects.
Q9: Define Abstraction.
Abstraction is a technique used to model an entity based on its essential characteristics while ignoring unnecessary details.
Q10: Is the Design of Software Architecture a Creative Process?
Yes, software architecture design is a creative and iterative process that involves multiple activities performed in different orders to achieve the desired system structure.
Q11: What are the two most important characteristics of an E-commerce Website?
The two most important characteristics are:
• Reliability – The system must work correctly and consistently.
• Usability – The system should be easy for users to understand and use.
Q12: What is the Purpose of Collaboration Diagrams?
Collaboration diagrams show how objects interact within a system. They represent dynamic behavior and illustrate message exchange between objects within system boundaries.
Q13: Difference between Aggregation and Association.
Association:
A general relationship where objects are connected but can exist independently.
Aggregation:
A stronger relationship where objects are tightly coupled and represent a whole-part relationship.
Q14: What parameters are used to measure Design Quality?
Design quality can be evaluated using the following parameters:
• Efficiency
• Compactness
• Reusability
• Maintainability
Q15: What is the Purpose of Interaction Diagrams?
Interaction diagrams help visualize system behavior by showing how objects communicate through messages. They capture the dynamic behavior of the system and describe the structure and message flow among objects.
Q16: What should be considered for Maintainable Design?
To create maintainable design:
• The design should be understandable.
• Changes should have limited impact.
• Principles like modularity, abstraction, and separation of concern should be applied.
• The system should have high cohesion and low coupling.
Q17: What is the Principle of Abstraction for Managing System Complexity?
Abstraction helps manage system complexity by focusing on essential features while hiding internal details. This allows developers to understand and manage complex systems more effectively.
Q18: Differentiate between Architectural Design and System Architecture.
Architecture focuses on strategy and system structure, while design focuses on implementation and practical development details.
Q19: What are the Architectural Design Processes?
The architectural design process includes:
• System Structuring: Dividing the system into subsystems.
• Control Modeling: Defining control relationships between components.
• Modular Decomposition: Breaking subsystems into modules.
Q20: What is the Action-Oriented Approach for Software Design?
In an action-oriented approach, the system is decomposed according to functionality. The focus is on functions rather than data. This approach mainly emphasizes system operations and processes.