Christopher McGuirk

Greenhorn
+ Follow
since Jun 15, 2001
Merit badge: grant badges
For More
Cows and Likes
Cows
Total received
0
In last 30 days
0
Total given
0
Likes
Total received
0
Received in last 30 days
0
Total given
0
Given in last 30 days
0
Forums and Threads
Scavenger Hunt
expand Ranch Hand Scavenger Hunt
expand Greenhorn Scavenger Hunt

Recent posts by Christopher McGuirk

Code snippet and declaration for the Base64Encoder class are below. The only way I can think to simulate Windows integrated security (which worked in JDK 1.1.8 using the Microsoft JVM, but not in the Java 1.3 plugin) is to pull the username and clear text password from the server variables (since we are using Basic authentication) and pass them down to the applet in parameters, then use those credentials to Authorize the URLConnection.
<snip>

// create a URL connection to the servlet
URL action = new URL(servletLoc );
URLConnection url = action.openConnection();
String encoding = "username:thepassword";
encoding = new Base64Encoder().encode(encoding.getBytes());

url.setRequestProperty("Authorization", "BASIC " + encoding);
url.setAllowUserInteraction( false );
// get the servlet parameters as an XMl String
String postData = command.getParameters();
// set the URLs attributes
url.setDoInput(true);
url.setDoOutput(true);
url.setUseCaches(false);
url.setRequestProperty("Content-type", "text/xml");
url.setRequestProperty("Content-length", "" + postData.length());
// Write out post data
DataOutputStream out = new DataOutputStream(url.getOutputStream());
out.writeBytes(postData);
out.flush();
out.close();
// get the results into an XML DOMDocument
employeeDoc.loadFromInputStream( url.getInputStream());
</snip>
Here is the Base64Encoder class I am using:
public class Base64Encoder
{
public static final char [ ] alphabet = {
'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', // 0 to 7
'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', // 8 to 15
'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', // 16 to 23
'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', // 24 to 31
'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', // 32 to 39
'o', 'p', 'q', 'r', 's', 't', 'u', 'v', // 40 to 47
'w', 'x', 'y', 'z', '0', '1', '2', '3', // 48 to 55
'4', '5', '6', '7', '8', '9', '+', '/' }; // 56 to 63
public static String encode ( String s )
{
return encode ( s.getBytes ( ) );
}

public static String encode ( byte [ ] octetString )
{
int bits24;
int bits6;
char [ ] out
= new char [ ( ( octetString.length - 1 ) / 3 + 1 ) * 4 ];
int outIndex = 0;
int i = 0;
while ( ( i + 3 ) <= octetString.length )
{
// store the octets
bits24 = ( octetString [ i++ ] & 0xFF ) << 16;
bits24 |= ( octetString [ i++ ] & 0xFF ) << 8;
bits24 |= ( octetString [ i++ ] & 0xFF ) << 0;
bits6 = ( bits24 & 0x00FC0000 ) >> 18;
out [ outIndex++ ] = alphabet [ bits6 ];
bits6 = ( bits24 & 0x0003F000 ) >> 12;
out [ outIndex++ ] = alphabet [ bits6 ];
bits6 = ( bits24 & 0x00000FC0 ) >> 6;
out [ outIndex++ ] = alphabet [ bits6 ];
bits6 = ( bits24 & 0x0000003F );
out [ outIndex++ ] = alphabet [ bits6 ];
}

if ( octetString.length - i == 2 )
{
// store the octets
bits24 = ( octetString [ i ] & 0xFF ) << 16;
bits24 |= ( octetString [ i + 1 ] & 0xFF ) << 8;
bits6 = ( bits24 & 0x00FC0000 ) >> 18;
out [ outIndex++ ] = alphabet [ bits6 ];
bits6 = ( bits24 & 0x0003F000 ) >> 12;
out [ outIndex++ ] = alphabet [ bits6 ];
bits6 = ( bits24 & 0x00000FC0 ) >> 6;
out [ outIndex++ ] = alphabet [ bits6 ];
// padding
out [ outIndex++ ] = '=';
}
else if ( octetString.length - i == 1 )
{
// store the octets
bits24 = ( octetString [ i ] & 0xFF ) << 16;
bits6 = ( bits24 & 0x00FC0000 ) >> 18;
out [ outIndex++ ] = alphabet [ bits6 ];
bits6 = ( bits24 & 0x0003F000 ) >> 12;
out [ outIndex++ ] = alphabet [ bits6 ];
// padding
out [ outIndex++ ] = '=';
out [ outIndex++ ] = '=';
}
return new String ( out );
}
}

[This message has been edited by Christopher McGuirk (edited September 20, 2001).]
22 years ago
I am taking the real exam on Monday and I want to figure out which 2 are wrong first. What does everyone think? Thanks!
IBM Certification Exam Tool
Candidate: Chris MCGuirk
Candidate ID: 53860
Date: Fri Jun 15 23:11:40 EDT 2001
Test Name: Pre-Assessment/Sample Test for Test 486, Object-Oriented Analysis and Design with UML Test

Designs & Implementation Techniques 4 4 100.0
Requirements Modeling 5 5 100.0
Static Modeling 7 6 85.0
Development Process 4 4 100.0
Dynamic Modeling 6 6 100.0
Architecture 4 3 75.0

# Questions: 30 Passing Score: 70.0
Number Correct Needed: 21 Your Score: 93.0
You Answered Correct: 28 Grade: Pass

True or false? When declaring a public method due to an additional message between classes as part of some system functionality, the OOAD UML assets should be updated to reflect this change.

*a) True

b)False
Software entropy is a phenomenon wherein programs begin with well designed state, but as new functionalities are added, they lose their structure. Refactoring of classes is done to avoid software entropy. What are good practices to follow during refactoring?

*a) Renaming a method and moving a field from one class to another should be done in small steps, testing changes as required.

*b) Break down classes that are heavily loaded with responsibilities into smaller classes and distribute the responsibilities among them effectively.

*c) Consolidate similar methods from different classes in the same type hierarchy into a common super class wherever possible.

d) Add functionality and refactor simultaneously in order to obtain an efficient and effective design.

Which of the following are true about implementing a system based on existing OOAD assets?

a) Due to constraints introduced by the target language, such as C++, Smalltalk, or Java, as well as physical packaging, the OO analysis model does not carry forward into detailed design and implementation.

*b) The classes, methods, attributes, and relationships identified during the OO analysis carry forward into detailed design and implementation.

*c) The OO analysis model is usually refactored later in the project.

*d)The classes from the OO analysis are expanded to add private methods and collaborations with helper classes.

A partial class diagram of a college course management application is shown in Figure studentInstructor. A student knows all of the instructors he is registered with. Similarly, an instructor also knows all the students who are registered with him. A new requirement is added which specifies that an instructor can also be a student for some courses. What is the BEST partial application redesign shown in the Figure?
(I forgot the diagram URL, but we all know which one this is <g/>)

a) Design 'A'

b) Design 'B'

*c) Design 'C'

d) Design 'D'

e)Design 'E'

Which of the following details are required in OO diagrams?

a) Show navigability of associations in conceptual class diagrams.

b) Show different scenario of a use case on the same interaction diagram for clear understanding.

*c) Show message sequence numbers in collaboration diagrams.

*d) If asynchronous messages exist in a scenario, show them in interaction diagrams.

Which of the following is the BEST description of the sequence diagram in Figure Interaction? When an instance of a:
http://certify.torolab.ibm.com/figures/test486F19.gif

*a) Person is asked for its assets, it sums the balances of each of its asset Accounts.

b) Customer is asked for its assets, it sums the balances of each of its asset Accounts.

c) Person is asked for its assets, it returns the balance of its asset Account.

d) Customer is asked for its assets, it returns the balance of its asset Account.

What is the BEST model change for the following new requirements in the mortgage processing system? http://certify.torolab.ibm.com/figures/test486F18.gif

a) Add an updateAssessedValue( newValue ) method to the Mortgage class, which uses newValue in collaboration with the Property's tax rates to provide tax amounts.

*b) Add an updateAssessedValue( newValue ) method to the Property class, which uses newValue in collaboration with the TaxingAuthority's tax rates to provide tax amounts.

c) Add an updateAssessedValue( newValue ) method to the TaxingAuthority class, which uses its tax rates to provide tax amounts.

d) Add an updateAssessedValue( newValue ) method to the Property class, which uses its tax notes to provide tax amounts.

Based on the activity diagram in Figure Activity, which activities can occur concurrently?
http://certify.torolab.ibm.com/figures/test486F17.gif

*a) Generate closing paperwork, Schedule closing

*b) Get property appraised, Verify assets, Check credit rating

c) All the activities can occur concurrently

d) The custom servlet name, is used as part of the URL used to invoke it.

In an OO system, it is desirable to assign responsibilities:

*a) relatively evenly across the classes.

b) more heavily in a few controlling classes.

*c)according to interaction diagram messaging.

Which of the following are true about interaction diagrams?

*a) Interaction diagrams are at their best when they deal with one main design flow and not multiple variants that can happen.

*b) Interaction diagrams are good at designing part or all of one use case's functionality across multiple objects.

*c) Interaction diagrams allow the analyst to show iteration and conditional execution for messaging between objects.

*d)Sequence diagrams are logically equivalent to collaboration diagrams, differing primarily in format of presentation.

Which of the following are true about interpreting class diagrams from different perspectives?

a) Specification perspective class diagrams are developed without considering the programming language that might be used to implement it.

*b) The conceptual perspective class diagram of an application would not include all the classes required and their details, rather, they would only identify domain classes.

*c) In the conceptual perspective, associations represent relationships between classes, where as they represent responsibilities in the specification perspective.

d)Operations (the processes that a class knows to carry out) should be used in conceptual models to specify the interface of a class.

A resulting benefit of using polymorphism is reduction of:

a) methods in the associated classes

b) subclasses needed to accomplish the same functionality

*c) case statements and conditionals

d) coupling between classes in the system

In design #1, the Catalog object has a getProducts() method, which returns a collection object, such as a Dictionary or array, containing all the Products the company sells. In design #2, the Catalog object has a getProductNumbered(anIdentifier) method, which returns the Product with the specified unique identifier. Considering the objects returned, which of the following BEST characterizes the two designs?

a) Both designs maintain the objects' encapsulation and reduce coupling by accessing state data via methods only and not directly.

*b) Both designs break the objects' encapsulation, adding brittle coupling.

c)Design #1 breaks the encapsulation of the Catalog, adding brittle coupling. Design #2 maintains the encapsulation of the Catalog, making future design changes easier.

When creating a subclass, the:

a) selected superclass should be chosen because it has some methods the subclass can reuse, even if others do not apply.

*b) class name should normally be a qualification of its superclass' name

*c) subclass should be of the same type as all of its superclasses

d)superclass should be marked as abstract

Refer to the Figure Sample 1. Consider the scenario that eStore.com sells small appliances over the Internet. Currently, the store's catalog includes over 50 appliances from 10 different suppliers. A partial class diagram is shown in Figure Sample 1. If there is a new requirement to restock the warehouse automatically as products are sold, how is the new requirement BEST handled?
http://certify.torolab.ibm.com/figures/test486F9.gif

a) Add "reorderLevel" and "reorderQuantity" attributes used by a new deplete() method in the Inventory class. Use these to generate new orders as InventoryProducts are sold.

*b) Add "reorderLevel" and "reorderQuantity" attributes used by a new deplete() method in the InventoryProduct class. Use these to generate new orders as InventoryProducts are sold.

c) Add a deliver() method to the Supplier class that uses the InventoryProduct's amountOnHand attribute to maintain the InventoryProducts in the warehouse.

d) Add "reorderLevel" and "reorderQuantity" to InventoryProduct. Create a Warehouse class that monitors the InventoryProducts' "amountOnHand", generating an order as levels drop below a "reorderQuantity".

Based on the following CRC card, what methods should Mortgage have?
http://certify.torolab.ibm.com/figures/test486F10.gif

*a) accrue( anAmountOfInterest )

b) calculateInterest( )

*c) apply( aPayment )

*d) getCollateral( )

Referring to the partial class diagram in Figure Qualified Association, which of the following BEST describes the relationship?

http://certify.torolab.ibm.com/figures/test486F12.gif

*a) Access to SalesLineItems is by Product. A SalesTransaction can have multiple SalesLineItems for one Product.

b) Access to Products is by SalesLineItem. A SalesTransaction has zero or more SalesLineItems for one Product.

c) SalesTransactions contain Products, which are listed by one or more SalesLineItems.

d) SalesLineItems are for a quantity of one or more Products for a particular SalesTransaction.

Which of the following are true about software architecture?

a) Two tier software architectures do not scale to as many clients as three+ tier architectures.

b) Two tier architectures lead to more reuse than three+ tier architectures.

c) Thin clients are restricted to GUI parts

*d) Technologies such as CORBA, RMI, DCOM, and Servlets allow multiple clients to work with the same server-based business objects.
Which of the following is true about a deployment diagram?

a) Since there is always some kind of response to a message, the dependencies are two-way between deployment components.

*b) Dependencies between deployment components tend to be the same as the package dependencies.

c) Deployment diagrams are NOT to be used to show physical modules of code.

d) Deployment diagrams do NOT show physical distribution of a system across computers

Valid reasons for grouping classes into the same package are that, the classes:

a) are related by aggregation.

b) are worked on by the same group of developers.

*c) are related by specialization.

*d) support the same high-level services.

Given the dependency in the Figure Packages, which one of the following is correct?
http://certify.torolab.ibm.com/figures/test486F8.gif

a) Changes to the Loan package requires an examination of the Customer and Account packages to see if changes are required to their classes.

b) Changes to the Loan package requires an examination of the Customer package to see if changes are warranted. If they are, the Account package needs to be examined to see if changes are required to its classes.

*c) Changes to the Account package require` an examination of the Customer package to see if changes are warranted. If they are, the Loan package needs to be examined to see if changes are required to its classes.

d) Changes to the packages can be made independently of changes to other packages since dependencies have been localized to each of the packages' internal designs.

What are the system's actors in the diagram, Figure Use Case ?
http://certify.torolab.ibm.com/figures/test486F1.gif

a) Clerk, Manager

b) Clerk, Manager, Customer

*c) Clerk, Manager, Bank network

d) Clerk, Manager, Bank network, Customer

Referring to the "Book a Party" use case in the Figure Book a Party, which of the following is the BEST list of candidate interaction diagrams to support the use case?
http://certify.torolab.ibm.com/figures/test486F6.gif

*a) Find available date, Search for client, View client preferences, Book an event, Calculate cost of event, Generate confirmation letter

b) Find available date, Search for client, View client preferences, Explain menu alternatives, Book an event, Calculate cost of event, Generate confirmation letter

c) Find available date, Search for client, View client preferences, Book an event, Calculate cost of event, Request deposit, Generate confirmation letter

d) Find available date, Search for client, View client preferences, Book an event, Calculate cost of event, Generate confirmation letter, Mail confirmation letter

Which of the following are true about services resulting from use cases?

*a) New requirements in use cases generally result in one or more public methods in a business domain class.

b) Private methods are required by the system's use cases.

*c) Use cases drive the design of interaction diagrams, which in turn define public methods in model classes.

What is wrong with the following analysis use case?
http://certify.torolab.ibm.com/figures/test486F3.gif

*a) There are design details intermixed with the requirements.

b) The actor's actions and system responses are not separated.

c) "Sell goods" is too broad to be a use case.

d) There is nothing wrong with this use case.

Which one of the following is the BEST set of potential use cases for the "Prepare for an Event" scenario in Figure ChefScenario?
http://certify.torolab.ibm.com/figures/test486F4.gif
a) Prepare for party, Display menu, Generate shopping list, Exclude ingredients on hand, Generate utensil list, Generate to do list

b) Prepare for party, Display menu, Generate shopping list, Generate utensil list, Pack utensils, Generate to do list

*c) Display menu, Generate shopping list, Generate utensil list, Generate to do list

d) Display menu, Generate shopping list, Exclude ingredients on hand, Generate utensil list, Generate to do list

e) Generate shopping list, Exclude ingredients on hand, Generate utensil list, Generate to do list, Check utensil list

An iterative development process:

a) represents a structured methodology, which includes functional decomposition.

*b) is a technique for managing complexity and plans for change during software development.

c) is a top-down approach without the dataflow diagrams.

d) is equivalent to an incremental development process.

If a use case had a requirement "Calculate account balance," which OOAD artifact would be the BEST source for determining the name of the public method used to invoke the operation?

a) Use case

*b) Interaction diagram

c) Class diagram

d) Activity diagram

True or false. Ideally, all public methods in business model objects are defined directly or indirectly because of a use case requirement.

*a) True

b)False

Scheduling project activities such as functional increments and test case development, which one of the following OOAD artifacts is the MOST useful?
*a) Use cases

b) Interaction diagrams

c) Activity diagrams

d) Package diagrams

e) Class Diagrams

------------------
----------------
Chris McGuirk
MCSD, SCPJ2
[This message has been edited by Christopher McGuirk (edited June 15, 2001).]