Important Links
Complete list of papers
Paper sign-up document (Due Jan 12)
Submit seminar paper review (Due 0800 every day of class)
Software is a human product. Developers are intrinsic to software development; as systems scale in size and complexity, the challenges that developers must overcome rapidly increase. The theme of this Advanced Software Engineering course will be 'Human Aspects of Software Engineering'. We will examine why creating software is a hard problem and how these problems have been addressed and evaluated both in research and practice. We will focus on development-based activities (rather than planning or requirements-based activities). The course will be seminar-based and will involve weekly reading and discussion. The project will involve building a software development tool to address a problem you have faced writing software yourself; this will likely involve a large amount of programming. This course is offered by the Department of Computer Science at the University of British Columbia.
Lectures are held every Tuesday and Thursday from 11:00 to 12:20 in ICICS 206. My office hours are TBD but will be held in ICICS 309. Official scheduling details can be found in the SSC entry.
Mindmap from the first lecture.
Contact
The best way to get in touch with me is via email.
Nominal Outline
- software evolution
- program comprehension
- software visualization
- development team processes
- software development tools and environments
- quantitative & qualitative evaluation of software engineering research
Tentative Course Schedule
We will fix the schedule for the course once everyone has selected the papers they would like to present.Tuesday January 5 - Introduction
Thursday January 7 - Historical Context
- Brooks. No Silver Bullet. Computer, vol.20, no.4, April 1987.
Presented by Reid Holmes
Tuesday January 12 - Historical Context
- Gibbs. Software's Chronic Crisis. Scientific American, September 1994.
Presented by Reid Holmes
Rest of schedule TBD January 12
Tuesday April 5 - PC Meeting
Thursday April 7 - PC Meeting
Course Format
This will be a paper-based seminar course. Each week we will read and discuss two papers. Everyone in the class will have an opportunity to give a ~30 minute paper presentation and lead a discussion ~30 minute discussion about the paper. While only one person will present each paper, it is expected that everyone will read all of the papers and contribute to the in-class discussion.
While reading the papers you should be able to answer the following five questions:
- What were the primary contributions of the paper as the author sees it?
- What were the main contributions of the paper as you (the reader) see it?
- How does this work move the research forward (or how does the work apply to you)?
- How was the work validated?
- How could this research be extended?
- How could this research be applied in practice?
You will get to select the two papers you want to present from the course. Please make your selections from this list. Once you have selected your papers, enter the details in the following paper choice spreadsheet. I will generate a cohesive class schedule once everyone has selected their papers.
The project is the primary artifact of the course; the outcome of all projects will be a research paper. In the last week of the class we will formally review all the papers from the course projects (using standard program committee review forms) and have a PC meeting describing the strengths and weaknesses of each paper. The reviews you produce will comprise 15% of your final mark.
The course will conclude with a formal Program Committee (PC) meeting. All projects will be submitted via a EasyChair (a conference management system). Each paper will receive at least 8 reviews from class members (I will review every paper). These peer-reviews will comprise 15% of the final mark. Michael Ernst has compiled a series of informative links for creating effective reviews. Here are links to two different reviews as well (one positive and one negative) if you want concrete examples.
Project
The project forms an integral part of this course. The projects can be completed in groups of up to three. The intent of the project is to identify a real development shortcoming faced by engineers and create a tool to improve this problem.
The goal of this project is to identify some problem developers encounter in practice, find some solution, and validate that the solution helps with the initial problem. I would recommend drawing upon your experience as you write code to identify some problem that has inhibited you in the past and fix it.
The outcome of this project will be a short (5-6 page) paper describing the problem, your solution, a comparison to related approaches, and some form of validation.
There are three deliverables for your project:
- Project proposal. Before you undertake your project you will need to submit a proposal for approval. The proposal should be short (max 1 page PDF in ACM format). The proposal should include a problem statement, the motivation for the project, and set of objectives you aim to accomplish. I will read these and provide comments. The proposal is not for marks but _must_ be completed in order to pass the course. If you wish to 'pitch' to the class to find additional team mates, please indicate this at the bottom of the proposal. For the pitch you will get 1-2 minutes to describe the project to try to entice others to join your group. NOTE: even if you pitch, you are still free to abandon your project and join a different one. This will be due on January 19 @ 0800 via email.
- Written report. The required length of the written report varies from project to project; all reports must be formatted according to the ACM format and submitted as a PDF. This artifact will constitute 100% of the project grade. This will be due on March 21 @ 0800 via Easychair.
- Project presentation. Each group will have the opportunity to present their project in class on March 29/31.This presentation should take the form of a 15 minute (hard maximum) conference-style talk and describe the motivation for your work, what you did, and what you found. If a demo is the best way to describe what you did, feel free to include one in the middle of the talk. There will be time for questions after the paper has been presented.
I have included a brief description of five of the projects from previous years.
- Answering developers’ questions using information fragments in a heterogeneous development environment In this project, the authors developed a novel approach to model online programming threads (e.g., Stack Overflow). This paper was extended subsequent to the course and was published in VLHCC 2012.
- Semantic-Based Code Search Evaluation: An Exploratory Study By evaluating three different code search engines, the authors aimed to identify high-level strengths and weaknesses that could be used to suggest future improvements for hybrid code search approaches.
- NavTracks: The Next Generation This paper evaluated the existing NavTracks tool to determine how the tool worked in practice and to suggest future avenues for research in this space.
- File Recommendation Based on File Interactions: A Clustering Approach to File RecommendationsA new approach for leveraging code navigation paths (in a similar manner to NavTracks) was developed and the quality of the recommended artifacts evaluated.
- Evaluation of Canada Health Infowayʼs Message Builder API and its documentation The authors evaluated the Infoway API and documentation to gain insight into the ease-of-use of this API by end-user developers.
Assessment
Seminar: 15%
Seminar Paper Reviews: 15%
Class Participation: 15%
Project: 40%Due March 21 @ 0800
Project reviews: 15%Due April 4 @ 0800
Policies
- Late submissions will not be accepted except in case of documented emergency.
- For special accommodation for the exam or midterm, contact the Access and Diversity Office.
- In order to maintain a culture of academic integrity, members of the University of British Columbia community are expected to promote honesty, trust, fairness, respect and responsibility. [See the academic integrity site for more information.]
- Everyone involved with CPSC 507 is responsible for understanding and abiding by the University's Respectful Environment Statement. [See the complete statement.]