Assignment CS - 701
Assignment CS - 701
Assignment
Questions CO
Quality Attributes
Reflect the behavior of the system during its execution. They are directly related to
system’s architecture, design, source code, configuration, deployment parameters,
environment, and platform.
They are visible to the end-user and exist at runtime, e.g. throughput, robustness,
scalability, etc.
Usability
This software quality attribute helps define the ease with which users can
perform a specific task on the system (registering an account or adding an item
to the shopping cart). What issues can be seen as usability problems? These
may include inconsistency, too complicated signup process, poor error handling,
or unclear navigation, to name a few.
Ans 2:
Component is a unit of behavior. Its description defines what the component can do
and what it requires to do that job. A connector is an indication that there is a
mechanism that relates one component to another usually through relationships
such as data flow or control flow.
A C&C view of the system defines the components, and which component is
connected to which and through what connector. A C&C view describes a runtime
structure of the system—what components exist when the system is executing and
how they interact during the execution. The C&C structure is essentially a graph,
with components as nodes and connectors as edges. C&C view is perhaps the most
common view of architecture and most box-and-line drawings representing
architecture attempt to capture this view. Most often when people talk about the
architecture, they refer to the C&C view. Most architecture description languages
also focus on the C&C view.
It would be useful if there was a list of standard symbols that could be used to build
an architecture diagram. However, as there is no standard list of component types,
there is no such standard list.
As there are no standard notations for different component types and an architect
can use his own symbols, the type information cannot be obtained by a reader from
the symbols used. To make sure that the meanings of the different symbols is clear
to the reader, it is therefore necessary to have a key of the different symbols to
describe what type of component a symbol represents.
Connectors: - The different components of a system are likely to interact while the
system is in operation to provide the services expected of the system. After all,
components exist to provide parts of the services and features of the system, and
these must be combined to deliver the overall system functionality. For composing a
system from its components, information about the interaction between
components is necessary.
A connector also has a name that should describe the nature of interaction the
connector supports. A connector also has a type, which is a generic description of
the interaction, specifying properties like whether it is a binary or n-way, types of
interfaces it supports, etc. Sometimes, the interaction supported by a connector is
best represented as a protocol. A protocol implies that when two or more
components use the connector using the protocol to communicate, they must
follow some conventions about order of events or commands, order in which data is
to be grouped for sending, error condition setc. For example, if TCP ports are to be
used to send information from one process to another (TCP ports are the connector
between the two components of process type), the protocol requires that a
connection must first be established and a port number obtained before sending
the information, and that the connection should be closed in the end. A protocol
description makes all these constraints explicit, and defines the error conditions and
special scenarios. If a protocol is used by a connector type, it should be explicitly
stated.
Ans 4:
Have you ever wondered how Google makes Gmail work in different languages all over the world?
Users can use Gmail every day in English, Spanish, French, Russian, and many more languages.
Did Google develop different Gmail applications for each country? Of course not. They developed
an internal version that does all the message processing, and then developed different external user
interfaces that work in many languages.
Ans 5:
• Layered architecture
• Implicit invocation
• Blackboard architecture
• Incremental architecture
• Conflicts between multiple feedback loops. (eg. getting dark, near water, low battery).
Layered architecture
• Global planning
• Control logic
• Navigation
Implicit invocation
• Task trees are directed at one or more tasks registered to handle them.
Blackboard architecture
• Operated on by:
– Captain
– Navigator
– Lookout
– Pilot
• Carefully progress the software from being overly simple and restrictive, towards showing
intelligent behaviour.
• Design the software based not on perceived needs but on observed behaviour.