Assignment No. 3 Software Engineering
Assignment No. 3 Software Engineering
Software Engineering
PART A
Q1. Consider a program containing many modules. If a global variable x must be used to share
data between two modules A and B, How would you design the modules to minimize coupling?
ANS: If we wish to minimize coupling between modules in a system
Coupling = probability that in coding/modifying/debugging module A we will have to take into
account something about module B
Q2. Construct a table showing the advantages and disadvantages of different structural models?
ANS:
ADVANTAGES
Provide very efficient "High-speed" retrieval
Simplicity- The network model is conceptually simple and easy to design.
Ability to handle more relationship types- The network model can handle the one-to-
many and many-to-many relationships.
Ease of data access- In the network database terminology, a relationship is a set. Each
set comprises of two types of records- an owner record and a member record, in a
network model an application can access an owner record and all the member records
within a set.
Data Integrity- In a network model, no member can exist without an owner. A user must
therefore first define the owner record and then the member record. This ensures the
integrity.
Data Independence- The network model draws a clear line of demarcation between
programs and the complex physical storage details. The application programs work
independently of the data. Any changes made in the data characteristics do not affect the
application program.
DISADVANTAGES
System complexity- In a network model, data are accessed one record at a time. This
males it essential for the database designers, administrators, and programmers to be
familiar with the internal data structures to gain access to the data. Therefore, a user
friendly database management system cannot be created using the network model
Lack of Structural independence- Making structural modifications to the database is
very difficult in the network database model as the data access method is navigational.
Any changes made to the database structure require the application programs to be
modified before they can access data. Though the network model achieves data
independence, it still fails to achieve structural independence.
Q3. Why an object oriented approach to s/w development may not be sufficient for real time
systems?
ANS: The traditional object model is insufficient in the context of real-time systems. Here a
completely new aspect has to be added to the object concept, namely time. It has to be
investigated how to annotate the functional specification of types with timing constraints and
how to guarantee and implement these timing specifications. Also other concepts that were
already included in the traditional object model have to be reviewed in the context of a real-time
system, due to the difficulties to obtain deterministic timing behavior. These concepts include
inheritance, dynamic binding, dynamic memory allocation, concurrency, and synchronization. A
lot of research has been undertaken in order to resolve the inherent contradiction between object-
orientation and real-time. In the following subsections several different approaches to real-time
objects will be reviewed.
PART B
Q4. Suggest situations where it is unwise or impossible to provide a consistent user interface?
ANS: There are 2 major problems encountered when modifying systems:
1 Understanding which entities in a program is logically part of some greater entity.
2 Ensuring that changes do not have unanticipated side-effects (i.e., a change to one entity has an
undesirable effect on some other entity).
Object-oriented development helps to reduce these problems as it supports the grouping of entities (in
classes) so program understanding is simplified. It also provides protection for entities declared within
objects so that access from outside the object is controlled (the entity may not be accessible, its name
may be accessible but not its representation, or it may be fully accessible). This reduces the probability
that changes to one part of the system will have undesirable effects on some other part.
Validation: It is the process of confirming that it "meets the user's requirements”. Validation typically
involves actual testing and take place after verification are completed.
Typically involves actual testing and takes place after verifications are completed
1.This process focus on the product after the development(The outcome of the work)
2.Validation appears after coding phase
3.Most of the times test engineers will be involved in the phase of validation.
4. Are we building system right?
Q6. Explain why adopting an approach to design that is based on loosely coupled objects that
hide information about their representation should lead to a design which may be readily
modified?
ANS: There are two major problems encountered when modifying systems.
1. Understanding which entities in a program are logically part of some greater entity.
2. Ensuring that changes do not have unanticipated side-effects ie. a change to one entity
has an undesirable effect on some other entity.
Object-oriented development helps to reduce these problems as it supports the grouping of
entities (in object classes) so therefore simplifies program understanding. It also provides
protection for entities declared within objects so that access from outside the object is controlled
(the entity may not be accessible, its name may be accessible but not its representation or it may
be fully accessible). This reduces that probability that chances to one part of the system will have
undesirable effects on some other part.