Course Web Site - Fall 2008
Course Information
Professor: Greg Martin
Class Hours: Wednesday 7:20 pm - 10:00 pm, Robinson Hall A247
Course Web Page:
Detailed study of the concepts and engineering principles of software component and component-based software systems. In depth study of one component model Enterprise JavaBean (EJB) and Web service. After the course, students should be prepared to create large-scale component-based software systems.


There is one required text for the course:

  • Enterprise JavaBeans 3.0 (5th Edition), by Bill Burke and Richard Monson-Haefel, O'reilly
    This book is not in the Johnson Center bookstore, however it can be found on any online website, such as Amazon and O'Reilly and some commercial bookstores.

In addition to the required text, we will read from various sources on the web, and slides that will be made available on the web site. The schedule for the readings is given on the schedule web page.

There are five recommended books for this couse, and can help with further understanding of the subjects. They are not at the Johnson Center Bookstore, but can be found online.

  • Mastering Enterprise JavaBeans (2nd Edition),by Ed Roman, Scott W. Ambler and Tyler Jewell, John Wiley & Sons, ISBN:0471417114
  • Java Web Services Architecture, by James McGovern, Sameer Tyagi, Michael Stevens and Sunil Mathew, Morgan Kaufmann, ISBN: 155860900
  • EJB Design Patterns, by Floyd Marinescu, John Wiley & Sons, ISBN:0471208310
  • Component-based development with visual C#, by Ted Faison, John Wiley & Sons; ISBN: 0764549146
  • Moving to ASP.NET: Web Development with VB .NET, by Steve Harris and Rob MacDonald, APress, ISBN: 1590590090

Other web software reference books are listed on the assignment and resources page.


SWE 645 covers some of the topics related to the software development models that are used to support component-based software systems. We will be studying the software design and development side of component-based software.

Though SWE 619 is the only required prerequisite, other topics such as web based Java programming (HTML, Servlets, JSPs,...) and database programming (JDBC) are going to be used throughout this course. Therefore, background knowledge will be helpful. SWE 642, though not a required prerequisite, is a great background course for these topics. The class will be very practical (how to build things) and require extensive programming assignments.


A number of homework assignments will be given. I will discuss each in class and make the assignment available on the class web site. You will submit your solutions by sending an email to myself, and CC the TA. The email will contain a description on how to run, or access your assignment, and a zip file containing all of your code. I reserve the right to deduct points if the description and/or zip file is not included with the homework. Please read ALL of the assignment requirements, as they will contain important informaton, such as procedures and naming conventions. I will discuss how the assignments are to be deployed, and it will be contained in the assignment requirements.
Be sure that you are on the class mailing list, as refinements and hints for the assignments will be sent through email. Assignments will be checked immediately after the due date; if you finish an assignment late, you must inform us by email when it is ready for us to grade it. Changing an assignment after the due date without prior permission will be treated as a late submission. Late submissions carry an automatic 10 percent deduction in grade for each week that it is late. No homeworks will be accepted after the start of the last lecture on Week 14 (12/10/2008).

Assingments will be graded on the correctness of the code and the adherance to the requirements. A more detailed description on the homework grading will be included with the homework requirements when assigned.

Since some of the assignments are web-based, it is your responsibility to have the homework assignements hosted. George Mason offers a JBoss application server to SWE 645 students as a convenience. However, if you would like to host your homework elsewhere, that is permitted, as long as the TA and myself can access the assignment, and the server space where the assignment is hosted (in other words, we need SSH access to the server). Here are a couple companies that host examples of Java EE and EJB applications:

I highly reccomend downloading, and installing, the JBoss Applcation Server on your own computer, so that you can still complete your assignments, even if your application server, or Internet connection, is down.

Makeups & Late Assignments:

Missed tests cannot be made up. Late assignments will be deducted 10 percent per class meeting. Assignments that are handed in later than 2 weeks will receive a zero. No homeworks will be accepted after the start of the last lecture on Week 14 (12/10/2008).

Honor Code Statement:

As with all GMU courses, SWE 642 is governed by the GMU Honor Code. In this course, all assignments, exams, and project submissions carry with them an implicit statement that it is the sole work of the author, unless joint work is explicitly authorized. Help may be obtained from the instructor or other students to understand the description of the problem and any technology, but the solution, particularly the design portion, must be the student's own work. If joint work is authorized, all contributing students must be listed on the submission. Any deviation from this is considered an Honor Code violation, and as a minimum, will result in failure of the submission and as a maximum, failure of the class. Honor code violation may include, but are not limited to the following examples:

  • Copying answers from other students during exams.
  • Submitting homework that is not your own work.
  • Copying and pasting someone else's code into your own files (even with slight modifications)

The examples I show in class can be used to grow on, not to copy. I understand that in the real world, software reuse is considered the norm, and can drastically improve a projects schedule. However, in this class, software reuse will be considered an Honor Code violation, unless permission is granted before the project is submitted. When in doubt, ask me? It is better to find out what I would consider a violation before the assignment is submitted. This is not the real world, and one of the requirements to passing this class is that you, the student, can handle the material on your own.

For more information about the GMU Honor Code, Please visit the GMU Honor Code page.

Grading Policies:
  • There will be 5 computer programming assignments (total 35% of the grade)
  • There will be a closed-book, in-class, midterm exam (total 30% of the grade)
  • There will be a closed-book, in-class, final exam (total 30% of the grade)