120 likes | 233 Views
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
E N D
Developing Contemporary Canonical Software CoursesSummer 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 • Knowledge organization (2009-2010) • Technology organization • Architecture recovery • Architecture representation • Teaching Package Organization (2010-2011) • 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 miningSunny 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.