Object-Oriented Analysis & Design: COSC 5010 Webster University Dr. Mike Moody
Object-Oriented Analysis & Design: COSC 5010 Webster University Dr. Mike Moody
Assignment #1
TEXTBOOK EXERCISES
Chapter 1: Introduction
1.5 All objects have identity and are distinguishable. However, for large collections of objects, it may not be a trivial matter to devise a scheme to distinguish them. Furthermore, a scheme may depend on the purpose of the distinction. For each of the following collections of objects, describe how they could be distinguished: a. All persons in the world for the purpose of sending mail.
Country; state or province; city; street and number; apartment, suite, or mail drop; name (ie, USA -> Florida -> Orlando -> 633 N Orange Ave -> Mail Point 85 -> Mark Zieg) Known aliases, fingerprints, photo, results of restriction-enzyme DNA tests (ie, Andrew Wiggen, AKA Ender Wiggen, AKA Xenocide) Box number (ie, 1258) National code, local exchange (area code), local number (ie, 10-104 (407) 420-6072) Area code, telephone number (ie, (407) 420-6072) Server domain or IP, account name (ie, [email protected]) Department; clearance level; name, social security number, or employee number (ie, SYSTEMS-L152072)
b.
c.
All customers with safe deposit boxes in a given bank. All telephones in the world for making telephone calls. All customers of a telephone company for billing purposes. All electronic mail addresses throughout the world. All employees of a company to restrict access for security purposes.
d.
e.
f.
g.
1.7
There are two lists below. The first is a list of classes that describe implementation objects. The second is a list of operations. For each class, select the operations that make sense for the objects in that class. Discuss the behavior of each operation listed for each class. Classes: Variable length array symbol table set Operations: append copy count delete index intersect in s e r t u p d a te
ordered collection of objects, indexed by an integer, whose size can vary at run-time a table that maps text keywords into descriptors unordered collection of objects with no duplicates
add an object to the end of a collection make a copy of a collection return the number of elements in a collection remove a member from a collection retrieve an object from a collection at a given position determine the common members of two collections place an object into a collection at a given position add a member to a collection, writing over whatever is already there
A variable length array would make effective use of the following operations: append, copy, count, delete, index, insert, and update. The only operation which wouldnt make a great deal of sense would be intersect. The append operation makes sense because the ordered nature of the array presupposes a beginning and an end. The append operation would allow object users to easily add something to the end of the array, in the manner of a queue or other common data structure. Copy makes sense with any object, because multiple object instantiations are frequently found in many common applications. Count makes since because it provides a bound to the index range, although the question didnt specifically mention that the indexes had to be sequential or positive values. Delete is another natural operation, especially when parameterized with a beginning, end, or [index] indicator. Index would be essential in order to access various elements. Insert would be a more flexible version of append, and indeed under some interfaces render it unnecessary. Update would be important in any application in which data needed to be modified without going through a delete/insert sequence. Intersect could readily be provided if really desired, but I havent had much call do use such an operation on an ordered array. A symbol table uses a somewhat smaller set of operations. Here, copy, delete, intersect, and update are the most likely candidates. Again, copy is universally popular. Update, in the sense of an unordered insert, would be necessary to propagate the table, and delete would be necessary to flush unnecessary values. Intersect somehow sounds more likely for this class than for array, because you certainly need to compare elements of symbol tables when linking libraries and object code. Some sort of operation to retrieve or read an entry would also be necessary, although I wouldnt call it index, which suggests an ordered position rather than a key value. Append, index, and the ordered insert make less sense because they provide implementation-specific details which arent necessary and contradict the tenets of OOD. Count could perhaps be useful in certain systems, but many could do perfectly well without it. Finally a set could use copy, count, delete, intersect, and update operationsalmost the same list as a symbol table, and for similar reasons. Copy is universal (as long as you give due credit to your source :-) Update (unordered insert) and delete are fundamental to all collections, and count is just plain handy to have around. Once again, some sort of read or retrieve operation would be nice to have available, but index has all the wrong connotations. You could have delete return an item, I suppose. On the other hand, append, index, and insert violate the premise of unorderedness. And having a set class without intersect (as well as union) just wouldnt be proper. Chapter 2: Modeling as a Design Technique
2.2 Suppose your bathroom sink is clogged and you have decided to try to unclog it by pushing a wire into the drain. You have several types of wire available around the house, some insulated and some not. Which of the following wire characteristics would you need to consider in selecting a wire for the job? Explain your answers. a. Immunity to electrical noise
Makes no sense. There is precious little electricity running through household sinks, and if there is any you should unplug it before performing maintenance anyway. Doesnt merit a response (unless the plumber in question was severely colorblind :-) Shouldnt be a factor; most indoor faucets these days are of the freshwater sort, which is a pity because you can catch some nice sea bass in the saltwater variety.
b.
c.
d.
Would be something to consider, except that when I have a fire in my sink plumbing, my first response is to turn on the tap for a few minutes. The second is to cut back on my caffeine intake. This might actually be a genuine issue. I certainly wouldnt lop off a loop of premium co-ax when a twisted coat-hanger will do. Of key importance, since it does no good to shove a line down a tube if it only loops back and runs out the top again. Maybemaybeif you have porcelain piping, or thin copper, or some other material that might be easily scratched by contact with open metal. Only inasmuch as wire weight is frequently proportional to stiffness (cf 2.2f). Well, gee, if it isnt there, you cant very well use it, can you? Depends on the strength being measured. Compression-strength would matter, provided the wire was sufficiently stiff to not bend first. However, stretch-strength shouldnt matter unless you were trying to hook the clog and drag it back out. Cf 2.2d, fire. Unless, one might speculate, the household bathroom in question backed up against a forge in the garage. Cf 2.2i
e.
Cost
f.
Stiffness
g.
h.
Weight
i.
Availability
j.
Strength
k.
l.
Resistance to stretching
2.4
If you were designing a protocol for transferring computer files from one computer to another over telephone lines, which of the following details would you select as relevant? Explain how your selected details are relevant: a. Electrical noise on the communication lines
Definitely. High levels of noise should be met by a protocol feature to renegotiate the bit rate to a lower bandwidth, allowing more signal samples per bit transmitted. This would be necessary if the designer desired the protocol to be sufficiently generalized to be used in a heterogeneous environment in which DTEs supporting different ranges of connection rate were expected to communicate. Not unless you want a really flexible log file.
b.
The speed at which serial data is transmitted, typically 300, 1200, 2400, 4800, or 9600 bits per second
c.
d.
This wouldnt necessarily impact the protocol itself, but I wouldnt be caught dead designing anything without a good full-screen editor (say, BBEdit, Brief, or UltraEdit). So for me, this is a definite requirement. Only if you start with the unreasonable expectation that the data sent will actually resemble the data finally received. This information should all be politely swept under the rug by the file system. This would be a very good idea if the designer wished to send binary files, or even 8-bit ANSI text. As I understand it, some early and crude file-transport protocols did seem to care about this, but almost all modern protocols are transparent in this regard. Not unless you wanted to bundle in a bizarre and computationally-expensive compression scheme (although I can envision a few security encodings that could benefit from an FPU).
e.
Buffering and flow control such as an XON/XOFF protocol to regulate an incoming stream of data Number of tracks and sectors on the hard and/or floppy drive Character interpretation such as special handling of control characters File organization, linear stream of bytes versus record oriented, for example Math co-processor
f.
g.
h.
i.
(Person)
a grandmother
(Person)
a grandfather
child
child
(Person)
an aunt
Sibling
(Person)
your father
Mate
(Person)
your mother
child
child
child
(Person)
a cousin
Cousin
(Person)
you
Figure E3.4
Class Diagram:
Person
Name Birthday child Mate Cousin Sibling
3.15
Prepare object diagrams showing at least 10 relationships among the following object classes. Include associations, aggregations, and generalizations. Use qualified associations and show multiplicity balls in your diagrams. You do not need to show attributes or operations. Use association names where needed. As you prepare the diagrams, you may add additional object classes. a. school, playground, principal, school board, classroom, book, student, teacher, cafeteria, restroom, computer, desk, chair, ruler, door, swing
School Board
sit-on appoints
Board Member
Superintendent
appoints
Principal
governs
Restroom
Cafeteria
Classroom
Desk
sits-at
Student
book #
Book
is-issued
Ruler
Chair
Computer
A School Board is composed of five elected Boardmembers, who then appoint a Superintendent. The Superintendents chief duty is to hire and assign Principals to individual Schools. Each School has Rooms, Students, Desks, a Principal, and perhaps a Playground. If it has a Playground, the Playground can have Swings and/or Slides. Rooms may be Restrooms, Classrooms, or Cafeterias. Any Room may have Restrooms attached, although in a pinch one Restroom may service several Rooms. Desks are placed in Classrooms and seat Students. Desks each have a Chair, and some have Rulers and/or Computers. Students are issued Books, which are tracked by their book #.
b.
castle, moat, drawbridge, tower, ghost, stairs, dungeon, floor, corridor, room, window, stone, lord, lady, cook
Cook Drawbridge
retains
crosses
Lady
Moat
Window
weds
Corner
Lord
rules
Castle
Door
Wall
Ghost
haunts
jo
in
Room
Floor
Stone
Furniture
Ceiling
contains
Tapestry
Bed
Table
Tower
Dungeon
Cooridor
Stairs
A Lord may rule Castles and wed Ladies. Each Lady may have a staff including Cooks. A Castle has Rooms and may have a Moat. Moats must have at least one Drawbridge to permit crossing. Rooms can be Corridors, Dungeons, or Towers, and each may be haunted by a Ghost. Towers contain other Rooms, while Corridors may or may not have Stairs. Each Room has a Floor, Walls, and may have a Ceiling and may be Furnished. Each Wall may be joined to other Walls at Corners, and the number of Walls is not limited (a Tower may have only one Wallround whereas the Room atop a Tower may have no walls at all, only a Floor). Floors, Walls, and Ceilings are all made of Stones. Each Ceiling may be also a Floor to another Room. Walls may have Windows and Doors. While one Room may have several Doors, each Door connects exactly two Rooms. Furniture can include a Tapestry, a Bed, or a Table.
Door
Body
Gas Tank
Automobile
Power Train
Steering System
Braking System
Engine
Transmission
Wheel
Brake
Brake Switch
Brake Light
Exhaust System
Electrical System
Muffler
Pipe
Starter
Battery
Alternator
Figure E4.1
Door Body Gas Tank
Automobile
Power Train
Steering System
Braking System
Engine
Transmission
Wheel
Brake
Brake Switch
Brake Light
Exhaust System
Electrical System
Muffler
Pipe
Starter
Battery
Alternator
Note my object model allows multiple gas tanks, since many vans and trucks have that feature.
4.2
Figure E4.2 is a partially completed object diagram for an interactive diagram editor. A sheet is a collection of links and boxes. A link is a sequence of line segments that connect two boxes. Each line segment is specified by two points. A point may be shared by a vertical and a horizontal line segment in the same link. A selection is a collection of links and boxes that have been highlighted in anticipation of an editing operation. A buffer is a collection of links and boxes that have been cut or copied from the sheet. As it stands, the diagram does not express the constraint that a link or a box belongs to one buffer or one selection or one sheet. Revise the object diagram and use generalization to express the constraint by creating a superclass for the classes Buffer, Selection, and S h e e t . Discuss the merits of the revision.
Line Segment
1,2
Point
Line Segment
1,2 2
Point
Buffer
Selection
Sheet
The main benefit is the inheritance of attributes, operations, and associations from the superclass (set) to the subclasses (buffer, selection, sheet). A single constructor or destructor can now apply to all sets, and the structures for links and boxes will be prebuilt for each set. This saves a lot of coding time and reduces potential for error. Also, common operations like copy, cut, and paste can be shared, as well as typical traits like size, dimensions, and object-count. Chapter 5: Dynamic Modeling
5.1 Write scenarios for the following activities: a. Moving a bag of corn, a goose, and a fox across a river in a boat. Only one thing may be carried in the boat at a time. If the goose is left alone with the corn, the corn will be eaten. If the goose is left alone with the fox, the goose will be eaten. Prepare two scenarios, one in which something gets eaten and one in which everything is safely transported across the river.
Scenario #1 Step 1: Step 2: Error State: Scenario #2 Step 1: Step 2: Step 3: Step 4: Step 5: Step 6: Step 7: Final State:
b.
The user takes the Fox across the river. The Goose eats the Corn. Something was eaten.
The user takes the Goose across the river. The user returns alone. The user takes the Fox across the river. The user returns with the Goose. The user takes the Corn across the river. The user returns alone. The user takes the Goose across the river. Everything has been taken safely across.
Getting ready to take a trip in your car. Assume an automatic transmission. Dont forget your seat belt and emergency brake.
Step 10: Step 11: Step 12: Step 13: Step 14: Step 15: Step 16: Step 17: Step 18: Final State:
c.
Make sure the user has keys with them. Lock the home or office being left. Travel to the car. Walk once completely around the vehicle to make sure there are no children or toys behind the car. Use the remote to disable the security system. Unlock the drivers-side door. Enter the vehicle. Close the door. If the previous driver was of a different shape or height, adjust seat and steering wheel positions and realign mirrors. Connect seat belt. Place key in ignition. Turn key, applying modulated pressure to the accelerator if necessary. Engine starts. Release key. Lower the radio volume; make mental note to yell at kids. Apply foot-brake. Release emergency brake. Move gear to Reverse or Drive, depending on how the vehicle was last parked. Ready to take trip.
Press the up button. Button lights up. Wait for elevator. Elevator door opens, with two passengers visible inside. Man gets out. Woman inside asks, Going down? Indicate to the negative, grind teeth. Door closes. Wait, tapping toe impatiently.
Step 16: Step 17: Step 18: Step 19: Step 20: Step 21: Step 22: Final State:
d.
Door opens, ugly man visible inside. Enter elevator. Door closes. Note that top floor button is already lit. Press button anyway in a fit of pique. Wait while elevator slowly climbs, inhaling the fragrant body odor of offensive companion. Elevator stops at top floor. Door opens. Crowd of loud, cigar smoking executives immediately shove into elevator, cramming the user into the back despite protests. Imperious executive presses the Lobby button. Door closes. Ugly companion turns to user and asks if he frequents this elevator often. Elevator begins to descend. User successfully used the elevator to ride to the top floor.
Operation of a car cruise control. Include an encounter with slow moving traffic that requires you to disengage and then resume control.
Step 8: Step 9: Step 10: Step 11: Step 12: Step 13: Step Step Step Step Step Step Step 14: 15: 16: 17: 18: 19: 20:
Press the button to activate cruise control system. Green light comes on to indicate cruise control available. Use accelerator or brake to carefully modify speed to desired velocity, ideally 10% above posted speed limit. Press the button to set the cruise control. Blue light comes on to indicate cruise control is active. Remove foot from accelerator. Roll down the window and enjoy the wide-open spaces and fresh air of the Florida Turnpike. When approaching Toll Booth, disengage cruise control by pressing brake pedal. Blue light turns off. Breeze through E-Pass lane, smiling airily at frustrated tourists groping for change. Re-engage cruise control and allow car to resume established speed. Blue light comes on. Hum merrily along to light classical music wafting from the transmitters of WMFE 90.7. When approaching Exit 259, disengage cruise control by pressing brake pedal. Blue light turns off. Take exit ramp to I-4. Decelerate further to merge with morning rush hour. Decelerate further when gawkers pause to stare at a fender-bender. Come to a complete halt at the overwhelmed 408 exchange. Grind teeth, learn to hate life, and wonder tiredly whether you will ever see the blue light again. Angrily turn off cruise control system, change radio to depressing Country & Western K92-FM. Green light turns off. Green light stays off. Imminent Road Rage.
5.2
Some combined bath-showers have two faucets and a lever for controlling the flow of the water. The lever controls whether the water flows from the shower head or directly into the tub. When the water is first turned on, it flows directly into the tub. When the lever is pulled, a valve closes and latches, diverting the flow of water to the shower head. To switch from shower to bath with the water running, one must push the lever. Shutting off the water releases the lever so that the next time the water is turned on, it flows directly into the tub. Write a scenario for a shower that is interrupted by a telephone call.
Step 1: Step 2: Step 3: Step 4: Step 5: Step 6: Step 7: Step 8: Step 9: Step 10: Step 11: Step 12: Step 13: Step 14: Step 15: Step 16: Step 17: Step 18: Step 19: Step 20: Step 21: Step 22: Step 23: Step 24: Step 25: Final State:
Fetch cordless phone. Fetch large ziplock bag. Place phone in bag, with antenna poking through small hole in corner. Seal bag. Strip. Turn on hot faucet to 75% flow. Turn on cold faucet to 25% flow. Wait for hot water to flow from solar panels on roof. Test temperature. Decrease hot flow by 10%. Test temperature. Smile happily. Decide to use toilet. Flush. Reach into shower and flip lever to showerhead position. Step into shower. Scream. Jump back out of shower. Wait until toilet tank finishes refilling from cold water pipes. Gingerly test temperature. Sigh with relief. Re-enter shower. Lather hair. Phone rings. Smiling in satisfaction at your paranoia, reach out of shower and pick up waterproofed phone. Clean and Communicating.
5.4
An extension ladder has a rope, pulley, and latch for raising, lowering, and locking the extension. When the latch is locked, the extension is mechanically supported and you may safely climb the ladder. To release the latch, you raise the extension slightly with the rope. You may then freely raise or lower the extension. The latch produces a clacking sound as it passes over the rungs of the ladder. The latch may be reengaged while raising the extension by reversing direction just as the latch is passing a rung. Prepare a state diagram of an extension ladder.
Rope
raise
Sl
lower
ut
se rai
rais
ed
Ta
R ope
in
g Run
nlo ked c
Up
rais
e
electrical parameters electrical analysis voltage, frequency electrical torque mechanical analysis
temperature
sp ee d
thermal parameters thermal analysis ambient temperature air flow fan analysis
Figure E6.1
fan torque
losses
lower
Lock
ed
ack
lower
L ock
Pas
load characteristics
The model shown is a data flow diagram for an electrical motor diagnostic analysis. There are four analyses which must be determined: the electrical system, the mechanical system, the fan subsystem, and a thermal analysis. Each of the analyses directly or indirectly contribute to the studies of the other systems. The electrical analysis takes values from the applied voltage and signal frequency, as well as other electrical parameters. It also takes speed data from the mechanical analysis and temperature results from the thermal analysis. In turn, it produces an electrical torque reading which is used for subsequent mechanical analyses and a losses value for ongoing thermal analysis. Likewise, the mechanical analysis receives load characteristics and, together with fan torque data from the fan analysis and electrical torque data from the electrical analysis, computes speed information which is returned to the electrical and fan analyses. The fan analysis uses this speed data to refine its computations and produces an air flow result for the thermal analysis (as well as returning fan torque data to the mechanical analysis). Finally, the thermal analysis takes the air flow data from the fan analysis, the electrical loss data from the electrical analysis, as well as thermal parameters and ambient temperature readings from outside the system, and creates the temperature data used by the electrical analysis.
6.5 Prepare a data flow diagram for computing the mean of a sequence of input values. A separate control input is provided to reset the computation. Each time a new value is input, the mean of all values input since the last reset command should be output. Since you have no way of knowing how many values will be processed between resets, the amount of data storage that you use should not depend on the number of input values. Detail your diagram down to the level of multiplications, divisions, and additions.
Divide
al b Tot y
Count
Incre
ment C
Ou
Add
lue to Va
Store
sult in Re
Get
Res et
Store
Store
ro t Ze o
Value
ount
M tput e
Mean
an
Total
Next In
put
Zero to
Total
Count
Many of the principles of object-oriented analysis and design could be applied to fields beyond computer programming. Two such fields are structural engineering and educational curriculum development. Each of these fields involves analyses and planning of large-scale projects involving many sub-processes and components that must interact together in complex patterns and which often share similar traits and operations. Object-oriented tools such as the OMT model could be applied to manage complexity and help visualize, track, and quality-test component relationships in a scaleable and comprehensible manner. Structural engineering, for instance, is often called into play in the design, analysis, and construction of large office buildings such as the new Orlando Courthouse facility. Each building is composed of many rooms, hallways, columns, etc, with a great many infrastructure systems embedded into the walls, floors, and ceilings. These systems include climate control, plumbing, data communications, and many other underlying frameworks. The number of systems which must be understood to design, analyze, and build a single room of a single building would be overwhelming for the most educated architect, laborer, or electrician. However, object-oriented modeling would allow each subsystem to be logically isolated from the others, with the few instances of interaction clearly called out for implementation or study. Educators often face similarly complex decisions when developing an instructional curriculum, especially in the interdisciplinary and holistic environment encouraged today by educational theorists. An individual lesson should contain elements of literature and composition, mathematical reasoning skills, draw from a broad body of scientific knowledge, and be presented within an appropriate historical context. Meanwhile, the activities themselves should be executed in a systemic framework involving a lively lead-in with ties to previous lessons, content instruction, guided practice, individual or group practice, evaluation, and review. Many teachers find themselves prematurely gray after trying to effectively meet each of those state-mandated goals within 40-minute class periods, a forty-hour week, and little or no instructional budget. By incorporating elements of object-oriented analysis and design, teachers could more easily and quickly produce well-rounded and effective lesson plans. Object inheritance could help provide common delivery characteristics, state diagrams could help manage the flow of activities and materials among dozens of students, and object models employing generalization and aggregation could help students and teachers visualize connections between different content areas. Through careful application of object-oriented analysis and design methodologies, professionals in a wide variety of fieldsincluding education and structural engineering, but also cosmologists, psychology, neonatal child care, and hundreds of other complex subjectscan better comprehend the myriad entities they must deal with and more accurately anticipate the relationships between them. Chapter 8: Analysis
8.3 Rephrase the following requirements to make them more precise. decisions posing as requirements: b. Remove any design
A system for automating the production of complex machined parts is needed. The parts will be designed using a three-dimensional drafting editor that is part
of the system. The system will produce tapes that can be used by numerical control (N/C) machines to actually produce the parts.
A system for automating the production of arbitrarily shaped machined parts is needed. The design environment will provide advanced visualization and object-manipulation tools to the editor. The drafting editor will design the parts in a graphical environment in which views can be controlled to accurately display objects at any ratio between 10,000:1 and 1:100 scale, from any virtual position and at any angle. The system must be able to provide such views in either wireframe, filled plane, or light-rendered mode, and should correctly portray the visual characteristics of typical materials including steel, glass, and a range of polymers. All views must be storable for later retrieval or printing. The editing environment must allow full manipulation of virtual object surfaces and should for efficiency provide a template library of typical objects (sphere, cube, torus, sheet, etc). The user should be able to add new objects to the library to speed creation of similar widgets, and should be able to store and retrieve an arbitrary number of widgets. After design, the widgets may be output to a different system which will actually produce the parts. Finally, the system should be sufficiently scaleable so that additional storage or computational capacity may be added as needed. There should be a facility for moving widgets between similar systems if we acquire additional units.
c. A desktop publishing system is needed, based on a WYSIWYG philosophy. The system will support text and graphics. Graphics include lines, squares, boxes, polygons, circles, and ellipses. Internally, a circle is represented as a special case of an ellipse and a square as a special case of a box. The system should support interactive, graphical editing of documents.
A full pagination system is required which will allow digital development of all aspects of a broadsheet daily newspaper. Editors, reporters and columnists, illustrators, photographers, and advertising and classified staff will use the system to combine their individual elements into a completed newspaper ready for imaging. The system must be graphical in nature so that illustrations and photographs may be accurately visualized on a page, and proportional multi-face type will be rendered on screen as it will appear on the final printed product. Sophisticated color matching and calibration will be essential so that elements coming from different sources will be correctly displayed on a variety of 3rd-party monitors. Color matching will also be of paramount importance at the printed stage, so that differing hues of paper stock, from brown newsprint to white high-gloss, can be used successfully. A comprehensive routing capability should be used throughout, so that editors can create layouts, content producers can fill in their elements, editors can review the composition and return it repeatedly for correction, then route the approved document to preflight and press. Text elements should be capable of containing an arbitrary amount of type set in PostScript Type 1 fonts. A third-party H&J (hyphenation and justification) engine may be accessed to set the type accurately and quickly. Graphic elements may be either TIFF, Scitex-CT, or EPS images. Some sort of frame or region interface should be provided, allowing editors to layout a page before specific content is available. These layouts should be reusable so that old layouts can have new content (images, text) flowed into them. Some sort of identification system should thereby be provided to record the position, shape, intended contents, and other key attributes of each region.
There may be a distinction between basic elements which can be created and edited directly within the system and advanced elements which require the use of a third party program such as Microsoft Word, Adobe Photoshop, or Macromedia Freehand. Basic text entry, editing, and type styling should be feasible within the layout system, but advanced features such as spell-checking, outlining, etc may be left to an outside program. Likewise, basic graphic elements such as lines and hollow or filled boxes, polygons, and ellipses should be accessible within the layout program, but more advanced options like soft drop-shadows and morphing may be relegated to an outside system. It is essential that, once data is entered into the system, it should be accessible by outside programs through a published API. For instance, an outside program should be able to call up the full text of every story, together with associated images, and extract them to repurpose for online publishing. With respect to printing, the system should automatically position pages for side-by-side folded duplex imaging, so that a sample 4-page run would actually print one duplex broadsheet with pages 4 and 1 on one side and 2 and 3 on the inside. Finally, an automated archive and integrated version-tracking application should maintain a log of accesses and modifications by user, date, and story, and automatically archive each paper in a fulltext searchable format to a reliable and cost-effective media such as CD-R.
e. A system for distributing electronic mail over a network is needed. Each user of the system should be able to send mail from any computer account and receive mail on one designated account. There should be provisions for answering or forwarding mail, as well as saving messages in files or printing them. Also, users should be able to send messages to several other users at once through distribution lists. Each computer on the net should hold any messages destined for computers which are down.
A system for distributing electronic mail over a network is needed. Each user of the system should be able to send mail from any computer account and receive mail on one designated account. There should be provisions for answering or forwarding mail, as well as saving messages in files or printing them. Also, users should be able to send messages to several other users at once. The system should be sufficiently fault-tolerant that undelivered messages will not be lost if the destination account is temporarily malfunctioning or otherwise unavailable.
Assignment #2
BANK SYSTEM
A bank needs a system to keep track of customers, accounts, and safe deposit boxes. Customers will maintain their accounts by making requests of cashiers, who then enter each transaction into a terminal. The cashiers are responsible for accepting or dispensing any monies as directed by the system, and provide access to safe deposit boxes. A customer may have multiple accounts, and may have a single safe deposit box. An account may be a share account, a certificate of deposit, or a loan. All accounts generate interest at specific compounding intervals. Besides opening new accounts and closing old ones, customers may check the balance of any open account or request a transaction history. Share accounts are built up through deposits and must be either draft accounts, which allow customers to write, cancel, or order checks, or savings accounts, which only permit simple withdrawals. In contrast, certificates of deposit are meant to be redeemed at a specific maturity date, and increase in value until then. They can be set to automatically rollover to new accounts after they mature, and they can be cashed out early at their current value, minus a redemption fee. Loans are of a specific amount, and remain open until the entire principal owed is remitted in installments no less than the specified minimum payment. The bank tracks the accumulated interest paid and the outstanding balance, although the customer may be allowed to refinance the loan terms. Some loans are home mortgages, which can have variable interest rates, and must be guaranteed by a mortgage insurer. If the customer defaults, the bank may recoup its losses by repossessing the house for liquidation at its assessed value. The bank also offers college loans, whose terms can depend on various federal programs for which the customer may qualify.
Project
Module
BANK SYSTEM
Model Object Functional Description Dynamic Problem Sheet
MAIN
Rev Date
12/7/97
This is the Problem Statement for a Bank System which tracks customers, accounts and safety deposit boxes.
Terminal Cashier
Uses
Acct #
Accesses
Account Transaction
Interest_Rate Compound_Period Balance Open Close Check_Balance Request_History
Dispense_Cash Accept_Money
Retreives
Bank
Employs Has Talks To
Holds
Customer
Name Address Create Box # Rents
Has Acct #
Share
CD
Maturity_Date Purchase_Price Premature_Redeem_Fee Auto_Rollover Cash_Out
Loan
Loan_Amt Cum_Interest Min_Payment Make_Payment Refinance Calc_Principal_Owed
Safe_Deposit_Box
Make_Deposit
Assign
Draft
Saving
Withdraw
Mortgage
Variable_Rate Mortgage_Ins Assessed_Value Repossess
College
Federal_Programs
Project
Module
BANK SYSTEM
Model Object Functional Description Dynamic Problem Sheet
MAIN
Rev Date
12/9/97
This is the Object Model for a Bank System which tracks customer accounts and safety deposit boxes.
Terminal
enter data
do: request transaction kind [enter balance inquiry] [enter deposit / withdrawal]
display results
Project
Module
BANK SYSTEM
Model Object Functional Description Dynamic Problem Sheet
MAIN
Rev Date
12/7/97
Cashier
The customer asks the cashier for an account balance on savings account 1069. The cashier enters the request into a terminal. The terminal contacts the account through a transaction. The account returns the account balance of $249.63. The terminal outputs the result to the cashier. The cashier tells the balance to the customer. The customer requests a $100 withdrawal from the same account. The cashier enters the request into the terminal. The terminal contacts the account through a second transaction. The account determines that sufficient funds exist and returns an "OK". The terminal outputs an OK to the cashier. The cashier dispenses $100 to the customer.
requests balance
enters request
attempts transaction
outputs result
returns result
attempts transaction
dispense cash
return OK
Customer
Terminal
Cashier
Scenario #2 (Exception) The customer requests a $900 withdrawal from the same account. The cashier enters the request into the terminal. The terminal contacts the account through a second transaction. The account determines that sufficient funds do not exist and returns an error. The terminal outputs an error to the cashier. The cashier informs the customer that the account does not have enough funds to Project
Model
request withdrawal
attempts transaction
deny request
return error
Module
BANK SYSTEM
Object Functional Description Dynamic Problem Sheet
MAIN
Rev Date
12/7/97
These are two sample scenarios and event traces simulating user interaction with the system.
Account
Account
Scenario #1 (Normal)
Terminal
req
ue
Cashier
acc me ount i ssa nfo ges ,
Customer
Bank System
Cashier
req
ts es
Customer
read inputs
generate outputs
perform transaction
BANK SYSTEM
Model Object Functional Description Dynamic Problem Sheet
ba
la
nc
Account
MAIN
Rev Date
12/7/97
This is the Context DFD and Level 0 DFD for the Bank System.
req
ts es
,c
as
Cashier
Customer
display results
enter inputs
n tio ac ns s t tra #, oun ct ac e, am typ
acc me ount ssa info ge s ,
account info, messages
generate outputs
nce
acc
Terminal
ou ac ct #, typ e, am
t#
compute balance
bala
update account
nge
nt
open account
Account Database
Project
cha
t un co Ac er w mb Ne Nu
Module
BANK SYSTEM
Model Object Functional Description Dynamic Problem Sheet
MAIN
Rev Date
12/7/97
This is the Level 1 Data Flow Diagram showing Level 1 processes substituted into the Level 0 DFD.
Main
Level 0
read Inputs process transaction generate outputs
Level 1
customer makes requests of cashier cashier enters into terminal open account update account compute balance terminal displays results to cashier cashier relays results to customer
Level 2
generate new account number creates account add interest deduct fees
add deposit
make withdrawal
Project
Module
BANK SYSTEM
Model Object Functional Description Dynamic Problem Sheet
MAIN
Rev Date
12/7/97
Assignment #3
HYPERTEXT SYSTEM
A simplified hypertext system is needed which will allow browsers to navigate through linked web pages. Pages will be hosted on a web server, may include GIF and JPEG graphics, and may include links to other resources. The system should support concurrent browsers and current accesses to the same resource. The user may view a web page or image by specifying a URL (Universal Resource Locator). The browser will then send the URL to the appropriate web server in the form of an HTTP request. The server should accept the request and return the requested resource. If the resource was an HTML page including image tags, the associated images should be returned to the browser as well. The browser should then render the page as described by the tags. If the user clicks on a link within the displayed web page, the browser should send a new HTTP request to the server to retreieve the linked resource. Pages will be written in a subset of the HTML markup language. Supported tags are limited to <A HREF> and <IMG SRC>. <A HREF> tags link to the URL of other resources. <IMG SRC> tags indicate that a specific image should be passed to the browser along with the enclosing HTML file. Beside HTML tags, individual web pages may also contain body text. GIFs may be transparent, include GIF89a animations, or be saved with a specific palette. JPEGs may be progressive and are saved at specific compression ratios.
Project
Module
HYPERTEXT SYSTEM
Model Object Functional Description Dynamic Problem Sheet
MAIN
Rev Date
12/7/97
Browser
communicates with
HTTP Server
File
URL
Image
Web Page
contains
GIF
transparent GIF89a Palette
JPEG
Progressive Compression Ratio
Word
HTML Tag
Body Text
loads
<A HREF>
links to URL
Project
Module
HYPERTEXT SYSTEM
Model Object Functional Description Dynamic Problem Sheet
MAIN
Rev Date
12/7/97
This is the Object Model for a HyperText System which allows uses to browse linked web pages.
Browser
user launches browser
Ready
Get Resource
do: send HTTP request to web server
Render
do: Display returned resources on the monitor server returns an error or timeouts
Error
do: display 404 error message
Web Server
boot receive HTTP request ( URL )
Ready
file not found
shutdown
Error
do: return 404 error message found image tag
do: scan web page do: transmit web page no images found
Project
Module
HYPERTEXT SYSTEM
Model Object Functional Description Dynamic Problem Sheet
MAIN
Rev Date
12/7/97
These are the state diagrams for a browser and a web server.
Scenario #1 (Normal)
User
Browser
Web Server
The user tells the browser to open page "HelloWorld.html" on server "Webster.edu" The browser sends an HTTP request to Webster.edu. The Webster.edu server accepts the requests and scans file HelloWorld.html. The Webster.edu server sends the file HelloWorld.html back to the browser. The Webster.edu server sends the file Logo.gif back to the browser. The browser renders the page. The user clicks on a link to the file "Index.html" on the server "Yahoo.com". The browser sends an HTTP request to Yahoo.com
displays Logo.gif
Scenario #2 (Exception) The user tells the browser to open page "HelloWorld.html" on server "Webster.edu" The browser sends an HTTP request to Webster.edu. The Webster.edu server accepts the request. The Webster.edu server cannot find the file HelloWorld.html. The Webster.edu server returns an error message to the browser. The browser displays an error message to the user.
Project
Module
HYPERTEXT SYSTEM
Model Object Functional Description Dynamic Problem Sheet
MAIN
Rev Date
12/7/97
These are two sample scenarios and event traces simulating user interaction with the system.
User
gra phi ca vie l pag ws e
sts
pag
es
HyperText System
User
HTTP requests
gra rend e err phica red or l vi me e ssa ws, ge s
Browser
HTML files, GIF and JPEG images
Web Server
Project
Module
HYPERTEXT SYSTEM
Model Object Functional Description Dynamic Problem Sheet
MAIN
Rev Date
12/7/97
This is the Context DFD and Level 0 DFD for the HyperText System.
Main
Level 0
get input retrieve resource display output
Level 1
type into browser click on link request from server determine files to send send files to browser render web page and graphics display error message
Level 2
find file scan web page draw text place image
transmit file
Project
Module
HYPERTEXT SYSTEM
Model Object Functional Description Dynamic Problem Sheet
MAIN
Rev Date
12/7/97
Assignment #4
A school district needs a work-order system to help track computer repairs. Each work order is reported by a school-based technology manager. After being reported, the order is routed to the District Support Manager, who assigns it to a technician. Orders are tracked by date, technician, computer, and facility for cost auditing. The initial problem and final solution to each order are also retained to help solve future orders. Each technician can be assigned several orders at once, and each technology manager can have several open orders. Each school owns many computers, but only has one technology manager. A separate order is always filed for each computer involved in a problem, and a new order is opened with each reoccurance of the problem. New work orders are unassigned until a technician is given responsibility for them.
Project
Module
MAIN
Rev Date
12/7/97
District
has
Technician
Technology Manager
is based at serves
c s he at
School
Name owns
complete (order)
reports
tea
Teacher
is-assigned complains-to uses
Work Order
Date Problem Solution Cost add close
Computer
involves Prop-Rec-Num RAM HD Warranty Date
Project
Module
MAIN
Rev Date
12/7/97
This is the Object Model for a Work Order System which tracks computer service and repair.
Computer
( brand-new )
Work Order
/ reported
Works
( fixable ) / fixed / someone sneezes
Unassigned
/ assign
Assigned
/ complete
Broken
( unfixable )
Closed
Dead
Project
Module
MAIN
Rev Date
12/7/97
These are the state diagrams for a computer and a work order
A floppy disk drive breaks on a teacher's Mac at a school The teacher complains to the school's Technology Manager. The school's Technology Manager creates a new work order. The Technology sends the work order to the District Support Manager. The District Support Manager assigns the order to Alfonso the technician. Alfonso fixes the drive. Alfonso reports success to the District Support Manager. The District Support Manager closes the work order. The District Support Manager reports success to the school Technology Manager. The Technology Manager tells the teacher. Scenario #2 (Exceptionnot really) A PC breaks at a school. The teacher complains to the school's Technology Manager. The school's Technology Manager creates a new work order. The Technology sends the work order to the District Support Manager. The District Support Manager assigns the order to John the technician. John never shows up. The Technology Manager reports an error message to the District Support Manager and the teacher.
Teacher
notifies notifies
reports error
reports error
Project Module
HYPERTEXT SYSTEM
Model Object Functional Description Dynamic Problem Sheet
MAIN
Rev Date
12/7/97
These are two sample scenarios and event traces simulating user interaction with the system.
Technician
en ok
Support Mgr
wh
o
Tech Mgr
ho
uld
f i x it
n, he , w ow e w hat br o k h
w h at
was do t o fi x it
ne
Technician
Support Mgr
wh
o
t ha
uld
f i x it
io n
n he e, w o w w hat br o k h
Complete Order
Project Module
w h at
was do t o fi x it
ne
Model
so
lu t
MAIN
Rev Date
Technician
w
,
This is the Context DFD and Level 0 DFD for the Work Order System.
re ,o
ho
Assign Order
who
he
what
re ,o
h w
s
en ok
12/7/97
h w
Main
Level 0
add order assign order complete order
Level 1
enter work order data values route to District Support Mgr calculate optimum assignment route to selected technician enter solution close order
Level 2
compute current load for all techs compute current travel plan for all techs
Project
Module
MAIN
Rev Date
12/7/97
This is the process decomposition diagram for the Work Order System.