SWE 619 - Object-Oriented Software
Specification/Construction - Fall 2008
Section 002: Mon. 7:20-10:00, David
J. King Hall 2053
Dr. Moataz A. Ahmed, Adjunct Professor
Office: ST2-335 – Hours: Mon.
6:30--7:00, Thu. 6:30-7:00, and by appointment
email: mahmed5@gmu.edu
TA:
Jae Hyuk Kwak
<jkwak2@gmu.edu>
Office: ST2-330 – Hours: Mon. 8:00pm-10:00pm
To
give the students a solid understanding of modern software construction. To
prepare students to construct sequential and concurrent programs. To encourage the construction of software systems of high quality.
In-depth study of software construction in a modern language
including control structuring and packaging. Concepts such as
information hiding, data abstraction, and object-based and object-oriented
software construction are discussed and illustrated. This course is part of the
core of the SWE program.
619
Object-Oriented Software Specification and
Construction (3:3:0). Prerequisites:
SWE foundation courses or equivalent.
In-depth study of software construction using modern,
object-oriented language with support for graphical user interfaces and complex
data structures. Specifications, design patterns, and
abstraction techniques, including procedural, data, iteration, type, and
polymorphic. Information hiding, classes, objects, and
inheritance. Exception handling, event-based systems,
and concurrency.
Barbara
Liskov with John Guttag. Program
Development in Java. Addison Wesley, 2001, ISBN 0-201-65768-6.
Joshua Bloch. Effective Java. Second Edition. Addison Wesley, 2008, ISBN 0-321-25668-3.
Note that the Second edition is newly released (May 2008); hence used copies
are probably the wrong edition.
Some
assignments require programming techniques not covered in the two required
texts. Online Java documentation is available from Sun.
|
Assignments |
35% |
|
|
Midterm Exam |
30% |
(October 20,
tentative) |
|
Final Exam |
35% |
(December 15) |
Class
attendance and participation is required and will be factored into the final
course grade. The absence factor will be discussed during the first lecture.
|
Topic |
# Lectures |
1.
|
Class
Overview |
1 |
2.
|
Procedural
Abstraction |
1 |
3.
|
Exceptions |
1 |
4.
|
Data
Abstraction |
2 |
5.
|
Iteration
Abstraction |
1 |
6.
|
Type
Hierarchy |
1 |
7.
|
Polymorphic
Abstraction |
1 |
8.
|
Concurrency |
1 |
9.
|
Specification
Checking; Temporal Logic |
|
10.
|
Common Java
Contracts |
1 |
11.
|
Classes and
Interfaces |
1 |
12.
|
Design
Patterns |
1 |
13.
|
Specifications,
Testing, and Security |
1 |
14.
|
Testing, |
1 |
* This schedule is subject to changes to best
serve the needs of the class
Code of Ethics. Please Read. IEEE and ACM codes of ethics are
at these URLs:
http://www.ieee.org/about/whatis/code.html
http://www.acm.org/serving/se/code.htm
The link to the GMU Honor Code has become:
http://jiju.gmu.edu/catalog/apolicies/honor.html
2008 by Dr. Moataz
Ahmed, Department of Computer Science,