Oral Questions 2021 - SW Architecture
Oral Questions 2021 - SW Architecture
Oral Questions 2021 - SW Architecture
Signature-based: The method’s name indicates an operation, and the parameters carry
argument values for the execution of the operation.
Protocol-based: A protocol-based connector can implement multiple operation types with a
single binding signature.
4. Compare between blocking and non-blocking connectors?
blocking (sync.) allows one of its incident elements to send a request (method call or message)
to another and wait for a response (method return value or message), and the element will be
blocked from further execution until it receives a response.
non-blocking(async.) allows one of its incident elements to send a request (method call or
message) to another and then continue its execution without waiting for a response.
15. What is the difference between the broker and the bridge?
Broker: is a middleware architecture used to coordinate and facilitate communication between
different components in distributed systems (over a network), passing on requests and
returning replies.
Examples: .NET, CORBA.
Bridge: is used to hide implementation details when two brokers interoperate. It can connect
two different networks based on different communication protocols.
16. What is the difference between middleware and bridge? in which layer, in the network
model, they exist?
Middleware is the broker that coordinate communication in distributed systems whilst bridge is
used when two brokers interoperate.
They exist in the Application layer.
17. What is the difference between static connectors and dynamic connectors?
Static connectors are in the form of module dependency: Module A is connected to module B if
and only if A needs to invoke some methods in module B during execution.
Static connectors have attributes including Direction (If module A invokes a method of module
B during execution, then there is a unidirectional connector from module A to module B. e.g.
navigation –association uni-direction), Synchronization (A method invocation can be
synchronous or asynchronous) and Sequence (Some connectors must be used in a particular
sequence).
Dynamic (Runtime) connectors have attributes such as:
Multiplicity. One element can be connected to multiple other elements if it needs to invoke
methods of multiple elements at runtime.
Universally invokable. A connector with this attribute set to true allows any external software
system, no matter what hardware/ software platforms that they run on and what programming
languages or software frameworks that they are developed in, can invoke the method at the
connector’s target.
Self-descriptive. A connector with this attribute set to true can allow external software systems
invoke its target method without the pre-installation of any software specific for the method.
18. What is the difference between mobile code and mobile agent?
Similarity: Both have the mobility attribute.
Difference:
Mobile code: Mobile agent:
It is terminated at destination machine. It It must come back to the home machine. It
consists of code and data. consists of code, data, and states (the data
controlled by CPU and OS). It can migrate to
n-machines and comeback to the home
machine.
19. What is Software Architecture and Software Architecture style and Software Architecture
reference?
Software Architecture: It is a structured solution for a SW system that meets the functional and
nonfunctional requirements.
Software Architecture Style: It is an architecture pattern that include the following key
components:
1. Elements: that perform functions required by the system.
2. Connectors: that enable the communication, coordination, and cooperation among the
elements.
3. Constraints: that define how the elements can be integrated to form the system.
4. Attributes: that describe advantages and disadvantages of the proposed solution.
Software Architecture Reference: A reference software architecture is a reference model
mapped onto software components and their relations (mapping of functionality onto software
components).
20. What is linked list and array? What is the difference between them?
Linked list: It is a sequence of links which contains items. Each link contains a connection to
another link. (slower access, dynamic size).
A linked list data structure includes a series of connected nodes. Here, each node store the data
and the address of the next node.
Array: It is a data structure that contains a group of elements. Typically these elements are all of
the same data type, such as an integer or string. Arrays are commonly used in computer
programs to organize data so that a related set of values can be easily sorted or searched.
(faster access, fixed size).
23. Compare between RPC and RMI? When do we use procedure call and when do we use
method invocation?
It depends on middleware, RPC for CORBA and RMI is for JAVA/RMI
RPC and RMI both are similar but the basic difference between RPC and RMI is that RPC
supports procedural programming, on the other hand, RMI supports object-oriented
programming.
1. RPC is a library and OS dependent platform. RMI is a java platform.
2. RPC supports procedural programming. RMI supports object oriented programming.
3. RPC is less efficient in comparison of RMI.
4. RPC creates more overhead than RML.
5. The parameters passed in RPC are normal data. While in RMI, objects are passed as
parameter.
6. RPC is the older version of RMI.
7. RPC does not provide any security. RMI provides client level security.
8. RPC development cost is huge. RMI development cost is reasonable.
28. What type of connectors have you used in your architecture in the written exam and
why?
It is a static structure with association and navigation relationship.
29. What do you do before start designing your architecture?
Analysis of requirements (functional and non-functional).
Choose an architecture style and software technology based on quality attributes.
30. After the implementation phase, what should u do before deliver the product to your
customer?
Testing.
31. If you have complex software and there is no tool in the market to test it, who can do the
test? Give scenario example?
End users. If a new ODUS system is implemented, it is better to make students test the system.
32. What is the difference between semaphore variable and collective variable?
Semaphore: is a variable or abstract data type used to control access to a common resource by
multiple processes in a concurrent system such as a multitasking operating system.
A semaphore is simply a variable. This variable is used to solve critical section problems and to
achieve process synchronization in the multi-processing environment.
Collective: involves data sharing between more than two tasks, which are often specified as
being members in a common group, or collective. Tasks wait (do not finish execution) for each
other to finish. Then join them together.
33. What is the difference between reusability in component technology and reusability in
web services technology?
Reusability of WS: Any service can be reused by any other service,. Because clients of a service
only need to know its public interfaces, service composition and integration become much
easier.
Object Oriented Component
Reusability
34. What is software portability? How can we achieve it? Give an example?
Portability: This refers to the level of independence of the system on software and hardware
platforms. Systems developed using high-level programming languages usually have good
portability. One typical example is Java –most Java programs need only be compiled once and
can run everywhere.
Can be achieved using dynamic linking and virtual machine.
35. How to achieve high availability?
Availability is the probability that the system is continuously available during a time interval.
Reliability or availability is satisfied by:
1. Fault Avoidance: by building perfect system (testing).
2. Fault Tolerance: diversity (different versions and voting) or redundancy.
2. How metadata was used in the scenario by agent? How you draw metadata in the exam?
Mobile agent collect metadata from registers of remote machines and store them in integrated
database in home machine.
3. What is ruggedness in agent? What is flexibility of agent?
Ruggedness: if an agent is required to traverse networks, both large and small, it must be
rugged able to deal with errors, low resources, underpowered servers, interpret different kinds
of data, and so on.
Flexibility: the architecture is created during run time, it can be changed from one run time to
another.
7. What is the function of JVM? How to translate byte code to machine code?
It is a software tool that translates the byte code to target machine code. (it helps to achieve
portability in mobile agents).
8. Explain Thin and Fat client-server architectures?
Thin: presentation layer in client machines / business and data management layers in the server
machine.
Fat: presentation and business layers in client machines / data management layer in the server
machine.
Quality attributes comparison:
1. Performance: Fat > Thin
2. Traffic: Fat = Thin using no. of requests / Thin > Fat using amount of data and no. of
requests.
3. Scalability: Fat > Thin
4. Management (cost of replacing old versions): Thin > Fat