2D1385 Programutvecklingsteknik



Take Home Exam (omtentamen)

NOTES: (Please read these carefully!)

(i) Clearly mark at the top of each sheet you use: (a) your name (b) your e-mail address (in case I need to contact you) (c) the page number.

(ii) On the front page indicate how many pages are contained in your work in total.

(iii) Your work must be handed in to NADAs studentexpedition no later than Thursday 24th August 2006 at 11.00 am. After this time it will be marked as late, and marks will be subtracted pro rata.

(iv) If you have any questions about the exam (for example, if you do not understand a question) you may call my mobile number 076 223 86 79. Please do not call before 10.00 am or after 7.00pm!

(v) You may use your kursbunt, and any course books. You are allowed to use the internet including search engines. However, any work which you download and use must be credited to its source. You are not allowed to collaborate with any other student or person. You are not allowed to discuss or share your work with anyone else before all manuscripts have been handed in. You are not allowed to copy anyone else's work. By handing in your manuscript you are declaring that you have abided by these rules. In the case that cheating is suspected, actions will be taken against all students involved.

(vii) Write clearly. No marks will be awarded for work that I cannot read. You can write your answers in swedish or english, unless otherwise stated in the question.

(viii) Answer all questions. Maximum marks are 40 points. A grade 3 will require at least 20 points or more, grade 4 will require at least 26 points or more, grade 5 will require at least 32 points or more.

(ix) If you have not already done so, please download and fill out the course questionnaire. You can submit this with your manuscript and it will be used for course evaluation..

Consider the following informal requirements document for a mail-order program:

Any customer can place an order which refers to a specific product. This order is paid via two transactions. A transaction is either an initial deposit or a final payment. Furthermore, a transaction can either be a credit card transaction or an invoice transaction. An order may be placed either over the internet or by telephone.

An order results in several manufactured and delivered items. A product is the concept for a collection of items. Each item has a serial number. An item can usually be sourced from one of several suppliers. A supplier may deliver various kinds of items. A production facility is used to produce various kinds of items. A supplier owns a specific production facility. A key ratio of item stock size to item order size controls the delivery of every item. When the ratio of item order size:item stock size rises above 1 then orders are placed to an item production facility for further items.

A customer site is the location of a placement. A placement is the physical placement of one instance of an item at the customer site. A placement has an effective date and an until date. A site has a purpose and an address. A geographic location is the location of a site. A geographic location may contain other geographic locations.

A product has a description. A product is also described as part of a collection of (similar) products called a product set. A product set has a description, and is associated with a collection of product set rules, which characterise the product set. A product can also be related to another product through a product connection. (An example of a product connection is that some products can be upgraded to other products but others cannot.) A product connection has a description (in text) and a valid until date.

Question 1 (Total 10 points)

Perform an object-oriented analysis of these requirements by identifying important nouns, verbs and relational phrases. Write these down in the form of a data dictionary that briefly defines the meaning of each noun, verb and relational phrase as you understand it from the requirements document.

You may write the definition of each component in Swedish but you must write each component (noun, verb, phrase) using the english text given above. You must sort your data dictionary alphabetically, and produce three separate lists for: (i) nouns (ii) verbs and (iii) relational phrases.

Question 2 (Total 12 points)

(i) (5 points) Draw a UML class diagram which accurately models the information contained in your data dictionary for Question 1. You should carefully model any recursive data structures. Pay careful attention to any multiplicity constraints which you can identify.

(ii) (2 points) Looking at your class diagram for Part (i), identify any components in your diagram which might cause implementation problems if Java (any version) were chosen as the implementation language for this application. Discuss whether it could be better to change your class diagram model or the implementation language.

(iii) (5 points) Draw a small UML object diagram that is a valid instance your UML class diagram. This diagram should show the example of one single customer order via the internet with an initial credit card deposit payment. Be sure to show at least one instance of every class.

Question 3. (Total 8 points)

Your company, which is a small start-up company specialising in internet security, has been asked to implement a distributed security access system based on human fingerprint recognition. This system is based on new world beating fingerprint technology developed by a Swedish University. The requirements on system integrity are high. Your company will go out of business if the product is deemed a failure as your customers will lose confidence in you. You have a small, loyal company staff with great technological expertise but little project experience. The project is well funded up front with an initial customer deposit, but the delivery deadline is absolutely hard (not open to change) and you will incur very great financial penalties if you miss the delivery deadline.

(i) (5 points) Choose one lifecycle model that would suit this project. Name the model and identify its strengths and weaknesses according to the project description above.

(ii) (3 points) Choose one appropriate architectural model for the system and identify the likely contents of each architectural building block.

Question 4. (Total 10 points)

You decide to make the mail order application of Questions 1 and 2 a distributed application over your customer's intranet. Furthermore, you will use internet protocols including XML to link the various clients and servers.

(i) (4 points) Write a DTD that is suitable for defining an XML file that represents the mail order model based on your class diagram for Question 2.(i). You should use DTD/XML validation as much as possible to detect errors in XML files.

(ii) (4 points) Write a short XML file that models the object diagram developed in your answer to Question 2.(ii) and is a valid instance of your DTD.

(iii) (2 points) Does XML parsing using your DTD catch all possible errors in an XML file representing a particular mail order model? Explain why or why not with the help of simple examples if possible.