Instructor: Dr Greg Butler, gregb@cs.concordia.ca
Teaching Assistant: Bahman Zamani, b_zamani@cs.concordia.ca
Teaching Fellow: Steve Barrett, ste_barr@cs.concordia.ca
Office Hours - Steve Barrett: Mondays 14:30-15:30 in ER-603-15 or ER-603-17
Office Hours - Dr Butler: Wednesdays 16:00-17:00 in ER-603-53
This course studies object-oriented design through lectures and projects.
The principal objectives of the course are to clarify the basic concepts of design; to explain how those concepts are applied to software; and to describe design techniques that have been successfully applied.
We focus on object-oriented design using UML models, architectural styles and patterns, and design patterns.
We touch on software reuse, software frameworks, generic programming, design rationale, issue-driven design, and other topics.
There is no textbook.
Webster Library Reserve (read the first two books!)
Stefano Ceri et al,
Designing data-intensive Web applications,
Morgan Kaufmann, 2003.
QA76.76.A65 D48 2003
The book on WebML www.webml.org
and the WebRatio tool.
Frank Budinsky et al,
Eclipse modeling framework : a developer's guide,
Addison-Wesley, 2004.
QA 76.76 D47E295 2004
See also www.eclipse.org
Erich Gamma, Kent Beck, Contributing to Eclipse : principles, patterns, and plug-ins, Addison-Wesley, c2004. QA 76.76 D47G355 2004
J. Craig Cleaveland, Program generators with XML and Java, Prentice Hall PTR, 2001. QA 76.73 J38C54 2001
Erich Gamma et al, Design patterns : elements of reusable object-oriented software, Addison-Wesley, c1995. QA 76.64 D47 1995
Other Recommended Reading
Craig Larman, Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and the Unified Process, 2nd edition, Prentice-Hall, 2001.
G. Booch, J. Rumbaugh and I. Jacobson, The Unified Modeling Language User Guide:, Addison-Wesley, 1999.
Erich Gamma, Richard Helm, Ralph Johnson, and John and Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley, 1994.
Christine Hofmeister, Robert Nord, and Dilip Soni, Applied Software Architecture, Addison-Wesley, 2000.
F. Buschmann, R. Meunier, H. Rohnert, P. Sommerlad, M. Stal, Pattern-Oriented Software Architecture, Wiley, 1996.
Len Bass, Paul Clements and Rick Kazman, Software Architecture in Practice, Addison-Wesley, 1998.
R. Kazman, M. Klien, P. Clements, ATAM: Method for Architecture Evaluation, Technical Report CMU/SEI-2000-TR-004, 2000.
Krzysztof Czarnecki and Ulrich W. Eisenecker, Generative Programming: Methods, Tools, and Applications, Addison-Wesley, 2000.
Students are required to complete three design assignments (60%) and a term paper (40%). They must give presentations of their design work to the class. The assignments are to be done in teams of three to five, but the term paper must be done individually. You must pass the term paper in order to pass the course as a whole.
We will look at the application of standard UML modeling techniques and the application of generative techniques to the problem of material tracking for a Laboratory Information Management System (LIMS).
An example of a LIMS is the caLIMS from the National Cancer Institute (NCI). This has excellent documentation (see the Tutorials and Developers sections) for the technical overview, use cases, and caLIMS design documents.
Our project will be a similar but simpler system tailored for the fungal genomics team at Concordia.
Marks for Assignments and Term Paper
Assignment 1
A simple use of the XRT system to illustrate the ease of generating a web site
for a data-intensive application with simple spreadsheet-like tabular data
and read-only facilities.
Develop spreadsheets for a simple LIMS to record Material-and-Location information,
and to record Plate-To-Plate mapping and Plate-To-Membrane mapping information.
Then create an XRT web site for the LIMS data.
Consider the following types of Material: clone, plate, membrane; the following types of Locations: well, plate, spot on membrane, membrane, rack, shelf, fridge, room; and the Mapping of wells from many plates onto one plate, and the Mapping from many (6) plates to one membrane. Generate tables of data in tab-delimited form for (A) Material-and-Location with columns Material, MaterialType, Location; (B) Plate-To-Plate mapping with columns DestinationPlate DestinationWell SourcePlate SourceWell; and (C) Plate-To-Membrane mapping with 7 columns DestinationMembrane SourcePlate1 ... SourcePlate6. Create the necessary metadata and configuration information for XRT; and then create an XRT website. Your report should be about 10 pages long. It should describe each of the above steps, and present sample data, the metadata and configuration information, and sample screenshots.
Assignment 2
An exercise in classical design techniques using UML and OO in order to familiarise yourselves with the details of the LIMS system.
Develop a standard OO analysis document, and a standard OO design document for the
LIMS. Your documents should be about 15 pages each, use standard UML notation, and
include accompanying text for each diagram.
Refer to the caLIMS documentation, but keep your LIMS simple. The LIMS system should cover only a few basic use cases:
There are three main actors: a SuperUser who administers the LIMS; a LabManager who can manage projects and protocols; and a LabTechnician who does data entry for plates and transfers of clones between plates. These are in a generalization hierarchy: A SuperUser can do anything a LabManager can do, and a LabManager can do anything a LabTechnician can.
As a sample Protocol use "Create Library" which consists of the activities "Create Clones" and "Select Clones". The first activity requires the creation of many clones in 96-well plates, while the second requires the transfer of selected clones to new 96-well plates.
Users must logon to the LIMS using their user account and password. On successful logon, the user is presented with a list of activities, roles, and projects that they have been assigned to. They select an activity, and then perform the corresponding use case.
Assignment 3
An exercise to experience two approaches to model-driven development:
the Eclipse Modeling Framework and WebML/WebRatio.
Design the models required as inputs for both EMF and WebRatio for the LIMS system.
Use the simple LIMS system that you specified in Assignment 2. If any of the use cases or features of the LIMS are too difficult to incorporate into WebML or EMF then omit those use cases/features or simplify those use cases/features. If you do omit or simplify things then state so in your report, and indicate why it was necessary, and how you simplified things. It must be a simple LIMS, so simplify your system if necessary.
You do not have to implement the LIMS. You do have to create all the necessary input models required by WebML/WebRatio and EMF. If EMF requires transformations customized for the LIMS then indicate what customizations are required.
You should write two reports: one on WebML/WebRatio, one on EMF. Each report should be 10-15 pages. The report should include the models (all the necessary input models required by WebML/WebRatio and EMF) with accompanying text, and a summary of the steps that you would need to carry out in order to create and implementation from those models.
Marking Scheme: Each report will be marked out of 10. Overly long reports will be penalised. Two marks will be awarded if you provide all the necessary input models (and a brief description of all necessary customized transformations if EMF requires customized transformations for the LIMS); three marks will be awarded for the clarity of your models; two marks will be awarded for the simplicity of your models; three marks will be awarded for your description of the steps that you would need to carry out in order to create and implementation from those models. You will not get any marks for actually creating an implementation.
Compare and contrast your experience with EMF and WebML/WebRatio.
A useful comparison compares oranges with oranges: so first make clear what is the scope of application of each of EMF and WebML/WebRatio; then make clear where these scopes overlap. That is, for what kind of applications are both EMF and WebML/WebRatio suitable for?
Then, for these kind of applications, explain the important steps required for their development, validation, quality control, deployment, maintenance, evolution, etc and compare how well each of EMF and WebML/WebRatio support these activities. Of course, you have been focusing on design, so you may have more to say about this activity than the others. Illustrate this with examples from assignment 3.
Include a summary of advantages and disadvantages of EMF and WebML/WebRatio, when used on projects for the kind of applications that both are suitable for.
I will mark your term paper as if I was an IT executive who was making a decision about whether to use EMF or WebML/WebRatio based on their technical merits. I had asked you to carry out a case study (for example, assignment 3), and the term paper is your report to me. So: make your term paper no longer than 15 pages; start with an ``executive summary'' of your findings; then tell me the important stuff (ie each of your findings, what do they mean, why are they important, what was the basis of your finding, ...); then tell me the less important stuff (ie supporting evidence), but only include information which is absolutely necessary to make your points.
You must pass the term paper in order to pass the course as a whole.
2005-01-31: Assignment 1 (XRT web site) due at start of lecture. Deadline is extended to 2005-02-07.
2005-02-28: Assignment 2 (OO Analysis and Design) due.
2005-04-04: Assignment 3 (WebRatio and EMF designs) due. A hardcopy should be placed in my mailbox in ER-603.
2005-04-25: Term Paper due. A hardcopy should be placed in my mailbox in ER-603.
2005-01-03 Lecture 1: Course Introduction
Course outline
caLIMS Overview
2005-01-10 Lecture 2: Design Introduction
Basics of Software Design
Review of Software Engineering
2005-01-17 Lecture 3: Meta-Data Modeling: XRT system
Introduction to Generative Software Development from
Krzysztof Czarnecki's
course.
Generalized biological database platform based on
cross-referenced tables (XRT)
developed at UT.
2005-01-24 Lecture 4: Meta-Data Modeling: XML+DOM+SAX+Java+JAXB
Anders Moeller and Michael I. Schwartzbach, The XML Revolution, a great tutorial!
Ed Ort and Bhakti Mehta, Java Architecture for XML Binding (JAXB) on Sun's JAXB site.
2005-01-31 Lecture 5: Generative Programming
Model-Driven Development from Krzysztof Czarnecki's course.
2005-02-07 Lecture 6: WebML and WebRatio
Lecture: "Conceptual Modelling of Web Applications, Workflows and Web Services" tutorial at WISE 2003.
WebML www.webml.org and the WebRatio tool. See Ceri's book on Library Reserve.
Stefano Ceri, Piero Fraternali, Aldo Bongio, Stefano Butti, Roberto Acerbis, Marco Tagliasacchi, Giovanni Toffetti, Carlo Conserva, Roberto Elli, Fulvio Ciapessoni, and Claudio Greppi, Architectural Issues and Solutions in the Development of Data-Intensive Web Applications, CIDR 2003.
2005-02-14 Lecture 7: WebML and WebRatio (continued)
See also on Teaching Materials
On the WebRatio web site, you can download a demo of their tool (a macromedia flash presentation) and you can download for trial use WebRatio for Linux or Windows. The trial version requires an internet connection back to www.webratio.com in order to authenticate your trial version upon initial start-up. Hence, the computers in BE-243 are not suitable for WebRatio.
NEW (15 March 2005) News from Stephen Barrett that the latest trail version of WebRatio does not need an internet connection back to www.webratio.com for automatic authentication; you can do this seprately by internet. Hence, the computers in BE-243 should be suitable for WebRatio.
2005-02-21 Mid-semester Break
2005-02-28 Lecture 8: Object-Oriented Frameworks
2005-03-07 Lecture 9: Eclipse, SWT, Eclipse Modeling Framework
Lecture slides by Stephen Barrett on Eclipse and the Eclipse Environment.
See www.eclipse.org, www.eclipse.org/emf, and the Eclipse books on Library Reserve.
Eclipse and EMF are available on the Solaris and Linux machines, and is accessible from normal labs provided that your path includes "encs/bin".
2005-03-14 Lecture 10: Eclipse, SWT, Eclipse Modeling Framework
Lecture slides by Stephen Barrett on Eclipse Modeling Framework.
NEW (15 March 2005) zip file of examples by Stephen Barrett using the Eclipse Modeling Framework on the PurchaseOrder case study.
2005-03-21 No Lecture. Discussion of Assignment 3.
README and zip file of models by Stephen Barrett using the WebRatio for the PurchaseOrder case study.
2005-03-28 Easter
2005-04-04 No Lecture
2005-04-11 No Lecture