CMPS 282 Final, Spring 1997
American University of Beirut · Software Engineering · 8 pages
More CMPS 282 files
Show the text of this final exam
AMERICAS. Tt
LIBRARY
Deine
i
OF
American University of Beirut
Department of Mathematics
Math 282
Final Exam
( Spring 1996-97)
id#
I. (40%)
Following is a summary obtained from a study on reuse. The study involved six very large
and long-term projects. The research addressed various phases of the software life cycle. In
addition it considered administrative aspects such as tcam structures, measurement models,
development environments etc.
_ Pi
‘The team members intervicwed in Japan made impressive claims about the (1) expected
productivity they derived from systematic reuse: reduced development time by 10-50 %,
improved productivity by 5-10% and improved quality by 20-35 %. These enhancements werc
due to (2) 40% reuse on the average. Members of the reuse tcam were praised on their ability to
repeatedly specify and maintain newly developed artifacts (3) that will be reusable on future
or ojects. They based their judgment on the (4) internal qualities of the acta and on the
P2
Some of the reuse occurred during the requirements analysis phase. Most of the reused code
consisted of (6) small modules that were supported without any adaptations. The rest were (7)
adapted to support new functionalities.
Some of the companies involved in the study focused on developing libraries for specific
domains. According to the study reuse librarians collected in addition to modules (8)_ recurring
design structures as well as (9) semi complete applications that consisted of sets of interacting
objects that provide well defined set of services.
P3 ‘
It was claimed that the division of tasks among staff and the structure imposed on teams
assisted the reuse process. In addition to the reuse tcam there were (10) teams whose
implementers followed a design based on a requirement specifications. (11) Other teams were
created to facilitate sharing results across projects. (12) Employees of a company were in
general organized into layers of authority. However (13) Among members of a (cam goals were
reached by consensus and group leadership was a rotating function, (14) A_ special team was
typically set to develop critical applications for the company. In this team, a leader would set
the strategy, identifies critical problems and assign experts to different tasks, Noticeably none of
the experts would ever be told the full strategy.
P4
To protect the companics’ investment, all products were built on top of layer of a software
that acted like a virtual machine and sheltered the applications from changes to the host
systems, This (15) approach made it possible to move the applications from one machine to
another without any modifications. For legacy systems, it was stated that the (16) main
approach in using these systems was to encapsulate the system with a a layer ¢ software via
which the services of the system could be accessed. The (17) other approach was not even
mentioned.
PS :
When asked about the cost of training managers all thought more training was needed and
worried that the cost could increase by as much as 20 percent to pay for the increased training,
i
All in all the saving achieved as a result of rcusc was assessed in terms of (18) length and
functionality (19) coupling, cohesion and structuredness of the developed systems, Conclusively
all companies involved praised themselves on quality products that they attributed to the (20)
quality assurance measures they applied.
What are the claims of reuse made in P1
1.
Qualify the type of reuse described in P2.
6.
7.
What kind of teams were supported by the companies involved as described in P3’?
10.
Qualify the approaches used for implementing systems and inparticutar Iegacy systems as
described in P4.
15,
16.
17.
What attributes of a software do the qualities described in P5 measure? Except for (19)
identify and briefly describe two measurement methods of these qualitics. Are these methods
well defined? Explain
18.
20.
Il. (60%)
The object diagram below depicts an object model for digital circuits. A circuit consists of a
collection of gates and wires. It inputs one or more signals and oulputs one or more signals as
well,
1, Discuss two possible implementations of the associations between a wire and a gate.
What are the merits of each. In each case modify the object model given above to reflect any
additional resulting classes.
The interfaces of classes WIRE and GATE are given below. A wire has a signal with
(false~O) as an initial value and maintains an array of all gates attached to it. lis behavior is
to be supported by feziure set_signal as follows: When a wire is informed of anew signal at
its input end, it checks to see if the new value is different from the old one. If so, it sets the
new value and triggers (call trigger of a gate) all gates connected to it 10 accomodate the
change.
Class WIRE
creation
make
feature
signal : BOOLEAN;
make is
--initializes connections
set_signal (new_signal : BOOLEAN) is
-- implements the behavior of a wire described above
connect_to (g : Gate)
-- adds gate g to connections
feature {NONE}
connections: AKRAY[GATE],
end;-- WIRE
class GATE
inherit The_CLock
feature
trigger is
-- called by an attached wire when its signal changes
activate is
-- called when the delay has clapsed. This procedure delines what the gate
actually does
end;-- GATE
3. Implement feature set_signal of class WIRE
4. The implementation of set_signal as described above includes policy and algorithmic
behaviors. Modify the implementation to separate these aspects. Introduce auxiliary features if
necessary.
5. All gates in a circuit are driven by a single shared clock. When a gate is informed by a
wire that the signal at one of its inputs has changed it scts the clock with its characteristics
delay and does nothing further. A clock relics on a scheduler responsible for carrying the
computations when the time set for a gate has clapsed. Implement feature clock of class
The_CLOCK. Note that class SCHEDULER is not supplied.
Class The CLOCK
feature
clock : SCHEDULER is
-- sharable clock
end;-- THE_CLOCK
6. Class GATE is implemented as a descendant of The_CLOCK in order to facilitate
usage of feature clock. Modify the implementation of GATE so that it captures the same
behavior but using delegation.
7. All Gates require feature activate to implement what a gate actually docs. Nevertheless
this behavior would differ from one gatc to another. Introduce class ABSTRACT_GATE that
captures this commonality (feature activate) among gates. Modily interface of class GATE and
the given object model to reflect the change.
6
8. Following is a state transition diagram that depicts the behavior of an 8-bit adder. The
adder has 16 input wires that receive the input signals ( inl corresponds to the 8 bits of the first
byte and int2 to the bits of the second byte) and eight output wires ( out! corresponds to the 8
output wires) that output the sum of the 2 input bytes ( The carry is ignored), The adder can be
in state (Request Input) in which case it reads the bytcs from standard input consccutively then
changes its state to Computing. In this state it computes the sum. Finally it displays the sum.
Assuming function do_compute that takes the input wires as parmcters and computes the sum,
implement class ADDER.
In
In2
Read first Read second
byte/[bits/=0 and / =1] byte/|bits/=0 and / =1]
((Reating —])
See
Read first
byte[bits=0 or 1]
4 Read second byte
Display sum (—)
(bits=0 or [J
ON YOUR PROJECT
1, List the steps and corresponding commands for building a project in Eiffel {rom scratch.
2. Draw the object diagram of your project
3. Give the interface of the two most important classes of your project.