<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0076)https://www.icarnegie.com/downloadsolncmd.php?section_id=10677575&id=6873804 -->
<! DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"><HTML><HEAD><TITLE>Exam 3 Practical - Solutions</TITLE>
<META http-equiv=Content-Type content="text/html; charset=utf-8">
<META content="MSHTML 6.00.2900.3020" name=GENERATOR><!-- #BeginEditable "doctitle" --><!-- #EndEditable --></HEAD>
<BODY bgColor=#ffffff leftMargin=0 topMargin=0>
<TABLE cellSpacing=0 cellPadding=0 border=0>
<TBODY>
<TR>
<TD vAlign=top width="2%"></TD>
<TD vAlign=top width="96%"></TD>
<TD vAlign=top width="2%"></TD></TR>
<TR>
<TD></TD>
<TD><!-- start typing here-->
<H2><!-- #BeginEditable "title" -->Exam 3 Practical - Solutions<!-- #EndEditable --></H2>
<OL>
<LI><B>Which of the artifacts in your project system are the most likely
candidates for reuse? Justify your answer using the principles of reuse
you learned in the course.</B>
<P>Potentially reusable artifacts include code and noncode items
(specifications, models, etc.). Hence the wording of the question. The
most likely candidates for reuse are the database middleware and the
generic aspects of the client applet. The independence (low coupling)
and high cohesion of these modules make them good candidates for reuse.
The entity-relationship model and backend database model are probably
the least reusable in another context, because they are completely
dependent on the particular problem to be solved.</P><BR>
<LI><B>Use the technique of boundary value analysis to describe the
different equivalence classes of input to the three objects in a
three-tier database client-server architecture (client applet, database
servlet, database). Use this information to sketch a brief outline for
an execution-based test plan for such a system.</B>
<P>Boundary value analysis and equivalence classes:
<UL>
<LI>At the client applet: good data from the user, bad data from the
user.
<LI>At the database servlet: valid SQL queries, invalid SQL queries.
<LI>At the database backend: valid SQL queries, invalid SQL queries
<P></P></LI></UL>
<P>(The student may also mention the control messages that are sent
back/forth for things like login, connecting to DB, etc.). </P>
<P>A basic execution-based test plan would include two main phases: a
phase to verify that all the acceptable input is handled correctly
(functional requirements are satisfied), and a phase to verify that all
the invalid input is handled gracefully (robustness requirements are
satisfied). </P><BR>
<LI><B>Assume that you are a software procurement officer for a company
that sells automobiles online, and that you are interested in
contracting with a software developer to create a three-tier
client-server system for e-commerce like the one you built for your
project. It is your job to write a set of acceptance criteria for the
contract, based on your idea of what comprises adequate product testing
for the system. What kinds of product testing are appropriate in this
context? Give examples specific to the three-tier e-commerce system.
</B>
<P>The following answers are representative of the types of student
answers that are acceptable. Correctness: the system must handle any
valid set of input it is given, based on the requirements specification
for the system. Reliability: the system must run 24 hours a day, 7 days
a week, with a maximum acceptable down time of 10 minutes every 7 days.
Robustness: the system must be able to handle at least 100,000
transactions per day, with a maximum allowable burst rate of 100
transactions per minutes. Documentation: the system must include
complete documentation for the installer, maintainer, and end user, each
of which will be subjected to formal review before acceptance.
Installation: the client and server programs will be installed and
tested under expected conditions before acceptance.</P><BR>
<LI><B>Briefly describe the types of documentation activity during the
various life-cycle phases of a software product. </B>
<P>The answer should include a mention of at least one kind of
document/type of documentation activity during each life-cycle phase
(requirements, specification, design, implementation, integration,
maintenance). More detail should be given for implementation and
integration phases. Testing documents should be mentioned.</P><B>Discuss
the role of documentation across phases. </B>
<P>Documentation for the current phase of the current version of the
product should be completed before the next phase begins, ideally by the
same individuals who worked on the phase. Documentation provides
continuity when personnel changes. Accurate documentation is a necessity
for product development and maintenance. </P>
<P><B>If you were a project manager, what would you do in order to
ensure that good documentation is available?</B></P>
<P>Plan for a thorough documentation process from the beginning.
Schedule time in the plan for writing and maintaining the documentation.
Remind the client that good documentation is a priority for both sides.
Establish or adopt documentation standards and train people in their
use. Use processes and/or CASE technology that facilitate documentation
maintenance and make available online the most recent versions of
documents to all interested parties.</P><BR>
<LI><B>What is maintenance and are there different kinds of maintenance?
What activities does maintenance involve and what skills does it
require? Describe the different aspects of managing maintenance
including fault reports, CASE technology, and metrics.</B>
<P>Maintenance is any changes to a software product after it has been
accepted by the client. Students should mention and briefly describe
corrective, perfective, and adaptive maintenance. Releases should try
not to mix different types of maintenance. Activities may involve
changes to any aspect of the product's life cycle, including
documentation, and therefore maintainers must have a broad range of
skills in addition to good diagnostic skills.
<P>Students should talk a bit about managing fault reports
(prioritization, workarounds). CASE technology is useful throughout the
process, but version-control and configuration-control tools in
particular will help keep track of the various versions of a changing
product. Fault-tracking systems help with fault management.</P>
<P>Useful metrics are:
<OL>
<LI>number of faults found in total and in a given period
<LI>a classification of faults
<LI>the status of faults
</LI></OL></LI></OL><B><!-- end typing here--></B></TD>
<TD></TD></TR>
<TR>
<TD></TD>
<TD>
<P> </P></TD>
<TD></TD></TR>
<TR>
<TD></TD>
<TD><FONT size=2><BR>© 2000 Carnegie Technology Education. All rights
reserved.</FONT> </TD>
<TD></TD></TR></TBODY></TABLE></BODY></HTML>