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.
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
Course Schedule 12
Course Policies 14
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
COP3331: Object-Oriented Analysis and Design
Course Director: Ian Douglas
Instructor: David A. Gaitros, firstname.lastname@example.org , (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).
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
procedural matters such as course equivalency substitutions, course prerequisites, or graduation checks
See your course mentor/instructor for questions and concerns about:
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
Check out the Online Support website at:
http://www.fsu.edu/~webhelp/students/index.html 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:
http://www.fsu.edu/~distance/media/studenthandbook.pdf 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:
The area in the course website at which you are experiencing difficulties (e.g., Discussion Board, Virtual Chat room, or file upload)
A detailed description of the problem and exact transcriptions of any error messages
Your course, course prefix, section, and instructor’s name
Your name, e-mail address, and a daytime phone number
And, if you can, include the following technical information:
The Web browser your are using (e.g., Netscape Navigator, Microsoft Internet Explorer, AOL)
The operating system you are using (i.e., Windows 95, 98, or NT; Mac; Linux; or Unix)
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
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:
Describe and explain the main stages, methods, tools, techniques, and problems involved in systems and software engineering.
Explain the main concepts and goals of analysis and design.
Demonstrate practical skill in the use of an analysis and
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:
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.
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:
Analysis and Design Project
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.
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.
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
Section number (for on-campus students) or mentor’s name (for
You will receive assignment grades and feedback through
NOTE: Please keep a backup copy of all your work. We cannot assume responsibility for lost items.
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.