George Mason University
Department of Computer Science

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 View message header detail<jkwak2@gmu.edu>
Office: ST2-330 Hours: Mon. 8:00pm-10:00pm


Objective:

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.


Catalog Description:

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.


Required Textbook:

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.

Recommended References:

Some assignments require programming techniques not covered in the two required texts. Online Java documentation is available from Sun.


Grading Policy:

 

 

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.


Topics to be covered*:

 

 

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


Ethics:

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, George Mason University