SWE 645
Component-based Software Development

Spring Semester, 2014
Location: IN 206
Time: Thursday 7:20-10:00pm

Instructor    Overview    Textbook and Readings    Grading    Schedule    Academic Integrity

Professor: Dr. Vinod Dubey
Email: vdubey@gmu.edu
Class Hours: Thursday 7:20-10:00, IN 206
Prerequisite: SWE 619, or CS 540 and CS 571, or permission of instructor.
Office Hours: Anytime electronically, or by an appointment
GTA:Thabet Kacem, tkacem@gmu.edu
GTA Office Hours: Wednesdays, 3:30pm to 5:30pm, Room: 5321 Engineering Bldg.


This class will be a detailed study of the concepts and engineering principles of software component and component-based software systems that include in depth study of Struts framework, Enterprise JavaBean (EJB) component model, Messaging and Message Driven Beans, Java Persistance API (JPA)/Hibernate, and Web services. After the course, students should be prepared to create large-scale component-based software systems.

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. The course content will largely focus on server-side software design and development. We will learn technologies such as an overview of MVC-based Web development framework (struts2.0), Enterprise JavaBeans (EJB 3.1), Asynchronous Messaging and Message Driven Beans, Java Persistence API (JPA 2.0)/Hibernate, and Web services (SOAP, RESTful).

Though SWE 619 is the only required prerequisite, other topics such as web based Java programming (HTML, JavaScript, 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.


Textbook and Readings

In addition to above, we will read from various sources on the web, and slides that will be made available during the class. There are additional 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.


There will be a midterm and a final exam, both in class. The final exam will focus on material covered after the midterm.

Phone Use Policy: Phones should be switched off during the mid-term and final exams. No phone of any kind, especially smart phones with Internet access and camera is allowed to be on person during exams.

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. Your 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 will not be accepted after 2 weeks. No homeworks will be accepted after the start of the last lecture of the semester. 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.1, it would be a good idea to be consistent with the software versions that will be used in class. Currently we will be using Java 6 and Jboss 7.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. More information regarding JBoss and its use will be covered in class.

Programs will be graded on style and formatting as well as correctness.

Unless arrangements are worked out in advance, missed tests cannot be made up, and 10 percent per class meeting will be deducted for late homework submissions. Under no circumstances will any assignment be accepted after the official end of classes (the start of finals week).

Grades will be (approximately): 30% the programming assignments, 35% the midterm, and 35% the final. Final averages are assigned a letter grade according to the following ranges:
Percentage Grade
[99,100] A+
[92, 98] A
[90, 91] A-
[88, 89] B+
[82, 87] B
[80, 81] B-
[78, 79] C+
[72, 77] C
[70, 71] C-
[60, 69] D
[0, 59] F

Schedule (subject to change; check regularly)

Week Date Lecture topic Readings Announcements
1 1/23 Course overview
Introduction to Component Model
Common Software Engineering Architecture Patterns
  • Chapters 1, 2, 3
2 1/30 UI Tier
An overview of an MVC-based Web Development Framework (Struts 2)
  • Class notes, http://struts.apache.org/
3 2/06 UI Tier
MVC-based Web Development Framework (Struts 2) (Contd.)
  • Class notes, http://struts.apache.org/

 Programming Assignment 1
4 2/13 Business Tier
Introduction to Enterprise JavaBeans (EJB 3)
  • Chapters 3, 4

5 2/20 Business Tier
EJB3 Session Beans (Stateless, Stateful, Singleton)
  • Chapters 5, 6, 7

 Programming Assignment 2
6 2/27 Business Tier
EJB3 Session Beans (Contd.)
Brief overview of JDBC (optional)
  • Chapters 5, 6, 7
7 3/06 Business Tier
Messaging and Message Driven Beans
Midterm Exam Review
  • Chapter 8
8 3/13 Spring Break
No Class
9 3/20 Midterm exam
(7:20 pm - 10:00 pm)
10 3/27 Persistence Layer
Java Persistence Model (JPA 2.0)
Entity Manager
  • Chapters 9, 10
 Programming Assignment 3
11 4/03 Persistence Layer
JPA Entitiy Relationships, Java Persistence API Query Language (JPA QL)
  • Chapters 11, 13
12 4/10 Service Tier
XML, XML Schema, and SOAP-based Web Services
  • Class notes, JHTP Chapter 31
 Programming Assignment 4
13 4/17 Service Tier
SOAP-based Web Services (Contd.)
  • Class notes, JHTP Chapter 31
14 4/24 Service Tier
REST Archtecture & Restful Web Services
  • Class notes, JHTP Chapter 31

15 5/01 Service Tier
Restful Web Services(Contd.), Introductory Spring Framework (Optional)
Final Exam Review
  • Class notes, http://www.springsource.org
16 5/08 Final exam
(7:20 pm - 10:00 pm)
Note: JHTP refers to chapters in Java How to Program book



Academic Integrity

George Mason's policy concerning student conduct applies.  Although students are encouraged to discuss the topics covered in class, all homework assignments, exams, and projects are to be completed individually, unless joint work is explicitly authorized by the instructor. 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.

Please note that there are two honor code policies: an abstract GMU policy and a more specific departmental policy with regard to code plagiarism, test-taking, etc. The students can find them here: Honor Code Policies



If you are a student with a disability and you need academic accommodations, please see me and contact the Disability Resource Center (DRC) at 993-2474. All academic accommodations must be arranged through the DRC.