Object-Oriented Software Development

CS 146-0
Drake University
Spring, 2006






Basic information

Instructor: M. Q. Rieck

Office: Howard 219
Office Hours: MW 4-6, TR 11-12, and by appointment
Phone: 271-3795
E-Mail: Michael.Rieck@Drake.edu
Homepage: www.drake.edu/mathcs/rieck (to get to ongoing course info)

Texts:



Course objectives

This course introduces students to object-oriented software engineering, as it is practiced today. Through lectures, readings and software development projects, students should be able to acquire a working knowledge of the various phases of object-oriented software development, with a focus on three popular development tools: the Unified Modeling Language (UML), the Unified Process(UP), and Design Patterns.



Policy (important - please read carefully)

Please check messages at the course web site regularly.

All assigned work should be submitted on time. Late assignments will not be accepted.

Anticipated absences from exams must be approved by the instructor well in advance. Emergency absences should be supported by documentation with the name and phone number of a professional involved in the emergency.





Grading

    Final Exam (Thurs., May 11, 7:30 AM         24%    
    First Segment Test (Tues., Feb. 14)         12%    
    Second Segment Test (Thurs., Mar. 16)         12%    
    Third Segment Test (Tues., Apr. 25)         12%    
    Three Projects (combined)         30%    
    Homework and participation         10%    







Homework Assignments

    HW#1: Use case exercises         Imagine you want to create a text editor program. Produce at least a half dozen use cases for it.
For each use case, create a form and a diagram. Follow the style in your textbook when writing forms
and when drawing diagrams. Include at least one example of each of the following:
  • using a conditional ("if")
  • using a loop
  • generalization of use cases
  • < < include > >
  • < < extend > >
   
    Due: 1/24    
    HW #2: Analysis exercise         With a fairly clear and reasonable complex view of how you want your (imaginary) text editor to behave, do a reasonably complete job of anaylzing your requirements and describing them via UML diagrams, as discussed in Chapters 6, 7, 8 and 9 of your UML 2 book. This is mainly intended as a warm up exercise before Project One. I will carefully consider everything you submit and provide feedback that should help you to get ready for Project One. The more you submit, the better, as you will get more feedback without worrying about losing points (as on the project).         Due: 1/31    



Programming Projects

  1. Project One     (due Thurs., Mar. 2)

  2. Project Two: Thoroughly design your restaurant software system. In grading it, I will not connect this back to Project One, in that you are free to deviate from your original vision of the system if you wish. All I require is that you produce a Design Document with LOTS and LOTS of MagicDraw UML diagrams, that DETAIL a design for a working system, one that matches the description in the Project One assignment. Later, we'll will decide on a substantial portion of your design to implement for Project Three. Feel free to ask questions as we go. You have almost a month on this, but much is expected, and as in the "real world," procrastination will likely lead to inadequate results. In grading Project Two, I will cast myself into the role of a programmer, and your Design Document should make clear to me how to implement your vision of the software, to a considerable degree.     (Due Tues., April 4.)




Examples and Old Exams

  1. First Exam from Spring 2004     (different textbook)




Homework and Exam Solutions




Links to related web material





Newsworthy messages (check regularly)

  1. On the last Monday of each month, I will not begin my office hours until 4:30, due to a department meeting.

  2. MagicDraw is now installed in Sheppard Lab. After we're done testing it out, I'll give you details. Also, see the above link to the MagicDraw website. Go there and view the "on-line demo."

  3. HW #2 is posted. Also, on Tuesday, January 31, class will meet in the Sheppard Lab, so that we can learn to use MagicDraw. You will need it for Projects One and Two. We'll start Project One pretty soon. The agreed upon teams are as follows:

    • Anderson, Nesheim, Kasenza (Java team)
    • Bertocki, Blue (C++ team)
    • Love, Wakeman (C++ team)

  4. I posted the link to let you install MagicDraw on your computer. (If you lost the access code, let me know.)

  5. Project One is now posted.

  6. Here are the new team assignments we agreed to:

    • Anderson, Baloch, Kasenza, Nesheim (Java)
    • Bertocki, Blue, Love, Wakeman (C++)

  7. I made some minor corrections to the project document. The only significant change though was the part in parentheses in the last section. It should say "in more detail THAN I provided above" instead of "in more detail THAT I provided above." Big difference!!!

  8. The posted exam from two years ago may be of some help to you. Problem 2 would not be fair this year, since we never considered "Demeter's Law" nor "Abbott's Heuristics." Also, we haven't done sequence diagrams yet (just a brief visit), so ignore Problem 4 for now. Neither have we discussed state diagrams carefully yet, so I guess Problem 5 would not be fair either. The best thing you can do though to study for your test is to read the book from Chapter 3 to Chapter 10, not including Section 10.5. Also, the lecture notes.

  9. Project One's due date is postponed, not so you can procrastinate, but rather to give you time to do a very good job. If you give due thought and effort to this, you should be able to make a smooth transition to Project Two. But if not, then maybe not. Here are the planned due dates now for the three projects:

    • Project One - due March 3
    • Project Two - due March 30
    • Project Three - due April 20

    I recommend, but don't insist, that you choose a team leader for each project, preferably a different leader for each project.

  10. Read up through Chapter 15. Next class meeting, I'll see if I can keep lecture to a minimum. I want to give you guys an opportunity to work on your project, and also to practice some of the more technical issues in Chapters 12, 13, 14 and 15. These are separate issues. I will bring some in-class activity for you to work on in connection with these chapters, and let you spend the rest of the time (hopefully half of the class time) working on your project.

  11. I will try to remember to announce this in class. Please remind me. There will be an interesting mathematics talk concerning "capillary surfaces" on Wednesday. Here are the details:
     
    Title: Capillary surfaces and their behaviors in cylinders
    
    Speaker: Dr. Kirk Lancaster, Professor of Mathematics, Wichita State University
    
    Date and time: Wednesday, February 22, 3:30 pm Location: Howard Hall 308
    
    Following the talk, Prof. Lancaster will be available to talk with students who are thinking about graduate school.
    
    Abstract: Capillary surfaces are ubiquitous: a drop on your windshield, the sap in a tree, the fuel in a spaceship, fluid in a cylinder, etc. 
    Capillary phenomena occur as the result of an interaction of surface tension, exterior force fields (e.g. gravity) and the attraction of fluids
    to surfaces (i.e. "wetting energies"). In a microgravity environment such as in free fall or at very small scales such as occurs in nanoscale
    fabrication, the influence of gravity becomes largely insignificant and the interaction of surface tension and surface chemistry becomes
    dominant in determining the shapes of stationary liquids.
    
    Special types of capillary surfaces can be of great interest; some examples are hanging drops ("pendant drops"), drops on a surface ("sessile
    drops"), liquid bridges, fluids in a vertical cylinder and fluids in a container.  When the container is not smooth (e.g. has edges or
    corners), determining the behavior or shape of a capillary surface in the container can be problematic.  I will consider capillary surfaces in
    a vertical cylinder whose cross-section has a corner P. In this case, the capillary surface will be a graph z=f(x,y) over the cross-section and
    the function f may be discontinuous at P; this problem has been investigated by a variety of researchers.  When the cross-section has a convex
    (or protruding) corner at P, Paul Concus and Robert Finn made a conjecture approximately 14 years ago that under certain conditions, f must be
    discontinuous at P. I will describe the behavior of capillary surfaces z=f(x,y) near P when f is discontinuous at P and give a very brief
    outline of my recent proof of the Concus-Finn Conjecture.  I will also discuss examples. 
    
    

  12. I just posted Project Two. After thinking very carefully about the issue, I've decided to do something I did two years ago. Here is the situation: I want both teams to begin Project Two on as level a playing field as possible. However, you know that Project One was intended as a jumping off point for Project Two. I think it is also generally realized that one team (for whatever reason) was able to arrange their schedules and get together more often for Project One, and frankly did a more thorough job on it. I know this is no secret. With apologies to them, I plan to share their corrected Project One (with grade removed) with the whole class. Again, I do this solely for the purpose of creating an even playing field for Project Two, not to make for "bad blood." We will NOT do anything similar when transitioning from Project Two to Project Three. Again, this is what I did two years ago, and it still seems to me to be the fairest way to proceed.

  13. We'll be starting the design patterns textbook next time. Exam 2 (week from Thursday) won't cover any of that though. Instead, it will deal with Chapters 13 through 22 of the UML book.

  14. Here are some things we mentioned today (3/9):

    • Exam 2 will cover Chapters 13 to 22 of the UML book.
    • The first reading assignment from the Design Patterns book is Chapters 3, 4 and 5. Please make an effort to read this (even if you only find time to read it rapidly since you're also getting ready for my next test) by Tuesday.
    • The plan for the rest of the semester is to cover at least from Chapter 3 up through Chapter 18 of the Design Patterns book.
    • Each team has at least a couple members with a pretty good idea of what will be expected outcomes for Projects 2 and 3. My general feeling is that considerable work needs to go into Project2, but that later we'll come up with a relatively light workload for Project 3. Of course you'll have a hard time doing a proper job on Project 3 if you don't invest a determined effort into Project 2. Also, if you cannot find a good amount of time to work with your teammates face-to-face, then (1) find ways to delegate responsibilities, (2) use e-mail to considerable extend, (3) if I can be of help letting you into Howard and Sheppard during off hours (nights and weekends), let me know.