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.
Content: 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.
Evaluation:
| 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 |
Assignments: 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)
JBuilder
11.Patterns
12.OT history and other OOPLs
Notes:
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.
|