Course Web Site - Fall 2010
Course Information
Professor: Greg Martin
Class Hours: Wednesday 7:20 pm - 10:00 pm, Innovation Hall 134
Office Hours: None scheduled. Please e-mail me if you have any questions.
TA: Sunitha Thummala (
TA Office Hours: 5:00 pm - 7:00 p.m on Thursdays
Room 4456 in the Engineering building
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.

This course will take advantage of the online collaboration tool known as Blackboard. The Blackboard application ( ) will be used as a way to collaborate around course content, and sending out information. All of the class slides will be accessible from Blackboard, as well as the homework assignments. I will be posting suggestions, hints, and helpful links from time to time. Also, if you have questions regarding the class material, or assignments, please post them in the discussion forum. Many students may have the same questions, or could use the information that I give in my response. Students may also answer questions and help other students through the forums. So it can be very helpful. I will check the boards on a regular basis and respond accordingly. It is in your best interest to log into Blackboard as soon as possible to verify that you are able to reach the class material. If you have any problems using the Blackboard application, please contact their support team at Refer to the Blackboard home page for more information.

Though SWE 619 is the only required prerequisite, other topics such as web based Java programming (HTML, JUnit, 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 Blackboard web site. You will submit your solutions using the Blackboard application.

You solution should contain a zip file containing all of your code and a readme file detailing any installation procedures, or dependencies. I reserve the right to deduct points if the readme and/or zip file is not included with the homework. Please read ALL of the assignment requirements, as they will contain important information, such as procedures, naming conventions, and how the assignment should be deployed. Points can, and will, be deducted from the assignments if it doesn't work, or if the source code is not supplied. Please review your submission before you submit it.
Be sure that you are able to access Blackboard, as refinements and hints for the assignments will be posted there. 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. Late assignments w ill not be accepted after 2 weeks. No homeworks will be accepted after the start of the last lecture on Week 14 (12/08/2010).

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

Since we will be focusing our efforts on EJB 3.0, it would be a good idea to be consistant with the software versions that will be used in class. Currently we will be using Java 6 and Jboss 5.1. It is your responsibility to have the homework assignments in working order. George Mason offers a JBoss application server to SWE 645 students as a convenience. However, this is merely a convenience and I expect assignments to be completed on time, regardless of the status of the George Mason server. I also expect to be able to deploy your assignment on my local laptop. I highly recommend 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/08/2010).

Honor Code Statement:

As with all GMU courses, SWE 645 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 35% of the grade)