Transcript Slides

Developing
Contemporary Canonical
Software Courses
Summer Program Overview
Rise Research Group at Drexel
Our goal
• Developing two new canonical courses
– Web server course
– Web browser course
• Using Apache and Mozilla Firefox as case
studies.
• New course material include:
– Slides
– Architecture Navigation Tool
– Lab Assignments
Objectives for the new courses
• Understand the key concepts and knowledge, such as HTTP,
XML and service-oriented architecture
• Be able to develop distributed Internet-based software
applications.
• Be able to apply their knowledge to build multi-platform,
multi-language Internet-based software applications.
• Be able to analyze the structure of Internet-based software
applications.
• Be able to apply state-of-the-art reverse engineering tools
to recover the architecture of existing software projects.
• Be able to represent and evaluate software designs in
terms of modularity, extensibility, maintainability, and
reusability at micro-level.
3-Steps towards the new courses
1. Knowledge organization (2009-2010)
– Technology organization
– Architecture recovery
– Architecture representation
2. Teaching Package Organization (2010-2011)
3. Course Offering (2011-2012)
Goals of this summer
• Understand the key technologies behind Apache and
Mozilla Fox
– How to design a web server? A web browser?
– How does a web server and a web browser interact with each
other?
• Understand their architecture structure and how they
survive over years
– How many main components/modules are there in each
system?
– How do these components communicate with each other
– Over their development history, how many developers were
involved and how the numbers changed?
– Over their development history, how many refactoring
happened?
Task for This summer
• Mine the data repository for Apache and
Mozilla Firefox
– Knowledge Organization
• HTTP, HTML,XML, etc
– Architecture recovery
• Using tools (Sunny)
– Architecture Representation
• We will elaborate later
Task for This summer
• What need to be mined?
– Source code over all the versions of Apache and
Firefox
•
•
•
•
Understand the how the structures evolve over time
Understand how the features evolve over time
Understand where and when refactoring happened
After decomposing the system into modules, try to
understand the technologies behind each feature
– Bug report
• For each change, understand which and how many
other parts of the system changed accordingly.
Task for This summer
• What need to be mined?
– Mailing list
• How the number of developers change over time?
• How many sub-communities are there?
• How does the communication correspond to modules?
Tools used for data mining
Sunny and KP
• Architecture recovery
• Mining bug report and communications
Research Topics out of the Project
--Submitting papers to ICSE
Research Topics
• How to predict change impact from
architecture? (Sunny’s ICSM submission)
• How does modularization facilitate task
assignment? (Sunny’s ASE submission)
• How to measure and compare architecture?
(KP’s wicsa submission)
– How the metrics value changes over time for
Apache and Firefox?
• Any new topics?
Weekly Tasks for Liz, Ritika, and Basil
• Week 1: get familiar with all these tools
– Set up all the environment needed
– Be able to use all the tools
– Be able to write scripts to extract data
• We assign tasks at the beginning of each
week.