Welcome to:
Course CS6201: Software Reuse (2009)
Last changed: Tuesday,
April 14, 2009
Attention: lecture venue is SR5
(COM1/201), not AS6/211 as announced initially
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
JARZABEK, Stanislaw, S15-06/08,
ext. 2863, 96255863, e-mail: ![]()
Lectures: Wed
18:30-20:30 SR5 (COM1/201), first
lecture: January 14, 2008
Consultation Hours: Wed 16:00 - 18:00, in my office,
S15-06/08
Exam:
SR11, 27 APR 2009 1 pm (2 hours)
|
week |
Student presentations |
special events / deadlines |
|
Feb 14 |
|
e-mail one-page project description |
|
Feb 18 |
Aspect-Oriented Programming (AOP), by S N M Vivek Raja and Myo Kyaw Thu |
XVCL Workbench demo |
|
make-up lecture to be announced |
|
|
|
Feb 21 –
March 1 |
Recess
week |
|
|
March 4 |
|
no lecture |
|
March 11 |
Annotations in Java, and their use in EJB3.0 and JBOSS by Ong Chuiling and Lim Siewyen Problems in feature management by Phyu Hnin Thaw |
project draft due |
|
March 15 |
make up lecture |
|
|
March 18 |
Pattern-driven development on .NET or JEE , by Djoko Joewono and Ong Chee Chye |
|
|
March 25 |
|
no lecture |
|
April 1 |
Web technologies: Service-Oriented Architecture, by Mohammad Oliya and Dominik Markus Rueegger Model-Driven
Development (MDD), by Heng Kim Hai Quang
and Santheep Singh |
|
|
April 8 |
BigLever Product Line support by Zhu Huiquan Software
Configuration Management (SCM) support for reuse and product lines, by Khin
Lai Lai Khaing |
|
|
April 15 |
|
last lecture |
|
April 23 |
|
final project report due |
Posted April 14, 2009
Posted March 15, 2009
Please download
full description of PCE analysis and XVCL solution from Lecture Notes :
CS6201-5 Web Appl PCE.pdf. Let me
know any questions.
I also placed there
paper describing PCE: PCE in PHP
long.doc that may be helpful to understand slides.
Posted February 24, 2009
Please download
from Lecture Notes :
Ulf’s guest lecture slides: CS6201 Ulf TCP (guest lecture).pdf
CS6201-4-more on PL.pdf
Read through sources highlighted in yellow in section Readings for the course below
Posted February 16, 2009
Second hour,
February 18: Guest lecture by Ulf Pettersson, Technical Director of ST Electronics (Info-Software Systems) Pte
Ltd
Please download
from Lecture Notes two files:
2009 NUS Guest Lec 02 CAP Reuse Journey.pdf
Posted February 2, 2009
Please download
slides set #3 from Lecture Notes
Please check your name in Presentations assigned to
students
We fix the presentation schedule during lecture February 4.
Students who did not select the presentation – please do so asap.
Consider to team up with those students who conduct presentation alone.
Topics already assigned to students: 1, 3, 5, 6, 7, 8, 9, 10
Posted January 20, 2009
please download
updated slides set #1 and Set #2 from
Lecture Notes
Posted January 10, 2009
Change of the class venue: classes will be in SR5 (COM1/201), not in
AS6/211 as announced before
Posted December 5, 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
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 23: 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 5 |
Send by e-mail : Project teams (if different from presentation team) e-mail to me: Team name Team members
One-page
project description |
||||||
|
March 10 |
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 23 |
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,
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,
[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]
[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,
[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]
[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. To install XVCL Workbench go to http://xvcl.comp.nus.edu.sg/forum/viewtopic.php?t=106
c. You can also install XVCL Workbench through the Eclipse Update manager by following these 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.
d. 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