Vous êtes sur la page 1sur 7

ADVANCED SE

Explain the following benefits of software reuse


Reduced process risk- The cost of existing software is already known, whereas
the costs of development are always a matter of judgment. This is an
important factor for object management because it reduces the margin of
error in project cost estimation. This is particularly true when relatively large
software components such as subsystems are used.
Effective use of specialists- Instead of doing the same work over and over
again, applications specialists can develop reusable software that encapsulates
their knowledge.
Standards compliance- Some standards, such as user interface standards, can
be implemented as set of reusable components. For example, if menus in user
interface are implemented using reusable components, all applications present
the same menu formats to users. The use of standard user interfaces improves
dependability because users make fewer mistakes when presented with a
familiar interface.

Explain the following approaches that support software reuse


Architectural pattern- widely used ways for organizing the architecture of
distributed systems.

ERP architecture : number of modules to support different business functions.


A defined set of business processes, associated with each module, which relate
to activities in that module.
- are standard software architectures that support common types of
application system are used as the basis of applications.
Program generators- A generator system embeds knowledge of a type of
application and is used to generate systems in that domain from a
user-supplied system model.
Software product lines- or application families are applications with generic
functionality that can be adapted and configured for use in specific context.
A software product line is a set of applications with a common architecture and
shared components, with each application specialized to reflect different
requirements.

Which characteristics should have a component to be reusable.


Composable: For a component to be composable, all external interactions
must take place through publicly defined interfaces. In addition, it must
provide external access to information about itself, such as its methods and
attributes.
Deployable: To be deployable, a component has to be self-contained. It must
be able to operate as a stand-alone entity of a component platform that
provides an implementation of the component model.
Documented: Components have to be fully documented so that potential users
can decide whether or not the components meet their needs.
Independent: A component should be independent—it should be possible to
compose and deploy it without having to use other specific components.
Standardized: Component standardization means that a component used in a
CBSE process has to conform to a standard component model. This model
may define component interfaces, component metadata, documentation,
composition, and deployment.

How component composition is done? Explain what an adapter is?


-The process of collecting components to create a system.
-Composition involves integrating components with each other and with the
component infrastructure.
-You have to write “Glue code” to allow components to work together.
Adaptor component: Address the problem of component incompatibility by
reconciling the interfaces of the components that are composed.
-Different types of adaptor are required depending on the type of composition
-Example: An addressFinder and a mapper component may be composed
through an adaptor that strips the postal code from an address and passes this
to the mapper component.
What is the role of middleware in distributed software? Which services do
they provide?
-The components in a distributed system may be implemented in different
programming languages and may execute on completely different types of
processor. Models of data, information representation and protocols for
communication may all be different.
-Middleware is software that can manage these diverse parts, and ensure that
they can communicate and exchange data.
- Middleware provides information exchange and common services.

Middleware Support
Interaction support, where the middleware coordinates interactions between
different components in the system

The middleware provides location transparency in that it isn’t necessary for


components to know the physical locations of other components.
The provision of common services, where the middleware provides reusable
implementations of services that may be required by several components in
the distributed system.

By using these common services, components can easily


inter-operate and provide user services in a consistent way.
Explain the peer-to-peer architecture?
-Peer to peer are decentralized systems where computations may be carried
out by any node in the network.
-The overall system designed to take advantage of the computational power
and storage of a large number of networked computers.

-Peer to peer architecture is used when clients exchange locally stored


information and the role of the server is to introduce clients to each other.

Explain what multi-tenancy is in the context of SaaS.


Multi-tenancy is a situation in which many different users access the same
system and the system architecture is defined to allow the efficient sharing of
system resources.
-Multi-tenancy involves designing the system so that there is an absolute
separation between the system functionality and the system data.
Implementation factors for SaaS
-Configurability- clients may request some requirements so the system should
be able to enable and disable those requirements.
-Scalability- The system should be able to handle more users.
- Multi-tenancy How do you present each user of the software with the
impression that they are working with their own copy of the system while, at
the same time, making efficient use of system resources?

Which architectural considerations we should have when developing


embedded systems ( how the specific requirements of embedded systems
can influence the architecture)?
Architectural considerations:
-Because of the need to respond to timing demands made by different
stimuli/responses, the system architecture must allow for fast switching
between stimulus handlers.
-Timing demands of different stimuli are different so a simple sequential loop is
not usually adequate.
-Real-time systems are therefore usually designed as cooperating processes
with a real-time executive controlling these processes.
What characteristics should have a real-time operating system?
-Real time operating systems are specialized operating systems which manage
the processes in the RTS
-Responsible for process management and resource (processor and memory)
allocation.
-May be based on standard kernel which is used unchanged or modified for a
particular application.
-Do not normally include facilities such as file management.

Makeup Exam
1) Distributed software engineering

a)Explain why distributed software systems are more complex than centralized software
systems, where all of the system functionality is implemented on a single computer.

 Distributed systems are more complex than systems that run on a single processor.

 Complexity arises because different parts of the system are independently managed
as is the network.

 There is no single authority in charge of the system so top-down control is impossible

 When a system is distributed, the number of ways that the system may be attacked is
significantly increased, compared to centralized systems.

b) What is the role of a middleware in distributed software? Give an example.

Middleware is basically the software that connects software components or enterprise


applications. It is the software layer that lies between the operating system and the
applications on each side of a distributed computer network. Middleware examples include
database middleware, application server middleware, message-oriented middleware, web
middleware and transaction-processing monitors.

Middleware is the infrastructure which facilitates creation of business


applications, and provides core services like concurrency, transactions,
threading, messaging.

Examples: Common middleware examples include database


middleware, application server middleware, message-oriented
middleware, web middleware, and transaction-processing monitors.
2) Service-oriented Architecture

Give the reasons why SOAs (Service Oriented Architectures) should be based on
standards.

From the outset, there has been an active standardization process for SOA, working
alongside technical developments. All of the major hardware and software companies are
committed to these standards. As a result, SOA have not suffered from the incompatibilities
that normally arise with technical innovations, where different suppliers maintain their
proprietary version of the technology.

Key standards for SOA:

SOAP

A message exchange standard that supports service communication

WSDL (Web Service Definition Language)

This standard allows a service interface and its bindings to be defined The WSDL
specification defines:

●  What operations the service supports and the format of the messages that
are sent and received by the service

●  How the service is accessed - that is, the binding maps the abstract
interface onto a concrete set of protocols

●  Where the service is located. This is usually expressed as a URI (Universal


Resource Identifier) WS-BPEL A standard for workflow languages used to define
service composition

= Standard protocols have been developed to support service communication and


information exchange

3) Component-based software engineering

Explain the role and importance of interfaces in component composition?


Why we need interfaces:

When you write new components especially for composition, you should design the
interfaces of these components so that they are compatible with other components in the
system. You can therefore easily compose these components into a single unit.Component
Interfaces

Provides interface:

●  Defines the services that are provided by the component to other


components.

●  This interface, essentially, is the component API. It defines the methods


that can be called by a user of the component.

Requires interface:

 Defines the services that are needed and should be provided by other components.

● Defines the services that specify what services must be made available for the component
to execute as specified.

Explain why distributed software systems are more complex than centralized
software systems, where all of the system functionality is implemented on a
single computer?

●  Distributed systems are naturally more complex than centralized


systems. This makes them more difficult to design, implement, and test. It is
harder to understand the emergent properties of distributed systems because
of the complexity of the interactions between system components and system
infrastructure.|

For example, rather than being dependent on the execution speed of one
processor, system performance depends on network bandwidth, network
load, and the speed of other computers that are part of the system. Moving
resources from one part of the system to another can significantly affect the
system’s performance.

●  Distributed systems are unpredictable in their response. Response


time depends on the overall load on the system, its architecture, and the
network load

●  Complexity arises because different parts of the system are


independently managed, as is the network

Vous aimerez peut-être aussi