Software Engineering 3RA3/Computer Science 3SR3 Term: 8 December 2009
Instructor: Dr. R. Janicki Duration: 24 h (take home)
McMaster University Final Examination
THIS EXAMINATION PAPER INCLUDES 6 PAGES AND 10 QUESTIONS. TOTAL = 100.
===================================================================== QUESTIONS
****************************************************************************** Volere Question, total: 40
****************************************************************************** 1.[40] Based on the informal CyberFridge System described below you are expected to propose
a requirements document.
The intended document must include the information given as well as the detected missing information. The completeness of the requirements specification document and the quality of the language used will be taken into consideration when grading this assignment.
We propose that in the analysis of the requirements given in the interview notes, you adopt the following steps.
1.[5] Identify the functional and non-functional requirements. 2.[10] Identify the potential business events or modes.
3.[10] Under each business event or mode, identify the scenarios describing the functional requirements.
4.[5] From these notes one can see that some information is missing. Identify the missing information that one needs to elicit during next interviews.
5.[10] Propose a better quality requirements document for the CyberFridge System using Volere pattern.
You are supposed to hand in only the final requirements document. The tasks 1 - 4 are intermediate tasks to ensure a good starting point. There will be some bonus points for using semiformal methods as Data Flow Diagrams, UML, etc. (justify using an appropriate method).
CyberFridge
The CyberFridge project is to use Internet connectivity, vision and mechanical systems to create an intelligent and productive refrigerator. Many of our daily tasks revolve around the
refrigerator, and a CyberFridge would allow the automation of many of these routine tasks. Our project is a specific subset of this area which will allow you to use a recipe system to determine what recipe you would like to fix, and let you know if the items to make it reside in your kitchen. Specifically known as C.A.R.A. ( Clifford Automated Recipe Agent) the recipe agent will
primarily serve the purpose of electronically making a shopping list and telling to its user the items which are lacking for a certain recipe and those items which currently reside in the fridge. CARA will therefore cross index the current inventory of the fridge and a recipe database in order to suggest what meals to make and what ingredients are to be bought ( i.e. our grocery list). The recipe database will essentially have recipes of specific types of dishes (ex. Chinese, Italian, etc.) which the family living in the home would like to eat. The database will also record the more popular dishes selected previously, which are determined by the number of times a certain dish is requested in relation to other dishes. Our database can also be updated to add new recipes at the user’s discretion.
Food Inventory CARA will keep track of what food items are currently in the kitchen, and will keep track of vital information about each item: how much is on hand, the expiration date, etc. In particular, CARA shall be able to perform the following actions:
1. The CyberFridge shall give the user a list of all food items currently in its inventory. CARA shall order this list according to criteria set by the user. These criteria shall include, but will not be limited to: food categories, alphabetical list, and time remaining before the items should be removed from the inventory.
2. CARA shall return information about any item requested by the user. This information shall include, but will not be limited to: whether the item is currently on hand, the quantity remaining, and time remaining before the item should be removed from the inventory.
3. CARA shall track additions to the current inventory. This may be accomplished via a bar code scanner or by other means. Any food added to the kitchen stores shall be added to the inventory maintained by the CyberFridge.
4. CARA shall track removals from the current inventory. This may be accomplished via a bar code scanner or by other means. The quantity of food used or removed shall be tracked as well. Any quantity of food removed from the kitchen stores shall be removed from the inventory maintained by the CyberFridge.
CARA will keep a database of all recipes which the user wishes to use. In particular, the CyberFridge shall be able to perform the following actions:
2. CARA shall allow the user to create new categories or to modify existing categories. This shall include the ability to modify the list of recipes belonging to each category.
3. CARA shall allow the user to add new recipes to the database, and to place new recipes into existing categories.
4. CARA shall allow the user to modify or delete recipes from the database.
5. CARA shall allow the user to download recipes remotely from outside servers connected through the Internet.
CARA will use the recipe database to recommend recipes to the user and to recommend food items for the user to purchase. In particular, the CyberFridge shall be able to perform the following actions:
1. CARA shall be able to give to the user a list of recipes which can be prepared using the food currently in inventory.
2. CARA shall be able to give to the user a list of food items which need to be purchased in order to prepare a particular recipe or group of recipes.
3. CARA shall keep track of recipes which are frequently prepared by the user, in order that these recipes may be suggested to the user again at future times.
4. CARA shall give to the user a list of suggested recipes according to criteria set by the user. These criteria shall include, but will not be limited to: recipes for special occasions, recipes using or not using certain food items or groups of items, and recipes which utilise food which will otherwise need to be disposed of in the near future. In addition, these recipes shall be ordered according to criteria set by the user. These criteria shall include, but will not be limited to: favourite recipes, recipes which have not been used recently, or recipes ordered by preparation time.
CARA will allow the user to access its abilities from outside of the kitchen through the use of the Internet. In particular, CARA shall allow the user to perform all recipe database actions and recipe search actions using an Internet-accessible interface. This interface will allow the user to access the capabilities of the CyberFridge through the World Wide Web.
Since much of the project will be written in Java and since it it is platform-independent, the code developed on our platform should run on most any target platform without
modification, but specifically it will be modeled to run on the Windows XP platform and tested there.
There are two vehicle platforms that CARA will be developed on. It will be developed on Sun SPARC stations running Solaris equipped with the Java Development Kit 1.0 and the JDK for Windows XP.
A Pentium class Windows XP running Explorer 5.xx or higher. Hard-disk for minimal storage of operating system and Explorer.
Any user of the CARA agent of CyberFridge must have a password to be allowed access to the recipe-agent system, for example.
Loss of Personnel Due to the small size of our team, the loss of one of our members would be very detrimental. If the Architect dropped the course or became very ill, the project should still be able to function. However, it would result in some problems. To handle them, the Architect and all other group members will update the entire group on a weekly basis to ensure good continuity for completing the project in the alloted time by all remaining members. Good communication is therefore is essential. As a precautionary measure, each member in our group will learn other roles as well as the one to which he is designated with by actively participating throughout the entire software life cycle. This would considerably minimise the training overhead which would be incurred at any point in time when a replacement is necessary.
Applet/Internet Security Restrictions: Due to the security restrictions and concerns in Explorer, a client side refresh will have to be used to trigger any database accesses or display events.
Vehicle Platform Crash: In order to keep intact all completed versions, multiple copies of all necessary data and code are being saved. We are currently using the CoC machines to do most of our development for the CyberFridge. The vehicle machines have all the necessary tools to do the programming and is accessible to each member of the group. Losing access to these tools could make the software development process much slower. Further, other potential platforms don’t make access as easy – workstations are individualised, and ACME has ownership restrictions to get around.
Learning of the Programming Language/Environment: If the programmers and architects do not efficiently train in terms of time and effort to learn Java, the design and implementation of the CyberFridge may be delayed. If this occurs than the programmers have to overlap their training time with the actual construction of our design.
****************************************************************************** Tabular Expressions and Formal Modeling of Scenarios, Total: 41
****************************************************************************** 2.[36] This questions deals with tabular expressions and scenarios.
(ii)[17] Consider the following scenario:
button that starts the computation. The sequence of entered numbers should contain at least one number.”
a.[12] Work out the relation of the scenario Sc_R and put it under tabular representation.
b.[5] From Sc_R, work out the relation of the environment Sc_Re and the relation of the
system Sc_Rs and represent both of them as a tabular expression (i.e. the kind of
tables we have used in class). (ii)[17] Consider the following scenario:
“The system shall be able to compute the average of a sequence of real numbers. The user
enters the numbers one by one and then presses the button that starts the computation. The sequence of entered numbers should contain at least one number.”
a.[12] Work out the relation of the scenario Sc_R and put it under tabular representation.
b.[5] From Sc_R, work out the relation of the environment Sc_Re and the relation of the system Sc_Rs and represent both of them as a tabular expression (i.e. the kind of tables we have used in class).
(iii)[2] Discuss the similarities and differences between those two solutions. What is the major difference?
3.[3] Let S = {0,1,2,3,4,5,6}. Let P and Q be two relations on S. For each of the following three cases compute the demonic meet P Q.
a.[1] P = {(2,2),(2,4),(3,5),(4,3)} Q = {(1,5),(3,2),(5,1)}
b.[1] P = {(1,3),(1,4),(2,5)} Q = {(1,3),(1,6),(3,5)} c.[1] P = II Q =
L
where II is the identity on S and
L
is the empty relation.****************************************************************************** Security Questions, total: 19
****************************************************************************** 5.[6] Given the security levels TOP SECRET, SECRET, CONFIDENTIAL, and
UNCLASSIFIED (ordered from highest to lowest), and the categories A, B and C, specify what type of access (read, write, both, or neither) is allowed in each of the following situations. Assume that discretionary access controls allow anyone access unless otherwise specified.
a. Paul, cleared for (TOP SECRET, {A, C}), wants to access a document classified (SECRET, {B, C}).
b. Anna, cleared for (CONFIDENTIAL, {C}), wants to access a document classified (CONFIDENTIAL, {B}).
c. Jesse, cleared for (SECRET, {C}), wants to access a document classified (CONFIDENTIAL, {C}).
d. Sammi, cleared for (TOP SECRET, {A, C}), wants to access a document classified (CONFIDENTIAL, {A}).
e. Robin, who has no clearances (and so works at the UNCLASSIFIED level), wants to access a document classified (CONFIDENTIAL, {B}).
6[2]. Design a two-message authentication protocol, assuming that Alice and Bob know each other's public keys, which accomplishes both mutual authentication and establishment of a session key.
7[2]. Suppose a system implementation of the Strict Integrity Policy (Biba’s Model) used the same labels for integrity levels and categories as for security levels and categories. Under what condition could one subject read an object? Write to an object?
8[2]. Decipher the following ciphertext, which was enciphered using the Caesar cipher: TEBKFKQEBZLROPBLCERJXKBSBKQP
9[3]. Assume that Diffie-Hellman scheme is used, A and B have chosen p=53 and g=13, and private keys kA = 3 and kB = 5. Calculate public keys KA, KB and secret keys SA,B, SB,A .
10[3]. Consider an RSA digital signature scheme. Alice tricks Bob into signing messages m1 and m2 such that m = m1 m2 mod nBob. Prove that Alice can forge Bob’s signature on m.