Fall 2012 Midterm Exam CS 319 Object-Oriented Software Engineering
Fall 2012 Midterm Exam CS 319 Object-Oriented Software Engineering
a) Object-oriented analysis is concerned with modeling the application domain. Object-oriented design
is concerned with modeling the solution domain. Both modeling activities use the same
representations (i.e., classes and objects).
b) The requirements elicitation activity is highly iterative and incremental. Chunks of functionality are
sketched and proposed to the users and the client. The client adds requirements, criticizes existing
functionality, and modifies existing requirements.
c) Use cases describe the behavior of the system as seen from an actor's point of view. Behavior
described by use cases is also called external behavior.
d) A UML state machine (diagram) is a notation for describing the sequence of states an object goes
through in response to external events.
e) Examples of roles assumed by the development team during software engineering include system
architect, object designer, and implementor / tester / document editor / UI designer / ....
f) The client, also called the customer, is responsible for the formulation of scenarios and the
requirements. The client is expected to be able to interact with developers. The end user is the person
who will be using the delivered system.
g) A scenario is an instance of a use case; that is, a use case specifies all possible scenarios for a given
piece of functionality.
h) Entity objects represent the persistent information tracked by the system. Boundary objects represent
the interactions between the actors and the system. Control objects are in charge of realizing use
cases.
i) A sequence diagram shows how the behavior of a use case (or scenario) is distributed among its
participating objects.
l) During system design, developers try to optimize design goals, which represent the qualities of the
system.
m) The set of operations of a subsystem that are available to other subsystems form the subsystem
interface.
p) Last but not least, my name is written only on the last page of this exam paper as instructed.
OO analysis is finding and describing objects or concepts in the problem domain; that is, it is about
what needs to be done and about defining the problem/requirements. OO design is defining software
objects and how they collaborate; that is, it is about how it is done and about conceiving a solution to
the problem. [doing the right thing vs. doing the thing right]
The student fills out the form by specifying the semester, the course to take (department and course
number) and the section, to which the student would like to be added. Then, the student clicks the OK
button. The system checks whether the particular section is still open for registration and the maximum
count hasn’t been reached. If so, the system checks if the particular section of the added course fits the
student’s schedule. Add operation is not allowed when there are any conflicts in the schedule. If there is no
conflict, the system updates the database and simultaneously notifies the billing system of the change. It
then displays an appropriate message. The student may, of course, cancel the add operation at any point
during this process.
Construct a UML Activity Diagram to capture the business logic of adding a course use case of a course
registration system as described above.
A mail-order company wants to automate its order processing. The initial version of the order processing
system should be accessible to customers via the web. Customers can also call the company by phone and
interact with the system via a customer representative. It is highly likely that the company will enhance this
system in upcoming years with new features.
The system allows customers to place orders, check the status of their orders, cancel an existing order and
request a catalog. Customers may also return a product but this is only possible through the phone, not
available on the web. When placing an order, the customer identifies himself by means of customer number
(only for existing registered customers) or by means of his name and address. He then selects a number of
products by giving the product number or by selecting products from the online catalogue. For each product,
information such as price, a description and a picture (only on demand as they are usually high-resolution
images of large size) are presented to the customer. Also the availability of the product is obtained from the
inventory. The customer indicates whether he wants to buy the product and in what quantity. When all
desired products have been selected, the customer provides a shipping address and a credit card number
and a billing address (if different from the shipping address).
Then an overview of the ordered products and the total cost are presented. If the customer approves, the
order is submitted. Credit card number, billing address and a specification of the cost of the order are used
on the invoice, which is forwarded to the accounting system (an existing software module). Orders are
forwarded to the shipping company, where they are filled and shipped.
Customers who spent over a certain amount within the past year are promoted to be gold customers. Gold
customers have additional rights such as being able to return products in an extended time period as well as
earning more bonus points with each purchase. In addition, in cases where a product is on back order, gold
customers have the option to sign up for an email notification for when the particular product becomes
available.
a) [5 pts] List and justify two non-functional requirements for this system.
Maintainability (specified: "It is highly likely that the system will be enhanced in upcoming
years") & immediate/fast response (required by all client/server systems)
b) [20 pts] Identify actors and use cases for the system described above and show them on a UML Use
Case Diagram.
c) [20 pts] Perform a quick application domain analysis to come up with an object model for the above
system. Express your findings with a UML Class Diagram, making sure to identify any critical
operations of classes.
The scenario looks like an instance of the "Place Order" use case.
[18 pts] Then, draw a UML Sequence Diagram for this particular scenario. You may use any
software/solution domain objects if needed as well.
Mini Dictionary:
To authenticate Doğrulamak
To approve Onaylamak
Available Uygun, mevcut
Back order Bekleyen sipariş (ürünün stoklarda olmamasından ötürü)
To bill Fatura etmek
Business logic İşleme mantığı
Customer representative Müşteri temsilcisi
To depict Tanımlamak, göstermek
To infer Sonuç çıkarmak
Inventory Mal stokları
Mail order Posta ile yapılan mal siparişi
To place an order Bir sipariş vermek
To promote Terfi ettirmek, tanıtımını yapmak
To return a product Bir ürünü iade etmek
Staff Çalışan
I hereby affirm that the work submitted in this examination is my own exclusively.