Course Outline: VA, Radford University

By: Higher Education

Abstract: CPSC 272: 0.0. Analysis, Design and Programming

CPSC 272 - Spring 1998
Software Engineering 2: 0.0. Analysis, Design and Programming

Instructor: Dr. Okie
Office: 233 Davis; Hours: MWF: 1-2 and TuTh: 11-12
Phone: Office: 831-5381; Home: 951-7372 (Before 8:30 p.m., please)

Email: nokie (Feel free to send email. I'll reply as quickly as possible.)
Prerequisite: CPSC 271 (Grade of C or better)
Java Text: Java 1.1: The Complete Reference, Second Edition, McNaughton and Shildt.
UML Text: UML Toolkit, Eriksson and Penker.

This is a course in object technology (OT), including object oriented analysis (OOA), object oriented design (OOD) and object oriented programming (OOP). In CS 271 you learned classical software engineering using a function-oriented approach in which a software system is viewed and developed as a collection of functions. In the object oriented (OO) approach to software engineering, the emphasis is on the structure of the data rather on the functions and procedures used to solve the problem, and in which a system is designed as a collection of objects and classes. In this approach, analysis, design and programming all use the same OO methodology which allows the same set of techniques and tools to be used throughout the software lifecycle.

While an OO design can be implemented in virtually any language, it is much more effective and productive to use a language that has full support for objects; examples of such object oriented programming languages (OOPLs) include Ada95, C++, Smalltalk and Java. These languages are important not just because they implement OO designs effectively, but also because they include many features that represent the best of current thinking on programming language design. For this course we have chose Java as an implementation language for several reasons, including a relatively clean design, a complete set of libraries, availability, portability, reliance on classes, and support for applets.

Although your Java text is truly a complete and accessible reference for the entire Java language, note that this course is not a course in Java programming. Instead the goal of the course is to teach OOP with Java as a particular language than can be used to present concrete examples and to give you experience using the concepts presented in the course. Just as Java is used as a vehicle for learning OOP, the Universal Markup Language (UML), which is a language for building and describing models of computer systems, is a vehicle for learning object oriented analysis and design. As you can see in the schedule below, topics in OOA, OOD, and OOP are woven together throughout the semester.


Percent Activity
50 Homework assignments, in-class activities, and programs
30 Two in-class exams (around weeks 6 and 11)
20 Final exam (may be comprehensive)
100 Total

Homework will be given to reinforce your understanding of basic concepts. All grading will be based on correctness, completeness, as well as some percentage for neatness and professionalism, including neatness, clarity, and grammar. Homework will normally be due at the beginning of class on the date assigned. Late homework will normally not be accepted.

You will write several programs to give you a chance to master OT and Java. Some of these programs will be small while others will be relatively large. Some will be preceded by development of models as part of the OOA and OOD process. Programming assignments will normally have a 10% per day late penalty.

In exceptional circumstances I will give prior permission to miss an exam and increase the weight of your final; otherwise a missed exam will be worth 0 points. If you are unable to take an exam or complete an assignment, you should of course discuss it with me as early as possible.

All work submitted for grading must be your own. By accepting admission to Radford University, each student makes a commitment to understand, support, and abide by the University Honor Code without compromise or exception. Violations of academic integrity will not be tolerated. This class will be conducted in strict observance of the Honor Code. Refer to your Student Handbook for details. Any and all Honor Code violations will immediately be sent to the Judicial Board.

Tentative topics list (with readings):
1.Java for Ada programmers (J1-J5)
2.Objects and Classes (J6 and J7)
3.OOA - Part 1

    Review of software engineering lifecycles and processes
    Overview of OO software engineering and OOA and OOD tools (U1,U2)
    Use cases (U3)
4.OOA - Part 2
    Class diagrams and relationships (U4)
5.Inheritance and Java libraries (U4, J9)
6.Packages and Interfaces (J10)
7.Exceptions and Multithreading (J11) (U6 optional)
8.Dynamic Modeling and Software Architectures (U5,U7)
9.OO software engineering process - case study and Rational Rose (U4, U10-U12)
10.OO interface development
    Applets (J12, J18)
    Event Handling (J19)
    Abstract Window Toolkit (AWT) (J20-J22)
12.OT history and other OOPLs

Additional readings will be given later.
Parts of some of the chapters listed will be omitted.
Jn and Un represent chapter n from the Java 1.1 and UML Toolkit, respectively.

Server Response from: ETNASC02