Florida state university cop 3331 Object-Oriented Analysis and Design

Download 0.84 Mb.
Size0.84 Mb.
  1   2   3   4   5   6

Table of Contents


COP 3331

Object-Oriented Analysis and Design


Spring 2003


Florida State University

Tallahassee, Florida 32306

Copyright 2001 Florida State University

All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted in any form or by any means without written permission from the Florida State University.

Introduction 1

Help with FSU Procedures and Technology 3

For Help with University or Course-Related Problems 3

For Help with Technical Problems 3

Syllabus for COP 3331 5

Course Number, Name, and Prerequisite 5

Course Description 5

Overall Course Objectives 6

Required Course Materials 6

Course Requirements 10

Assessment 11

Course Schedule 12

Course Policies 14

Grading 16

About This Study Guide 19

Week 1 22

Week 2 35

Week 3 44

Week 4 50

Week 5 59

Week 6 68

Week 7 73

Week 8 76

Week 9 80

Week 10 82

Week 11 84

Week 12 87

Week 13 91

Week 14 95

Week 15 97

Week 16 99

Appendix 101


COP3331: Object-Oriented Analysis and Design

Course Director: Ian Douglas

Instructor: David A. Gaitros, gaitrosd@cs.fsu.edu , (850) 644-4055

Welcome to Florida State University’s COP 3331: Object-Oriented Analysis and Design. This course assumes that you have taken COP 3330: Object-Oriented Programming and an introductory course in Computer Science. In particular, we assume that you have already been introduced to an object-oriented programming language and understand the concepts of encapsulation, inheritance, and polymorphism.

Developing a proficiency in programming is a basic skill requirement for both computer scientists and software engineers; however, programming skills alone are insufficient to make you a successful software engineer. For large-scale problems, an understanding of and experience in systems analysis and design are also required. In this course you will begin to develop such knowledge and skill, and increase your familiarity with the principles of software engineering. You will also gain practical skills in using Unified Modeling Language (UML).

Help with FSU Procedures and Technology

A complete learning community and support group will help answer your questions and remedy any problems, from enrolling in courses and developing an academic plan to accessing your course website and submitting assignments via the Web.

For Help with University or Course-Related Problems

Your Learning Community includes the following help:

  • See your academic coordinator for questions and concerns about:

  • academic requirements of the University and your department
    or school

  • procedural matters such as course equivalency substitutions, course prerequisites, or graduation checks

  • See your course mentor/instructor for questions and concerns about:

  • course content

  • your progress in the course
Course-specific questions you might ask a mentor or instructor:

  • “Can you help me understand the difference in meaning between the terms protocols and standards in the Week 9 assignment? They sound like the same thing.”

  • “What can we do about one of the other students in our group project who isn’t doing anything? The rest of us can’t continue until she finishes her part of the project.”
General questions a student might ask a mentor:

  • “When I go to take my proctored exam, will the proctor be able to answer questions I might have about the test?”

  • “Will I be at a disadvantage because I live too far away from you to ever meet with you face-to-face?”

See your lead faculty only when your mentor or instructor directs you to do so or when you have a problem that is not adequately addressed by your mentor or instructor.

For Help with Technical Problems

If your problems or questions concern your computer equipment, software, Internet connection, or the course website, follow the procedures described in one of the following two boxes:

If you have a technical question and are able to connect to
the Internet:

  1. Check out the Online Support website at:


  1. You may go directly to the Student Handbook for Online Learning, which provides step-by-step instructions on using the course website as well as technical contacts. It is available online at:


  1. If your question or problem is not addressed by the websites listed above, then send an e-mail to:


If your problem concerns your course website, please include the following information in your email:

  1. The area in the course website at which you are experiencing difficulties (e.g., Discussion Board, Virtual Chat room, or file upload)

  2. A detailed description of the problem and exact transcriptions of any error messages

  3. Your course, course prefix, section, and instructor’s name

  4. Your name, e-mail address, and a daytime phone number

And, if you can, include the following technical information:

  1. The Web browser your are using (e.g., Netscape Navigator, Microsoft Internet Explorer, AOL)

  2. The operating system you are using (i.e., Windows 95, 98, or NT; Mac; Linux; or Unix)

  3. Whether you are connecting with a modem or within a network

You will receive a reply to your email on the next business day.

If you have a technical question and are not able to connect to
the Internet:

Call the ACNS Help Desk at 1-850-644-8502.

Syllabus for COP 3331

Course Number, Name, and Prerequisite

Course Number:

COP 3331

Course Name: Object-Oriented Analysis and Design

Prerequisite: COP 3330 Object-Oriented Programming

Course Description

This course introduces you to software engineering and focuses on the important activities that precede the writing of computer code. It will build on many of the concepts and procedures you learned in the previous courses. In the previous courses, you were acquainted with the fundamental concepts of computer science, and began to develop skills in computer programming. You should have learned how to represent problems you encounter and to carefully consider approaches to solutions before beginning to write code.

Thus far, you have dealt with small, relatively well-defined problems. In the world of commerce and industry, technological issues and problems are much larger and more complex. The problems are well beyond the scope of a single individual. Software engineers, in collaboration with others, often spend much of their time brainstorming, discussing, and creating documentation of problems and problem solutions (often incorporating complex diagrams), and a relatively small amount of time writing actual code.

Analysis and design are two of the key activities involved in software development. These activities can be carried out using a number of different methods and tools. Many modern software development methods are based around the object-oriented approach. It is this approach that we will focus upon in this course, and it is assumed you are already familiar with the basic principles of object orientation.

It is important to recognize that there is no one right or wrong way to develop software. Two companies can organize the process of development very differently, yet both may produce successful systems. The overall efficiency of the development process is more critical to the success of the project than the particular method or tool that is used. In order to be efficient, software developers need to give as much consideration to their development process as they do to the product.

In this course, you will gain practical skill in analysis and design that will complement your skills in programming. You will learn about the problems of and approaches to developing large computer systems, and will acquire an understanding of what constitutes a development methodology. You will also experience using computer-aided software engineering (CASE) tools and learn an industry standard modeling language, Unified Modeling Language (UML).

This course is designed to complement the programming course COP 3330: Object-Oriented Programming, in which you have gained the programming experience needed to convert completed designs into computer executable code.

This course can be divided into four learning sections. In the first section (Weeks 1–3) you will focus on systems engineering. In the second section (Weeks 4–7) you will focus on analysis. (Week 9 is the midterm exam, and Week 10 is spring break.) In the third section (Weeks 8, 11–12) you will focus on design. In the final section (Weeks 13–14) you will focus on some issues in software development methodology, including quality control. Use Week 15 for exam preparation.

Overall Course Objectives

After you have completed this course, you should be able to:

  1. Describe and explain the main stages, methods, tools, techniques, and problems involved in systems and software engineering.

  2. Explain the main concepts and goals of analysis and design.

  3. Demonstrate practical skill in the use of an analysis and
    design notation.

  4. Demonstrate technical and communication skills required for working in systems development teams and dealing with .stakeholders.*

Required Course Materials

You need all of the following to complete this course:

  • Textbook

  • Study guide

  • Access to the course website

  • CD-ROM

  • UML diagramming software


Bruegge, B., & Dutoit, A. (2000). Object-oriented software engineering. NJ: Prentice Hall.

Companion website for this book: http://cw.prenhall.com/bookbind/pubbooks/bruegge/


Booch. G. (1999). The software development team.

Available: http://www.rational.com/products/whitepapers/100580.jsp [2000, November 30]

(Also reprinted in the appendix to this study guide.)

Recommended Additional Reading:

This course makes use of one textbook and you are also referred to additional readings within this study guide. If you would like to broaden

your knowledge, you are encouraged to consult other texts and Web-based sources.

  • The textbook we are using looks at software engineering from an object-oriented perspective, but most software engineering texts will take a more general approach. For an example, see:

Pressman, R. (2000). Software engineering: A practitioner’s approach. New York: Prentice Hall.

Sommerville, I. (1996). Software engineering. Harlow Essex, England: Addison-Wesley.

  • If you wish to learn more about the general process of product development (not restricted to computer systems), consult:

Reinertsen, D. G. (1997). Managing the design factory. New York: The Free Press.

  • There are a number of relevant links provided on the course website. These are update regularly. Some of the main sites relating to software engineering and OOAD are:

The Software Engineering Institute: http://www.sei.cmu.edu/

The Method Engineering Encyclopedia:


Rational Software—the market leader in OO computer-aided software engineering (CASE) tools:


  • If you wish to go into more depth on the use of UML in analysis and design, the following are recommended:

Booch, G., Rumbaugh, R., & Jacobson, I. (2000). The complete UML training course. Pearson Interactive.

Larman, C. (1997). Applying UML and patterns. New York: Prentice Hall.

Course Website Features:

On the course website you will find a number of resources, including the following:

  • Templates for the weekly assessments and project reports.

  • Self-test quizzes

  • Lecture presentations

  • Examples

  • Useful links

  • Group working areas


The Multimedia CD-ROM (hereafter referred to as the CD-ROM) contains material that will be used in this course. These include the following:

  • A series of interviews with practicing software developers

  • A student version of Rational Rose visual modeling tool

  • The runtime version of Apple’s QuickTime video player

While using this learning resource, keep the following in mind:

  • Depending on the speed of your machine, there may be some delay when loading video clips.

  • You will need to install the QuickTime software in order to play the videos. This software is available on the CD-ROM.

  • It is recommended that you use Internet Explorer and a screen resolution of at least 800x600 while accessing the videos.

  • The interviews will also be available at the course website in audio-only form.

The video interviews will be utilized in a number of the weekly assessments throughout the course. You can access the video files from your Web browser by selecting Open from the file menu and then selecting interviews.html from the CD-ROM. You can also click My computer on the desktop, select the CD-ROM drive, open the Interview folder, and then double-click the interviews.html file. Your computer screen should look like that shown on Figure 1.

Figure 1: Opening screen for the interviews
Selecting one of the numbered questions will take you to a screen like the one shown on Figure 2.

Figure 2: Accessing the videos for each question
After you have selected a question, you will note that the next screen contains photographs of people from the various companies. By double-clicking on one of these pictures, you will be able to access a video of that person’s answer to the question. A glossary defining some of the technical terms used in the answers may be available. There is also a link to the main page or to the next question in the sequence.

In order to play the videos, you will need a version of Apple’s QuickTime installed on your machine. The latest version of this software can be obtained from


You will find version 4.12 (most recent version as of 11/07/00) on your CD-ROM. Double-clicking on this icon will start the installation program.

Course Requirements

To successfully complete this course you must read assigned texts, listen to lectures, and participate in discussions. Completing the assigned readings before their corresponding lectures and discussions will enable you to raise relevant questions and to improve your learning experience and your grade.

Each week of the course you will be given a set of activities to complete. These activities usually involve taking self-tests from the textbook and consulting the website for other learning resources. Some weeks of the course will also provide “Additional Notes” and Web references to cover material that is not dealt with in the textbook.

Most weeks there are assessments to be completed. These are designed to enhance your learning and demonstrate your understanding of the material. Most weeks you will have to submit assessments to your mentor or TA for grading.

In the first half of the course (prior to the midterm exam), you will find that there are more assessments to complete. In the second half of the course you will be completing a course project. Consequently, there will be fewer assessments in the latter half, as you will be expected to spend time on the course project. You should anticipate an average of 10–15 hours for each week’s activities and assessments.

Discussion: Active participation in discussions and group work is an important part of the course. Your contributions to the class will enrich your own experience and those of your classmates.


The overall course grade is determined as follows:

Weekly Assessments


Analysis and Design Project


Midterm Exam


Final Exam


Weekly Assessments

Weekly assessments include assignments that ask you to demonstrate your command of the week’s materials. Each assignment includes the total possible points you can earn and the grading criteria on which your submitted work will evaluated. The total number of obtainable points will vary from week to week. Each week, the points earned on the assignments in the assessments are totaled to give the weekly score. The 35% portion of your grade derived from weekly assessments will be determined by dividing the total assignment points earned by the total number of assignment points possible. The Week 13 assignment will not count towards the final score but will be treated as a substitution assignment; i.e., you can substitute the score on this assignment for your lowest score on the previous assessments. If you miss an assignment, this score can be substituted for the missing assignment.


The midterm and final exams will be proctored. You will be informed when and where to report for these exams. If the maximum obtainable score for an exam is not 100, it will be converted to a 100-point scale.

Analysis and Design Project

You will work in a group of three or four to produce a requirements analysis document for a new software system. Your grade will be assessed both on the quality of the report and the assessment of your effort by your peers and instructor.

Course Schedule

The following calendar delineates the assessments throughout the semester. It is your responsibility, however, to check the Announcements and the Course Calendar on the course website for the most up-to-date information and due dates of assessments.

Semester Calendar


Individual Assessments

Group Assessments

Week 1
Course Introduction

  • Introductory Notes

  • Textbook preface

  • Familiarize yourself with the course website.

  • Week 1 Assessment
    (14 pts)


Week 2
Systems Engineering

  • Ch 1

  • Week 2 Notes

Week 2 Assessment
(36 pts)


Week 3

  • Ch 3

Week 3 Assessment
(39 pts)

Workgroup assigned

Week 4

  • Ch 2

Week 4 Assessment
(38 pts)

Group discussion task

Week 5

  • Ch 4

  • Week 5 Notes

Week 5 Assessment
(41 pts)

Group task

Week 6


  • Ch 5

Week 6 Assessment
(22 pts)

Group Project released

Week 7
Project Preparation

  • Ch 11

Week 7 Assessment
(15 pts)

Group Project organization and planning

Week 8
System Design

  • Ch 6

Week 8 Assessment
(15 pts)


Week 9
Midterm Preparation

  • Review first 5 chs.



Week 10
Project Work/
Spring Break

  • Read ahead



Week 11
Design Methods

  • Extra readings provided

Week 11 Assessment
(20 pts)


Week 12
Object Design

  • Ch 7

Week 12 Assessment
(35 pts )


Week 13
Quality Control

  • Ch 9

Substitution Assessment
(30 pts)


Week 14
Issues in Methodology

  • Ch 12

  • Extra readings


Group Project due

Week 15
Revision/Exam Preparation




Course Policies

Assessments should be completed using the templates provided on the website. The assessments should be submitted before the due date through the DropBox at the course website using the standard file naming conventions.

Be sure to include the following information on all assessments that you submit:

  • Student ID number

  • Name

  • Section number (for on-campus students) or mentor’s name (for
    distance students)

You will receive assignment grades and feedback through
individual email.

NOTE: Please keep a backup copy of all your work. We cannot assume responsibility for lost items.

Late Policy

Descriptions of each assignment and evaluation criteria will be provided through the course. The dates listed for assessments may change as the semester progresses. If they do, you’ll be notified through the course bulletin board. However, we do expect assessments to be completed on time.

The policy regarding late assessments is 10% penalty for late assessments turned in within 24 hours of due date and 50% penalty for assessments turned in more than 24 hours after the due date. Assessments submitted later than four days after the due date will not be accepted. We use this system even in the event of excusable situations such as minor sicknesses or other unforeseen conflicts. However, any exceptions to this policy are made at our discretion.

Students who miss graded assessments receive a grade of zero. If you are ill or have a serious problem that prevents you from submitting an assignment on the day it is due, please contact your mentor or instructor at once and we will arrange an alternative date. This should be done at least 12 hours before the submission deadline.

The score for the last assignment will be treated as a substitution assignment, which can replace a missed assignment. Those who do not miss an assignment can use their score on the substitution assignment to replace their lowest score.

Download 0.84 Mb.

Share with your friends:
  1   2   3   4   5   6

The database is protected by copyright ©sckool.org 2022
send message

    Main page