Welcome
to:
Course CS6201: Software Reuse (2010)
Last changed: Tuesday, April 13, 2010
This page contains the following course information:
Course instructors
Important
dates 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 13, 2010
Consultation Hours: Wed 16:00 - 18:00, in my office,
S15-06/08
Exam:
27 APR 2010 Morning
Please
refer to topics for presentations for readings
related to presentations.
At
least one week before the presentation, please let me know pointers to papers
that you use for presentation, and I will circulate it to all the students.
Date
|
Students
|
Topic
|
Lectures |
24
Feb |
Li
Lirong |
Topic
A: Programming language features for generic design and reuse (programming
language D 2.0 and others) |
XVCL
briefing, set #2 |
3
March |
Venkat
Ramanan |
Topic
1: Aspect-Oriented Programming |
Software
clones and Buffer library study, set #3 |
10
March |
Marcel
Boehme |
Topic
B: Reuseware: Invasive Software Composition |
Software
clones and Buffer library study, set #3 |
17
March |
Guest
lecture by Ulf Pettersson, ST Electronics (Info-Software Systems) Pte Ltd |
||
24
March |
Ye
Hai Feng and Sai Nay Lynn |
Topic
7: Web technologies |
Software
clones and Buffer library study, set #3 |
7
April |
Bui
Trong Anh and Vu Tinh Ky |
Topic
8: Model-Driven Development (MDD) |
|
14
April |
Petrus Cornelis Johannes Bruin |
Topic
11: SCM support for reuse and product lines |
|
Dates |
Presentations |
Project |
||||||
First four weeks: Jan 13 – Feb 3, lectures only |
|
|
||||||
by Jan 21 |
Form presentation teams and select presentation topic from e-mail to me: Team name Topic selected for presentation (topic number and title) Team members
|
|
||||||
|
||||||||
by Feb 11 |
|
Form project teams (if different from presentation team) e-mail to me: Team name Team members
Include one-page project description. |
||||||
Feb 10 from this week, each session will consist of 1 h. lecture and 1 h. presentation |
presentations start |
|
||||||
Feb 13 –
21 |
Recess
week |
|||||||
March 5 |
|
project draft due |
||||||
|
|
|
||||||
Sunday April 25 midnight |
|
final project report due Please submit softcopy of your report and code in zipped file. |
Project
report deadline: All the CA work in courses must be completed before exams
start; the deadline for project report is Sunday April
25 midnight
Please
submit softcopy of your report and code in zipped file.
You
can download lecture notes Berkeley
DB case study.pdf, CS6201-4-more
on PL.pdf, and CS6201-5-DA.pdf
Presentations are graded by both students and
instructor.
Please grade and comment on student
presentations and enter into this form Student
presentation grades and comments.xlsx
Return the form to me after last
presentation, latest by 17 April. Thank you.
I reorganized papers and annotated them with additional information. I added papers describing difficulties in achieving generic solutions (avoiding duplication) for reuse with PHP:
Rajapakse, D.C. and Jarzabek, S. “Practical Limits of Applying Dynamic Page Generation Techniques in Web Application Design: a Trade-off Analysis,” ICSE 2007; – shows how PHP falls short of addressing systematic reuse
Rajapakse, D. and Jarzabek, S. “Towards generic representation of web applications: solutions and trade-offs,” Software, Practice & Experience, Volume 39 Issue 5, April 2009, pp. 501 – 530, Published Online: 27 Nov 2008 – extends ICSE’07 paper with explanation how XVCL can be applied on top of PHP for better reuse
For lectures Feb 17 and 24: Please check papers in Section Readings for Lecture Notes sets #1 and #2 – introduction to SPL and XVCL: [1]-[5] [7][9]
For lectures March 3 and 10: papers in Section Readings for Lecture Notes set #3 - Problem of similarity patterns, software clones and generic design
Please continue reading throughout the course based on Readings for the course
Posted December 6, 2009
If you plan to take the course, it is advisable that you start reading Readings for the course as early as you can.
You can download lecture notes set #1 and #2 from Lecture Notes
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 are graded by both students and instructor.
Please grade and comment on student presentations and enter into this form Student presentation grades and comments.xlsx
Return the form to me after last presentation, latest by 17 April. Thank you.
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 21: 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 4 |
Send by e-mail : Project teams (if different from presentation team) e-mail to me: Team name Team members
One-page
project description |
||||||
March 5 |
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. |
||||||
Sunday April 25, midnight |
Final
Project Report Please submit softcopy of
your report and code in zipped file. 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 draft will be accepted, but you do not get 3 marks.
2. Final Project Report: The penalty for the late final project is 2 marks for each day. Reports will be accepted until April 23 (inclusive).
A final grade for the course will be derived as follows:
Exam questions will be related to the lectures, project, and presentations.
The lectures will emphasize a software
Product Line (PL) approach to reuse (other names of PL are a program family or
product family).
Week
1: Software Product Line (SPL) approach: concepts and examples
Week
2: XVCL motivation and overview
Week 3, 4: XVCL Briefing
--- XVCL is a language, method and tool for reuse that you will use in your project xvcl.comp.nus.edu.sg
Week
5, 6: Software clones and elimination of software redundancies
Week 7. More about SPL, domain engineering
Week 8. Domain Analysis
Week 9, 10.
SPL case studies
Other related topics
Books related to various topics of the course,
available in our library, 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.
[2] Highlight of XVCL as a variability management mechanism for software Product Lines
[3] Controlling Software Complexity by Unifying Similarity Patterns - explains the software similarity phenomenon and XVCL in context of software complexity; also, highlights relation to component and other technologies
[4] 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
[6] Step-by-step introduction to XVCL (optional)
[7] 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
[9] 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
[10] Christof Ebert & Michel Smouts “Tricks and Traps of Initiating a Product Line Concept in Existing Products,” ICSE’03
Selected chapters from Effective Software Maintenance and Evolution: Reused-based Approach (not for wide distribution):
Buffer library is a good example of clones that are difficult to eliminate using conventional techniques. We can also view Buffer library as a special type of an SPL, in which each buffer class is a member of SPL. At the same time, it is a good case study from which to learn what XVCL can do and how to use it.
In Section 6 in XVCL Tutorial there is a simple introduction to XVCL, complemented by explanation of the XVCL solution for Buffer library.
See case study “Eliminating redundancies” at xvcl.comp.nus.edu.sg. There is a step-by-step explanation of the solution.
Detailed analysis of cloning and XVCL solution for Buffer library also described in:
Software similarities: symptoms and causes
Mixed-strategy approach to generic design – based on Jarzabek, S. and Li, S. ”Unifying clones with a generative programming technique: a case study,” Journal of Software Maintenance and Evolution: Research and Practice, John Wiley & Sons, Volume 18, Issue 4, July/August 2006, pp. 267-292, extended version of ESEC-FSE’03 paper
[1] Jarzabek, S. “Genericity - a “Missing in Action” Key to Software Simplification and Reuse,” discusses generic design; gives a glimpse of many projects with XVCL and lessons learned; contains more comprehensive description of software similarity problem; this is extended version of paper published in 13th Asia-Pacific Software Engineering Conference, APSEC’06, IEEE Comp. Soc., 6-8 December 2006, Bangalore, India, pp. 293-300
[1] Summary of projects with mixed-strategy approach
[5] Other techniques related to XVCL
[6] Evaluation of the mixed-strategy approach
[1] 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)
Evolution of versions and configuration management
Evolution with mixed-strategy approach: an example
– I will send you a link for download if you want to use CCFinder.
PMD: http://pmd.sourceforge.net/ Read about the CPD: http://pmd.sourceforge.net/cpd.html
CPD
works with Java, JSP, C, C++, Fortran and PHP code. You define front-ends for
other languages.
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)