Welcome to:
Course CS6201: Software Reuse
January 2008
This page contains the following course information:
Course instructors
Course schedule
Latest News Course objective
Prerequisites
Grading policy
Lecture outline
Readings for the
course (download sources via links, start reading immediately
and continue during the course)
To download lecture notes: Lecture Notes PAPERS
JARZABEK, Stanislaw, S15-06/08,
ext. 2863, 96255863, e-mail: ![]()
Lectures: Tuesdays 16:00-18:00 COM1/212, first lecture: January 15,
2008
Consultation Hours: Tuesdays
Exam: 5 MAY 2008 Morning
|
week |
Student presentations |
special events / deadlines |
|
Feb 6 |
|
e-mail one-page project description |
|
Feb 12 |
presentation will be at later date |
|
|
Feb 19 |
Aspect-Oriented Programming (AOP), by Sim Weiqiang Alfred and Quak Yew Chong |
Guest lecture by Ulf Pettersson of STEE |
|
Feb 23 -
29 |
Recess
week |
|
|
March 4 |
Experiences with product line approach, by Shanti Prakash and Thomas Chee |
project draft due XVCL Workbench demo |
|
March 11 |
Annotations in Java and their use in EJB3.0 and JBOSS AOP, by: Bogdan Marius TUDOR, Cristina CARBUNARU |
|
|
March 18 |
Pattern-driven development on .NET or JEE , by Tan Lay Cheng and Yinxing |
2nd Hour: Guest lecture by Ulf Pettersson of STEE “Reuse Journey with ST Electronics Common Application Platform”, 30 minutes |
|
March 25 |
Web technologies: Service-Oriented Architecture, by Daya Sakti Nawa Kartika and Zhang Jisong |
|
|
April 1 |
Model-Driven Development (MDD), by Heng Boon Kui and Suriya Priya Asaithambi |
|
|
April 8 |
Software Configuration Management (SCM) support for reuse and product lines, by Leng Kian Jin, Edmund and Choo Zhi Min |
last lecture |
|
April 15 |
|
|
|
April 22 |
|
final project report due |
Posted April 15:
Readings for the
exam: reading-exam 08.htm
Correction to Question
1 in exam 2004: Correction Q1-exam-04.doc
Posted March 31:
Please download
lecture notes set #6 (last one) from Lecture Notes
Posted February 21:
As mentioned during the lecture, here is
paper about IBM’s research on Multi-Dimensional
Separation of Concerns
Paper Web spaghetti
code for 21st century
Updated Presentations
assigned to students to be in sync
with changes in presentation schedule.
In case you have not done so, please read
these sources in coming two weeks:
P. Jensen “Experiences
with Product Line Development of Multi-Discipline Analysis Software at
Overwatch Textron Systems,” 11th International Software
Product Line Conference, SPLC 2007, Sept. 2007, pp. 35 - 43
Deelstra, S., Sinnema, M. and Bosch, J. “Experiences in
Software Product Families: Problems and Issues during Product Derivation,” Proc.
Software Product Lines Conference, SPLC3,
Boston, Aug. 2004, LNCS 3154, Springer-Verlag, pp. 165-182
Cordy, J.R. “Comprehending
Reality: Practical Challenges to Software Maintenance Automation”, Proc. 11th Int. Workshop on Program
Comprehension, IWPC’03, Portland, Oregon, May 2003, pp. 196-206 (keynote)
Reading about Aspect-Oriented Programming for
all students to read: http://www.javaworld.com/javaworld/jw-01-2002/jw-0118-aspect.html
Conventional
method support for managing changes during maintenance and evolution
Software
similarities: symptoms and causes
Mixed-strategy
approach to generic design
Krueger, C. “Eliminating the Adoption Barrier,”
Point-Counter Point Column, in IEEE
Software, special issue on Initiating Software Product Lines, July/August
2002, pages 28-31 http://www.biglever.com/papers/PointCounterPoint.pdf
Posted February 14, 2008
I updated the detailed course plan, above.
Please make comments on student presentations
and enter into this form Student
presentation marks.xls
Return the form to me at the end of the
course.
If everything goes fine, the last lecture is
April 8, nor April 15 (somehow I missed March 4 from my schedule).
Posted February 11, 2008
Please download
lecture notes set #4 and set #5 from Lecture Notes
We will discuss Web
Applications, set#5, on Tuesday Feb 12,
but please bring
also set #4.
Posted February 5, 2008
Very interesting comments by P. Clements
(SEI) on PL and other approaches:
http://www.sei.cmu.edu/news-at-sei/columns/software-product-lines/software-product-lines.htm
Posted January 30, 2008
Presentations assigned to
students
I will be updating the above file as I
hear from the students about presentation topics. Please check the updates
before you send your topic selection.
Posted January 25, 2008
You can
download lecture notes set #3 from Lecture Notes
Posted January 7, 2008
If you plan to
take the course, it is advisable that you start reading Readings for the course as you can.
You can
download lecture notes set #1 and #2 from Lecture Notes (Set #1 and #2 are available)
Let me know if you
find any broken links, especially in Readings for the course
----- End of Latest News
----
The objective of the course is to familiarize
Students attending the course should:
During first four weeks of the term, the instructor will provide motivation and background for studying reuse.
In the remaining weeks, there will be a lecture followed by student presentations and discussion. Finally, you will do a project.
Students should read sources provided at: Readings for the course
Here is a list of Presentations assigned to
students
During presentations, we shall study topics in software reuse based on topics for presentations. You can also propose your own topic for presentation provided it is related to the theme of the course, requires approval of course instructor.
Depending on the number of
By January 24: Form presentation teams and let me know your selected topic for presentation (based on topics for presentations) by sending e-mail as follows:
Topic number and title
Team name
|
student matric number |
student name |
|
|
etc. |
|
|
The first presentation will be on the 5th week of the course.
Read guidelines in: Conduct of the Presentations
Send presentation slides (PDF) to the instructor or to all course participants one day before your presentation.
I strongly recommend that after each class your write a brief position paper (1/2-1 page) for each topic discussed during lectures and student presentations. In a position paper, summarize what you have learnt, provide your own comments, point out controversial issues, indicate open problems, etc. You will find position papers very useful at the end of the course and during exam preparation. You do not submit positions to the instructor.
Project is to give students hands on experience in implementing reusable software. You will use a generative technique of XVCL developed in our lab, along with conventional reuse mechanisms of OO and component-based techniques.
You will do projects in teams (preferably the same as presentation teams), or you may choose to do a project individually, up to you.
|
Due date |
Deliverable |
||||||
|
February 6 |
Send by e-mail : Project teams (if different from presentation team) e-mail to me: Team name Team members
One-page
project description |
||||||
|
March 4 |
Draft Project Report send by e-mail Draft Project will not be marked based on the contents. Based on the Draft Report, I will provide you with feedback on the project progress. Describe the work accomplished. Highlight problems. If there are changes to project objective, scope, deliverables and/or project schedule, please describe. |
||||||
|
April 22 |
Final
Project Report send by e-mail and also hand in hardcopy to my
office S15-06/08 The final project report will be marked based on the contents, clarity, originality and quality of the XVCL solution and project documentation. |
Project mark is computed as follows:
1. Draft Project Report: For a Draft Report submitted on time, you will get 3 marks out of the 30 marks for the whole project. Late drafts will be accepted, but you do not get 3 marks.
2. The Final Project Report: The penalty for the late final project is 2 marks for each day (excluding Sundays and public holidays) the report is late.
A final grade for the course will be derived as follows:
Exam questions will be related to the lectures, project, and presentations.
I placed books on RBR in the Central Library for
your reference, in case you have special interest in certain topics:
XVCL and its applications are described in Part II of the book Jarzabek, S. Effective Software Maintenance and Evolution: Reused-based Approach, Auerbach, CRC Press Taylor and Francis, May 2007
The book available in the Forum CO-OP. Selected chapters (in draft form) you can download via links below.
Book chapters and papers related to lectures on product lines, XVCL and
general reading . You can download all the papers via links, read as you like.
Read before
and during first two lecture weeks: XVCL briefing,(Lecture Notes set #2)
Highlight of XVCL as a variability management mechanism for software Product Lines
Controlling Software Complexity by Unifying Similarity Patterns
Selected chapters from Effective Software Maintenance and Evolution: Reused-based Approach (not for wide distribution):
Conventional method support for managing changes during maintenance and evolution
Mixed-strategy approach – an overview
Step-by-step introduction to XVCL
Problem
of similarity patterns and generic design (Lecture Notes set #3):
Selected chapters from Effective Software Maintenance and Evolution: Reused-based Approach (not for wide distribution):
Software similarities: symptoms and causes
Mixed-strategy approach to generic design
[1] Jarzabek, S. “Applying Generative Programming Technique to Unify Software Similarity Patterns ,” description of similarity pattern problem and generic design, taking into account a number of empirical studies.
[2] Jarzabek, S. “Genericity - a “Missing in Action” Key to Software Simplification and Reuse,”
[3] Basit, H.A., Rajapakse, D.C., and Jarzabek, S. “Beyond Templates: a Study of Clones in the STL and Some General Implications,” Int. Conf. Software Engineering, ICSE’05, St. Louis, USA, May 2005, pp. 451-459
Reading on
product line projects with XVCL and Web
applications:
Chapter from Effective Software Maintenance and Evolution: Reused-based Approach (not for wide distribution):
Summary of projects with mixed-strategy approach
[1] Pettersson, U., and Jarzabek, S. “Industrial Experience with Building a Web Portal Product Line using a Lightweight, Reactive Approach,” ESEC-FSE'05, European Software Engineering Conference and ACM SIGSOFT Symposium on the Foundations of Software Engineering, ACM Press, September 2005, Lisbon, pp. 326-335
[2]
Zhang, H. and Jarzabek, S. "A Mechanism for Handling Variants in Software
Product Lines," a special issue on Software Variability Management of
Elsevier’s journal Science of Computer Programming; this paper covers the
whole product line lifecycle, using CAD product line as an example
[3] Zhang, W. and Jarzabek, S. “Reuse without Compromising Performance: Experience from RPG Software Product Line for Mobile Devices,” 9th Int. Software Product Line Conference, SPLC’05, September 2005, Rennes, France, pp. 57-69
Other chapters from Effective Software Maintenance and Evolution: Reused-based Approach (not for wide distribution):
Other techniques related to XVCL
Evaluation of the mixed-strategy approach
Problem of similarity patterns in software in Web
Applications (Lecture Notes sets #5):
[1] Rajapakse, D.C and Jarzabek, S. “An Investigation of Cloning in Web Portals,” Int. Conf. on Web Engineering, ICWE’05, July 2005, Sydney, pp. 252-262 (also poster at WWW’05)
[2] Yang, J. and Jarzabek, S. “Applying a Generative Technique for Enhanced Reuse on J2EE Platform,” 4th Int. Conf. on Generative Programming and Component Engineering, GPCE'05, Sep 29 - Oct 1, 2005, Tallinn, Estonia, pp. 237-255
[3] Rajapakse, D.C. and Jarzabek, S. “Practical Limits of Applying Dynamic Page Generation Techniques in Web Application Design: a Trade-off Analysis,” ICSE 2007
[1] P. Jensen “Experiences with Product Line Development of Multi-Discipline Analysis Software at Overwatch Textron Systems,” 11th International Software Product Line Conference, SPLC 2007, Sept. 2007, pp. 35 - 43
[2] Deelstra, S., Sinnema, M. and Bosch, J. “Experiences in Software Product Families: Problems and Issues during Product Derivation,” Proc. Software Product Lines Conference, SPLC3, Boston, Aug. 2004, LNCS 3154, Springer-Verlag, pp. 165-182
[3] Cordy, J.R. “Comprehending Reality: Practical Challenges to Software Maintenance Automation”, Proc. 11th Int. Workshop on Program Comprehension, IWPC’03, Portland, Oregon, May 2003, pp. 196-206 (keynote)
[4] Reading about Aspect-Oriented Programming for all students to read: http://www.javaworld.com/javaworld/jw-01-2002/jw-0118-aspect.html
[5] Some brief introduction to Aspect-Oriented Programming: find on http://aosd.net/ , introduction in Robert E. Filman, Tzilla Elrad, Siobhán Clarke, and Mehmet Aksit: Aspect-Oriented Software Development, Addison-Wesley, 2005, ISBN 0-321-21976-7 (RBR)
[6] Capilla, R. and Duenas, J. “Light-weight Product-Lines for Evolution and Maintenance of Web Sites,” CSMR’03
[7] Krueger, C. “Salion’s Experience,” PFE5, 2003
[8] Krueger, C. “Eliminating the Adoption Barrier,” Point-Counter Point Column, in IEEE Software, special issue on Initiating Software Product Lines, July/August 2002, pages 28-31 http://www.biglever.com/papers/PointCounterPoint.pdf
[9] Christof Ebert & Michel Smouts “Tricks and Traps of Initiating a Product Line Concept in Existing Products,” ICSE’03
[1] Basit, A.H. and Jarzabek, S. “Detecting Higher-level Similarity Patterns in Programs,” ESEC-FSE'05, European Software Engineering Conference and ACM SIGSOFT Symposium on the Foundations of Software Engineering, ACM Press, September 2005, Lisbon, pp. 156-165
Case study
with CVS:
Chapters from Effective Software Maintenance and Evolution: Reused-based Approach (not for wide distribution):
Evolution of versions and configuration management
Evolution with mixed-strategy approach: an example
Download XVCL processor, documentation, demo, case studies, etc. from: http://xvcl.comp.nus.edu.sg
Download, install and use XVCL Workbench:
a. Prerequisites:
i. Java Runtime Environment 5.0 or above
ii. Eclipse 3.2 or above
b. XVCL Workbench can be installed directly from your Eclipse with following steps:
i. From your Eclipse main Menu, go to "Help/Software Updates/Find and Install…"
ii. Choose "Search for new features to install" and click Next
iii. Click on "New Remote Site" and enter XVCL Workbench Update Site and http://xvcl.comp.nus.edu.sg/update/ for Name and URL boxes respectively
iv. Click Finish
v. In the next Dialog page, just tick on "XVCL Workbench" and click Next
vi. Accept the agreement in the next page and click Next again
vii. Click Finish to start Installing.
viii. Eclipse will connect to our update website to download and install the XVCL Workbench plug-in automatically. It needs to restart upon finishing.
ix. When Eclipse is up again, go to Window/Open Perspective/Other… and double click on XVCL Development.
c. Get User Guide via XVCL Workbench Help. Start using XVCL Workbench.
If you need a CASE tool for UML modeling.
Rational Rose is installed on PCs in SOC1, Computation Lab2 (06-16) and Lab3 (06-18)
You can download a free copy of UML tool from http://argouml.tigris.org/ or http://www.ilogix.com/modeler/
The lectures will emphasize a software Product Line (PL) approach to reuse
(other names of PL are a program family or product family).
Introduction to software reuse
XVCL briefing
--- XVCL is a language, method and tool for reuse that you will use in your project
Case studies on product lines and elimination of redundancies with XVCL
Design for reuse with information hiding and layered design
Domain engineering: a systematic support for software Product Lines (PL)
Component-based Software Engineering (CBSE)
Domain analysis for Product Lines
Design of product line architectures
Problems with reusing implementation level components: software - hardware analogy