TOWSON STATE UNIVERSITY
DEPARTMENT OF COMPUTER AND INFORMATION SCIENCES
COSC 716
Object-Oriented Methodology
Course Syllabus

Professor Ali Behforooz


Office: 316L Stephens Hall Phone: 410-830-3035 Fax: 410-830-3868 E-mail:
alib@midget.towson.edu behforooz-a@toe.towson.edu

Table of Contents


Course Description:

Object-oriented approach to modeling, problem solving, requirement analysis, system design, system implementation, database design, system engineering and software engineering.


Suggested Textbooks and reference Materials:

  1. Object-oriented Modeling and Design, J. Rumbaugh, M. Blaha, W. Premerlani, F. Eddy, and W. Lorensen, Prentice-Hall, 1991. (Required textbook)

  2. Object-Oriented Programming, Peter Coad and Jill Nicola, Prentice-Hall, 1993.

  3. Object-oriented Software Development: A practical Approach, Mark Lorenz, Prentice- Hall, 1993.

  4. Object-oriented Analysis and Design with Applications, 2nd edition, Grady Booch, Benjamin/Cummings, 1994.

  5. Object-oriented Development: The fusion Method, Derek Coleman, et. al. Prentice-Hall, 1994.

  6. Object-oriented Development Process and Metrics, Dennis de Champeaux, Prentice- Hall, 1997.

  7. Object-oriented Databases, Setrag Khoshafian, Wiley, 1993.

  8. Designing Object-Oriented C++ Applications Using The Booch Method, Robert C. Martin, Prentice-Hall, 1995.

  9. Object-Oriented Concepts, Databases, and Applications, Edited by Won Kim, Frederick H. Lochovsky, Addison-wesley, ACM Press.

  10. Real-time Object_oriented Modeling, Bran Selic, Garth Gullekson, and Paul Ward, Wiley, 1994.

  11. Mastering Object-Oriented Design in C++, Cay S. Horstmann, Wiley, 1995.

  12. Principles of Object-Oriented Software Development, Anton Eliens, Addison-Wesley, 1995.

  13. The Little book of Object-Oriented Programming, Henry F. Ledgard, Prentice-Hall, 1996.

  14. Object-Oriented Programming in EIFFEL, Robert Rist and Robert Terwilliger, Prentice-Hall, 1995.

  15. Object-Oriented Programming in BETA Programming Language, Ole Lehrmann Madsen, Briger Moller-Pedersen and Kristen Nygaard, Addison-Wesley, 1993.

  16. Object-Oriented Technology in Application Development, Daniel Tkach and Richard Puttick, Benjamin/Cummings, 1994.

  17. Proceeding of The Technical Annual Conference on Object-Oriented Programming, Systems, Languages and Applications (OOPSLA), 1987-1995.

  18. Object-Oriented Analysis, Peter Coad and Adward Yourdon, Prentice-Hall, 1991.

  19. Object-Oriented Design, Peter Coad and Adward Yourdon, Prentice-Hall, 1991.

  20. Object-Oriented Software Metrics, Mark Lorenz and Jeff Kidd, Prentice-Hall, 1994.

  21. Discovering Smalltalk, Wilf Lalonde, Benjamin/Cummings, 1994.

  22. Smalltalk-80: The language and its implementation, Adele Goldberg and David Robson, Addison-wesley, 1983.

  23. Smalltalk-80: The interactive Programming Environment, Adele Goldberg, Addison-Wesley, 1984.


Topics Covered:

  1. Object-Oriented Paradigm Lecture 1

  2. Object-Oriented Modeling Lectures 2 and 3
    • Chapters 2, 3 and 4 of your textbook

  3. Dynamic Modeling Lecture 4
    • Chapter 5 of your textbook

  4. Functional Modeling Lecture 5
    • Chapter 6 of your textbook

  5. Object-Oriented analysis and Design Lectures 6,7 and 8
    • Chapters 8, 9 and 10 of your textbook

  6. Object-Oriented Implementation Issues Lectures 9 and 10

  7. Midterm Exam

  8. Object-Oriented programming Languages

    SmalltalkLecture 11 Team 1 presentation
    C++Lecture 12 Team 2 Presentation
    EIFFEL Lecture 13Team 3 presentation
    Ada 95Lecture 14Team 4 Presentation

  9. Object-oriented Implementation CASE Tools

    CASE ToolsLecture 15Team 5 Presentation

  10. Object-oriented Software Metrics ( time allowed)


Project:

Each team will be asked to work on a project of their choice to demonstrate their understanding of modeling, analysis, design and implementation of a small software system using object-oriented methodology. A list of 5 projects is provided in this course syllabus. If more than one team shows interest in a given project we will draw names.


Course requirements:

  1. Paper/presentation/participation 25%

  2. Examination 40%

  3. Project 35%


Grading Policy:

In order to pass the course (a grade of B or better) students must demonstrate their ability to understand object-oriented related topics and be able to work in an object-oriented development environment. Therefore, a minimum of 75% achievement on the exams and 75% on the projects and paper/presentation is required for a grade of B in the course. Note that achieving 75% score on exams and 75% score on project and presentation is a necessary condition for a grade of B not a sufficient condition. The final grading will be done according to the following procedure.


Grading:

Let T be the maximum total points achieved in this course by a given student. Let S be the total score you achieved in this course. Define

Z = Max( 1/2(100 + T), 90)
your letter grade will be:
		A 	if   T -0.1 * Z <= S <  100
		B	if   T -0.2 * Z <= S <  T -0.1 * Z 
		C	if   T -0.3 * Z <= S <  T -0.2 * Z 
		F	if            0 <= S <  T -0.4 * Z 


Important Notes

  1. This course is a team-oriented course. The class will be divided into 5 teams of 3 or 4 members. Anyone who cannot be an active member of a team because of any reason other than physical handicap MUST DROP this course. Those students with documented physical handicap, that prevents them to work on a team, must provide me with a letter from their physician indicating so.

  2. Teams must have at least 3 hours per week meeting scheduled in Stephens Hall, so I can monitor their activities.

  3. Each team should select one member as the leader of the team. Coordination of the team work and schedule, preparation of weekly status report and presentation of any problem with the team or a team member are some of the responsibilities of the team le ader.

  4. Teams MUST give me their members, leaders and weekly meeting schedules at the beginning of the third lecture. Due to the concentration nature of the Summer session, I cannot allow any change in the structure of the team after the third lecture.

  5. Each team must give me its presentation material one week before their presentation is due. The material must be ready to duplicate for class distribution. Make sure your material is professionally prepared and is less that 50 pages long.

  6. Team presentation is for one full lecture (150 minutes) and should be done by all members of the team. The team should allow for 20 minutes of question/answer at the end of the presentation.

  7. The grading of the presentation and presentation materials is team-oriented. Even member of the team may have different responsibility in preparing the report but the team will get one score for its work. Therefore, the team leader must make sure that proper review of the presentation is done well in advance to correct any deficiency that may exist.

  8. The score on the project will be the score of the team. Therefore, each member of the team will get the same score on the project.

  9. If there is any problem regarding a member of the team, the problem must be documented and a report signed by the members of the team must be given to me at least two weeks before team presentation or team project is due.

  10. A team member who is absent from the scheduled meeting (the one in Stephens Hall) will loose 5% of his/her score each time that he/she is absent. One absentee is allowed for each member. Therefore, the 5% penalty does not apply to the first absentee.


Project Description

The language and the implementation environment is a selection that the team must make. You are responsible to create adequate database to test your project.

Project 1: Implement the Automated Teller Machine discussed in your textbook chapter 8.

Project 2: A Vending machine with change capability. Reference number 2 is very helpful for this project.

Project 3: Create a group of data structure objects to be used in a high-level language such as Pascal, C, Ada, etc. This should include the following:

Project 4: Design a security system for a building. The purpose of this system is to prevent/report unauthorized entry into a building or a secure area of a building. It monitors the patrols of security guards and reports any anomalies in their patrol sc hedules. Note that monitoring of the light switches and smoke detectors is assigned to a different subsystem. See reference number 9 Chapters 5, 6 and 7 for detailed description of this project.

Project 5: Design a class scheduling system. The system should work in batch mode as well as in interactive mode. The batch mode is to create the schedule and the interactive mode is to modify the schedule. The scheduling time is from 8:00 am to 10:00 pm. Each classroom is identified by its building, its room number and its capacity. The scheduling algorithm should optimize the use of the seats in each room. The course schedule forms will have the following information:

Each department is given 1 to 3 classrooms to use for their courses. What ever course that they cannot schedule in their own classrooms they will leave the classroom number in the schedule form blank and the system must find a room for that course.

Note that when a course is assigned to a class then we must schedule it in that class. Therefore, the system completes the scheduling process in two passes. The system must check for any form of conflict or inconstancies. You may use the university schedu le book as a design guideline. You must create a large enough database to test your system. At least you should provide for 10 buildings, with 5 to 8 classrooms in each building. The capacity of classrooms are from 20 to 250. Approximately 10% of capacity 20, 30% of capacity 30, 40% of capacity 40, 15% of capacity 60 and 5% of capacity 200+. You must use at least 30 departments, with a number of courses coming from each department.


Copyright © Prof. Ali Behforooz