Project Works

  (Object-Oriented Software Engineering) (Fall 2005)
- Section 1 -

 

Home
Outline
Textbook
Resources
Homeworks
Project Works
Project Groups
Policies
Quizzes
Exams
grades.htm
attendance.htm
project-grades.htm

Project Work: "Dershane Otomasyonu"

Final Phase and Project Demos (Due to Dec 19, 2005)

In this phase, you will make a live demonstration of your program and submit a complete set of project documentation.  Your project documentation will be graded based on completeness, consistency, and presentation style (easy to read, well-organized,  etc.) while your work being evaluated based on technical quality. 

* Make sure that your Class Diagram,  Use Case Diagram and State Machine Diagram are detachable if you decide to put your printed work into a professional bind. (Or you may put an extra -free- copy for each item.)

* Note that this is not a database course and this is not a database program although you may store your permanent data into a database. You are supposed to read in all your data into data structures when you start your program and store them into permanent storage when you exit. The permanent storage may be a database, a text file or an XML file. Once you read all the data in, all data must be handled in data structures during the execution of the program.  

If you use a Rapid Application Builder tool like JBuilder or MS Studio .Net and connect your GUI widgets into database fields and do all data manipulation directly on those items, this will violate the full purpose of the course - you will not be able to use anything in your Data Model (Design Class Diagram). Remember the Model View Separation principle (13.7 p.209). 

Part 1

For your project, submit the final versions of the following documents as hard-copy: 

a. Vision Document

b. Use Cases - only the 5 most critical/important user-goal level use cases (UC definitions should incorporate/refer to the GUI items explicitly.)

c. Supplementary Specifications Document.

Note: You should show the verification of your nonfunctional requirements  (URPS+) during demonstration.

d. UML Package Diagram that shows the logical architecture of your program.

e. UML Deployment Diagram that shows the deployment of software items to physical elements. 

f. UML Use Case Diagram. 

g. UML State (Machine) Diagram that shows the GUI Page/Window Navigatıon along with  all GUI pages/windows. (You may embed the ones related to above described Use Cases into Use Case Definitions.)  

Hint: Identify all windows clearly so that you (and me while grading) will be able to refer to them when required.

h. UML Activity Diagram that shows the general business process workflow and data flow in the "dershane" you are targeting in your project.

i. UML (Design) Class Diagram.

Note:  You should exploit the inheritance/polymorphism mechanisms appropriately and use at least one design pattern in your project. Make sure that they are shown in the class diagram.

j. Print out code portions that you read in the data into internal data structures at the beginning of the execution - as explained in above note. (Save paper by printing two pages on a sheet.) 

* You DO NOT need to submit UML sequence diagrams, operation contracts or communication (collaboration) diagrams in this phase. They can be easily obtained from source code by reverse engineering if needed.

* You DO NOT need to include an on-line HELP in your program. A button showing its existence will suffice. (Actually, if written the help document would have  been very similar to a set of final UC definitions.)

Part 2

Live Demonstration. You are supposed to draw the UML Use Case Diagram on the board and go over as many scenarios as possible by running your program. 

For project demonstration, 

* Bring your own computer for the demonstration. Only the projector will be supplied in the classroom. If your demo does not work for any reasons, then you will loose grades.  

* If you decide to make a  late submission then the rules listed under the Late Policy page will apply. You should bring your documents to my office or come to my office  for a demonstration with your own equipment.

Part 3 (due to Dec 20th, 2005 @18:00)

a. Put all documents and your source code into a web page in an organized way. When you are done e-mail me the web address. Make sure that all links are working! 

 Note: This page should be kept alive as long as possible. You may host it in a group member's account who will continue to M.Sc. or Ph.D. program at Bilkent University.

b. Capture the snapshot of your working program for about 5 minutes. Make sure that all major features (at least for the critical/major five use cases) of your program are demonstrated. Put this snapshot into your web page.

General Guidelines: 

- You should draw the corresponding UML diagrams for all the above cases using a UML modeling tool (any tool is OK)

- Follow all the guidelines and best practices given in the book. Use UML 1.x or 2.0 notation  in your drawings. 

Phase 4  (Due to Nov 28, 2005)

In this phase, we will design the user interfaces of our software, incorporate these UI items in our use cases and also relate UI classes in our sequence diagrams.  In the next phase we will complete our design by elaborating the rest of the system. 

I assume that you have five major use cases derived up to now.

a. By following the good UI design principles (see the supplementary material on this subject), design the user interfaces of your software. Submit your drawings. 

Hint: Some people prefer to draw UIs using tools like MS Visio, some others directly develop them using RAD (rapid application development) tools such as JBuilder.  

b. Incorporate (or refer to) your UI design items in the use cases, so they will be presented in a concrete fully-dressed style. 

c. Revise, if necessary, and submit the use-case diagram and the Glossary

d. Revise and submit the  Design Class Diagram

e. Revise the existing sequence diagrams to incorporate UI classes drawn using the UML modeling tool. You may want to include *some* UI classes in your diagram to complete your design. 

Hint: Your sequence diagrams will also represent the System Sequence Diagrams since Sequence Diagrams is a superset of System Sequence Diagrams. 

f. Submit the operation contracts (only the postconditions section) for the selected three most important/critical system operations in each *system* sequence diagram,

General Guidelines: 

- You should draw the corresponding UML diagrams for all the above cases using a UML modeling tool.

- Follow all the guidelines and best practices given in the book. Use UML 2.0 notation where possible (see Resources page for an explanation) in your drawings. 

- Do not forget that this will still be an approximation to the problem. It does not have to be complete but make sure that all your diagrams/documents are consistent with each other.  

- Bring in a hard-copy of your work to the class on the due date. 

Phase 3  (Due to Nov 9, 2005) (Grading Policy)

In this phase, you will apply UP methodology practices: You will select the most important/critical use cases and elaborate on them. In a later phase you will develop a working system that is a realization of these selected use cases. 

a. Revise, if necessary, the use-case diagram that you developed in Phase 2 and draw it using a UML modeling tool.

b. Revise, if necessary, the Glossary that you developed in Phase 2. 

c. Revise, if necessary,  the three most important/critical use cases in the use case diagram that you selected in Phase 2 and document them in an essential fully-dressed style. 

d. Select two more important/critical use cases and document them  n an essential fully-dressed style.

e. Derive the full Domain Model corresponding to the use cases above and draw it  using the UML modeling tool.

f. Derive, and revise the existing ones if necessary, the  System Sequence Diagrams corresponding to the use cases above and draw them using the UML modeling tool,

g. Derive, and revise the existing ones if necessary,  the operation contracts (only the postconditions section) for the selected three most important/critical system operations in each system sequence diagram,

h. Derive, and revise the existing ones if necessary, the sequence diagrams corresponding to the use cases above and  draw them using the UML modeling tool. 

i. Derive the Design Class Diagram  and draw them using the UML modeling tool.

General Guidelines: 

- Follow all the guidelines and best practices given in the book. Use UML 2.0 notation where possible (see Resources page for an explanation) in your drawings. 

- Do not forget that this will still be an approximation to the problem. It does not have to be complete but make sure that all your diagrams/documents are consistent with each other.  

- Submit a hard-copy of your work in the lecture. 

 Phase 2  (Due to Oct 24, 2005)

In this phase, you will apply UP methodology practices: You will select the most important/critical use cases and elaborate on them. In a later phase you will develop a working system that is a realization of these selected use cases. 

a. Prepare a Vision Document (complete only the following headers: Introduction, User Level Goals and Product Perspective. ) 

b. Prepare a Supplementary Specification Document (complete only the following headers: Introduction, Reliability, Performance, Implementation Constraints, and Interfaces.) 

c. Revise, if necessary, the use-case diagram that you developed in Phase 1 and draw it using a UML modeling tool.

d. Revise, if necessary, the Glossary that you developed in Phase 1. 

e. Select the three most important/critical use cases in the use case diagram and document them in an essential fully-dressed style.

f. Derive the full Domain Model corresponding to the use cases above and draw it  using the UML modeling tool.

g. Derive the System Sequence Diagrams corresponding to the use cases above and draw them using the UML modeling tool,

h. Derive operation contracts (only the postconditions section) for the selected three most important/critical system operations in each system sequence diagram,

i. Select the most important/critical use case and derive the full sequence diagram corresponding to it.  You don't have to draw this using a UML modeling tool this time, you may apply the agile modeling principles for this case.

General Guidelines: 

- Follow all the guidelines and best practices given in the book. Use UML 2.0 notation in your drawings. 

- Do not forget that this will still be an approximation to the problem. It does not have to be complete but make sure that all your diagrams/documents are consistent with each other.  

- Submit a hard-copy of your work in the lecture. 

Phase 1 (Due to Oct 10, 2005) 

(Not to be graded - but call me if you need to get feedback)

Perform a domain analysis about the problem. Analysis activities may include interviews with dershane owners, staff and students, internet search and investigation of existing "dershane otomasyonu" software. This will help you to understand the domain better and later deduct the requirements more easily afterwards. (You do not need to document your findings yet.)

a. Perform use-case analysis to determine who the actors are and what tasks they must perform. Deduct a use-case diagram that presents your results.

b. Derive a Glossary that includes the important terms in the business/domain. 

c. Select the most important use case and document it in an essential fully-dressed style.

d. Derive the Domain Model corresponding to the use case documented in (c). 

Do not forget that this will be a first approximation to the problem. It does not have to be complete but try to make it consistent.  

You do not need to use a UML drawing tool at this stage. Just sketch the necessary UML diagrams by hand.

Submit hard copy and e-mail soft copy of your work.

Remember that we only covered  a  subset of OO   Software Engineering in this course. You should continue to study and practice the subject yourself as a part of your career development.  

See your final fotos. 

 

The average attendance rate for the semester is 81% with an average of 2 absentees per person. 

The average of final cumulative points is 71,83. 

The average of  final letter grades is 2.37.

Last updated: 14/12/2005 10:36