INF
219 – Software Environments
Professor
Marco Aurélio Gerosa
http://www.ime.usp.br/~gerosa
mgerosa@uci.edu
Office: DBH 5228
Logistics
Room: ICS 180
Lectures: Monday and Wednesday, 2pm - 3:20pm
Website: http://www.ime.usp.br/~gerosa/classes/uci/inf219
Additional resources: http://eee.uci.edu
Class mail list: inf219-S14@classes.uci.edu
Online forum: http://piazza.com/uci/spring2014/inf219/home
Random selection: site
Description
Catalogue description:
Study of the requirements, concepts, and architectures of comprehensive,
integrated, software development and maintenance environments.
Major topics include process support, object management, communication,
interoperability, measurement, analysis, and user interfaces in the environment
context.
This edition: This
edition highlights human and social aspects of software engineering, as well as
information mining from software repositories. We are going to discuss how
software environments can be improved considering
these elements.
Educational approach
The
classes will be very participatory
and discussion-oriented. Students
will (i) read several papers and engage in active
discussions about the topics; (ii) work in groups to present a seminar about
one of the course topics (see the schedule below); and (iii) work on a
practical research project on a topic of their choice and write an academic
paper about it. More details in the following.
Papers Discussions
Students
must read papers before most of the classes and prepare a set of slides that
summarizes each paper. In the beginning of the class, one student will be
randomly selected to give an 8-10 min presentation about the paper using
his/her own slides, which must be previously submitted in the EEE Dropbox.
How to prepare the presentation:
focus more on the motivation, applicability, and results of the study. You can
talk very briefly about the research method and related work. Conclude with
your opinion about the paper, with a critical view on its positive and negative
aspects. In addition, state questions and problems to be further discussed in
the classroom.
Discussions:
Some special dynamics will be used to foster
discussions. For example, sometimes, students will be split
into groups with special roles (e.g. criticize or defend a paper). More details
to come.
Update: As we decided
in class, as the in-class discussions have been very intense, we are going to
substitute the paper presentations by pre online discussion on the Piazza tool.
You need to read the assigned papers and post your opinions to answer the
proposed questions or post additional questions to be
discussed. Vote in the questions and answers that you would like to
discuss more in depth, we will focus on them in the class.
Students Seminars
Students will work in groups to prepare a 30 min seminar
about a topic of the course. In this seminar, they must give an overview of the
state-of-the-art and of-the-practice about the topic. In the References, there are some papers
and other material to be considered for the seminar.
However, these are initial suggestions, the group must
search the literature of the area for additional references. The group must post
the slides and a categorized bibliography about the topic before the
presentation.
After the 30 min presentation, a discussion about
the topic will begin. Thus, the group must bring some questions to foster
discussion.
Additionally, the group must choose one or two
papers for the entire class to read. These papers should be
announced at least one week before the seminar. Before the seminar
starts, one random student will give the 8-10 min presentation about the
papers.
Term Project
Students will develop
in groups a research project and write an academic paper about it.
Topic: Substantial latitude will
be allowed to choose the topic, but all topics must be related to
software environments and consider human and social aspects of software
development. The topic must be approved in advance by the
instructor. Students can undertake different kinds of project. They may
propose and evaluate an innovative feature to software environments in order to
solve a current software development problem or they may conduct a mining
software repository (MSR) study using data from software environments.
Project proposal:
The project proposal consists in a document with a preliminary description of
the project to be undertaken. It should describe the idea to be
investigated and how the research will be conducted (e.g. the research
question and methods). Since this is a preliminary description, changes are allowed as the research progresses. However, radical
changes, e.g. selecting a new topic, are highly discouraged.
Feedback on the project:
Some classes will be used to present partial results
of the project (topics and empirical evaluation, proposed solutions, and
prototypes). All the students are expected to give
constructive feedback during classes and/or in the online discussion.
Presenters may explicitly ask for specific feedback, as well as disclosure open
problems. For instance, presenters might use this opportunity to present and
articulate their ideas; ask for suggestions on how to solve certain problems;
and ask for recommendations regarding related work.
Paper: Students must
prepare an academic paper about the research project conducted. The length of
the paper must have between 4 and 6 single spaced
pages following the ACM
template. The paper must present the motivation, objectives, hypotheses and/or research questions, survey related work,
describe the solution/research conducted, show usage examples and an evaluation
of the solution, the main findings, threats to validity, lessons learned, and
future directions. The software and research design decisions must be detailed
and discussed, preferably based on the literature. In
the case that a tool is developed, the URL of a demo video should
be provided in the paper. The paper must be submitted
through the EasyChair website. Of
course, students are encouraged to produce a high quality paper and later
submit it to a scientific venue.
The source code and the data that you use in your study must be versioned in a public repository, such as GitHub
. Include the reference in the paper.
Peer-review: The
peer-review process will be conducted along the lines
of most scientific conferences. Students will be assigned
as reviewers of selected papers. The reviews will be
considered as part of the reviewer’s grade, but will not affect
negatively the grade of the authors of the papers. Therefore, the reviews can
be critical (but always in a constructive way) without the worry of prejudicing
colleagues.
See the schedule for the due dates.
Groups
Groups will likely
comprise 2 students (or 3 depending on the number of
enrolled students). The groups must be defined in the first
week of the course and reported in the shared Google
Doc. The topics for the seminar will be assigned in a
first to come first to serve basis, so act quickly.
Each student must
deliver by the end of the course a document stating clearly the participation
of each member of the group in the activities and the URL of the shared GitHub repository. This information will
be considered for grading purposes. It is expected that real collaboration takes
place in the group (not just the split of the tasks). It is
also expected a balanced work load for each member.
Participation in class
The presence and active
participation in the classes are considered very important in this course and will also be considered for grading purposes.
Grades
All
students enrolled in the course will earn a letter grade based upon: (a) their
demonstrated understanding of the class topics, (b) class attendance and
participation, (c) the critical opinions, questions, and challenges shared with
the class on the discussions, (d) the feedback provided to their peers, and (e)
the term project and the other course activities.
Schedule
The schedule and
assignments below are tentative and subject to change.
References
In the following, there are some references for
the subjects covered in the course. It
is not supposed that every student read all them.
For each topic, a few papers will be selected to be read
by the entire class. The group assigned to each topic will delve into more
details on the literature of that specific topic.
Topic
|
Resources
|
Introduction
|
Slides
of the class (pptx) (pdf)
|
Understanding
a problem
|
Slides
of the class (pptx) (pdf)
Readings for the class
· Greenberg
& Buxton: Usability evaluation
considered harmful (some of the time) (CHI
2008)
· Easterbrook, Singer,
Storey, & Damian: Selecting
Empirical Methods for Software Engineering Research
(Guide to Advanced Empirical Software Engineering 2008)
Further readings
· Kitchenham
et al.: Preliminary
guidelines for empirical research in software engineering (TSE
2002)
· Basili: The
Past, Present, and Future of Experimental Software Engineering
(JBCS 2006)
· More
references in the list
compiled by LaToza and Myers
(2011)
|
A
historical perspective
|
Readings for the class:
Group
A:
· Teitelman & Masinter: The Interlisp
Programming Environment (IEEE Computer 1981)
· Kadia: Issues
Encountered in Building a Flexible Software Development Environment (SDE
1992)
Group
B:
· Thomas & Nejmeh: Definitions of Tool Integration for
Environments (IEEE Software 1992)
· Dart, Ellison, Feiler, & Habermann: Overview of Software Development
Environments (1992)
Further readings:
· Dolotta & Mashey: An
Introduction to the Programmer’s Workbench
(ICSE 1976)
· Rich & Waters: Automatic Programming: Myths and
Prospects (IEEE Computer 1988)
· Swinehart, Zellweger,
Beach, & Hagmann: A Structural View of the
Cedar Programming Environment (TOPLAS 1986)
· Reps & Teitelbaum: The Synthesizer Generator (SDE
1984)
· Taylor et al.: Foundations
for the Arcadia Environment Architecture (SDE
1988)
· Harel et al.: STATEMATE:
A Working Environment for the Development of Complex Reactive Systems
(ICSE 1988)
·
Robbins, Hilbert, & Redmiles: Extending
Design Environments to Software Architecture Design (KBSEC 1996)
·
Reiss: The
Desert environment (TOSEM 1999)
|
Eclipse IDE & Moderns IDEs
|
Readings for the class:
· des Rivičres
& Wiegand: Eclipse: A Platform for Integrating
Development Tools (IBM
Systems J. 2004)
·
Murphy, Kersten, & Findlater: How
Are Java Software Developers Using the Eclipse IDE? (IEEE Software 2006)
· Eclipse
Community Surveys: 2012 & 2013
|
Supporting
coding and testing
|
Readings for the class:
· Ko, Andrew
J., and Brad A. Myers. "Finding causes of program output with the
Java Whyline." In Proceedings
of the SIGCHI Conference on Human Factors in Computing Systems, pp.
1569-1578. ACM, 2009.
·
Goldman, Max, Greg Little, and
Robert C. Miller. "Collabode: collaborative coding in the browser."
In Proceedings of the 4th international workshop on Cooperative and human
aspects of software engineering, pp. 65-68. ACM, 2011.
Further readings:
· Ballance, Graham, & Van de Vanter: The Pan Language-Based Editing System for
Integrated Development Environments (TR
1990)
· Omar,
Yoon, LaToza, & Myers: Active Code Completion
(ICSE 2012)
· Myers, Pane, & Ko:
Natural Programming Languages and Environments
(CACM 2004)
· Bragdon et al.: Code
bubbles: rethinking the user interface paradigm of integrated development
environments (ICSE 2010)
· LaToza
& Myers: Hard-to-Answer Questions about Code
(PLATEAU 2010)
· Osenkov: Designing, implementing and integrating a structured C# code
editor (PhD Thesis 2007)
· M.
Fowler: Language Workbenches: The Killer-App for Domain Specific Languages?
(Blog Post 2005)
· Infoworld: Exploring the deep structure of code
(2005)
· Ko, Aung, & Myers: Eliciting
design requirements for maintenance-oriented IDEs: a detailed study of
corrective and perfective maintenance tasks (ICSE 2005)
· Kersten
& Murphy: Using task context to improve programmer productivity (FSE
2006)
· More
references in the list
compiled by LaToza and Myers
(2011)
|
Under
the hood: Building and extending IDEs
|
Readings for the class:
· Yoon
& Myers: Capturing and analyzing events low level event from the code
editor (PLATEAU 2011)
· van der Lingen, & van der Hoek: An Experimental, Pluggable Infrastructure
for Modular Configuration Management Policy Composition
(ICSE 2004)
Further readings:
· Ossher & Harrison: Support for Change in RPDE3
(SDE 1990)
· Clemm & Osterweil: A Mechanism for Environment Integration
(TOPLAS 1990)
· Reiss: Connecting
Tools Using Message Passing in the Field Environment
(IEEE Software 1990)
· Grundy, Mugridge, & Hosking: Constructing Component-based Software
Engineering Environments: Issues and Experiences
(IST 2000)
· Software
Engineering Radio: Episode 80: OSGi with Peter Kriens and BJ Hargrave
(2007)
· http://www.osgi.org
· https://www.eclipse.org/articles/Article-Plug-in-architecture/plugin_architecture.html
A
classical view:
· Tarr & Clarke: Pleiades: An Object Management System for
Software Engineering Environments
(SIGSOFT 1993)
· Anderson, Taylor, &
Whitehead: Chimera: Hypermedia for Heterogeneous
Software Development Environments
(TOIS 2000)
· Heineman & Kaiser: An architecture for Integrating
Concurrency Control into Environment Frameworks
(ICSE 1995)
· Bandinelli, Di Nitto, & Fuggetta: Supporting Cooperation in the SPADE-1
Environment (TSE
1996)
· Nentwich, Emmerich,
& Finkelstein: Consistency Management
with Repair Actions (ICSE
2003)
· Boudier, Gallo, Minot, &
Thomas: An Overview of PCTE & PCTE+
(SDE 1989)
|
Supporting
software analysis and design
|
Readings for the class:
·
Wu, Graham, Smith: A Study of
Collaboration in Software Design (ISESE 2003)
·
Cherubini, Venolia, DeLine, & Ko: Let’s Go to the Whiteboard: How and Why Software Developers Use
Drawings
· Mangano
& van der Hoek: A tool for distributed software design collaboration
(video) (CSCW 2012) - (see the video in the "Source materials tab")
Further readings:
· Mangano, LaToza, Petre, van der Hoek: Supporting Informal Design with Interactive Whiteboards (CHI
2014)
· Medvidovic, Rosenblum, &
Taylor: A Language and Environment for
Architecture-Based Software Development and Evolution (ICSE
1999)
·
Kersten & Murphy: Mylar:
a degree-of-interest model for IDEs (AOSD 2005)
·
Sullivan, Griswold, Cai, & Hallen, The Structure and
Value of Modularity in Software Design (FSE 2001)
·
http://www.architexa.com
·
More references in the list
compiled by LaToza and Myers
(2011)
|
Mining
software repositories
|
Readings for the class:
· Hemmati et
al.: The MSR Cookbook: Mining a Decade of Research (MSR
2013)
·
Gerosa: Mining Sociotechnical Information from
Software Repositories (slides)
Further readings:
· Ball et al. If Your Version Control
System Could Talk... (ICSE 1997)
· Zimmermann, Weißgerber, Diehl, & Zeller: Mining Version Histories
to Guide Software Change (ICSE
2004)
· Zimmerman,
Premraj & Zeller: Predicting Defects for Eclipse
(PROMISE 2007)
· Bird
et al.: The promises and perils of mining Git (MSR
2009)
· Bajracharya, Ossher & Lopes: Sourcerer:
An infrastructure for large-scale collection and analysis of open-source code (SCP
2014)
· Thummalapenta
& Xie: Alattin: Mining Alternative Patterns for Detecting Neglected
Conditions (ASE 2009)
· Dang
et al.: XIAO: Tuning Code Clones at Hands of Engineers in Practice
(ACSAC 2012)
· Zeller,
Zimmermann, & Bird: Failure is a Four-Letter Word: A Parody in
Empirical Research (PROMISE 2011)
· Aranda
& Venolia: The secret life of bugs: Going past the
errors and omissions in software repositories (ICSE 2009)
· Bird
et al: Fair and balanced?: bias in bug-fix
datasets (FSE 2009)
· Gerosa:
Mining Sociotechnical Information from
Software Repositories (slides) (video) (2014)
· Working
Conference on Mining
Software Repositories proceedings
(MSR). It is worth to notice that every edition has a mining
challenge with a specific data set, which usually results in good ideas about
the applications of MSR techniques.
· GitHub
data challenge
·
www.hackystat.org
|
Software analytics
|
Readings for the class:
· Begel
& Zimmerman: Analyze This! 145 Questions for Data
Scientists in Software Engineering (ICSE 2014)
· Buse
& Zimmermann: Analytics for Software Development (FoSER 2010)
Further readings:
· Zhang
et al.: Software Analytics as a Learning Case in Practice: Approaches
and Experiences (MALETS 2011)
· Hassan
& Xie: Software intelligence: the future of mining software engineering
data (FoSER 2010)
· Hassan,
Hindle, Runeson, Shepperd, Devanbu, & Kim: What’s
Next in Software Analytics (IEEE Software 2013)
· Other
papers from the IEEE Software Special Edition on Software
Analytics: So What? Menzies
& Zimmermann (eds) (2013) - see also video
· Other
papers from the IEEE Software Special Edition on The
Many Faces of Software Analytics, Menzies
& Zimmermann (eds) (2013)
· Zimmerman
keynote slides: Software
Analytics = Sharing Information (2013) and Analytics
for Smart Software Development (2012)
· Gall:
Replication
and Benchmarking in Software Analytics
(BENEVOL 2013 slides)
· Brandtner, Giger, & Gall: Supporting
continuous integration by mashing-up software quality information
(CSMR 2014)
· http://www.sonarqube.org/
|
Software
visualization
|
Readings for the class:
· Ghanam
& Carpendale: A Survey Paper on Software Architecture
Visualization (TR 2008)
· Jones
et al.: Visualization of Test Information to Assist
Fault Localization (ICSE 2002)
Further readings:
· Wettel
& Lanza: Visualizing
Software Systems as Cities (VISSOFT 2007)
· Ducasse & Lanza: The Class Blueprint: Visually Supporting
the Understanding of Classes (TSE
2005)
· Price, Baecker,
& Small: A
Principled Taxonomy of Software Visualization (JVLC 1993)
·
Storey et
al.: On
the use of visualization to support awareness of human activities in software
development: a survey and a framework (SoftVis 2005)
· LaToza
& Myers: Visualizing
call graphs (VL/HCC 2011)
· More
references in the list
compiled by LaToza and Myers
(2011)
|
Integrating
IDEs and Social Media
|
Readings for the class:
· Storey: The
evolution of the social programmer (MSR
2012 Keynote slides)
· Parnin, Treude, Grammel, and Storey: Crowd
Documentation: Exploring the Coverage and the Dynamics of API Discussions on
Stack Overflow (2012)
· Khalid,
Shihab, Nagappan, &
Hassan: What Do Mobile App Users Complain About?
A Study on Free iOS Apps (IEEE Software 2014)
· Guzzi, Pinzger, & Deursen: Combining
micro-blogging and IDE interactions to support developers in their quests
(ICSM 2010)
Further readings:
· Storey et
al.: The impact of Social Media on software Engineering Practices
and Tools (FOSER 2010)
· Harman,
Jia, & Zhang: App store mining and analysis: MSR for app stores (MSR
2012)
· Park &
Maurer: The role of blogging in generating a software product vision
(CHASE 2009)
· Pagano
and Maalej: How do developers blog?: an exploratory study (MSR
2011)
· Treude: The Role of Social Media Artifacts in Collaborative Software
Development (PhD Thesis 2012)
· Parnin
& Treude: Measuring API Documentation on the Web (web2SE 2011)
· Mamykina, Manoim, Mittal, Hripcsak, &
Hartmann: Design lessons from the fastest Q&A site in the west (CHI
2011)
· http://meta.stackoverflow.com/questions/134495/academic-papers-using-stack-exchange-data
· Reinhardt:
Communication
is the key – support durable knowledge sharing in SE by microblogging
(SENSE 2009)
· Storey: The
love-hate relationship developers have with Twitter!
(2013)
|
Distributed
Software Environments
IDEs @ the Cloud
|
Readings for the class:
· Herbsleb: Global Software Engineering: The Future of
Socio-technical Coordination (FOSE '07)
· Explore koding.com
Further readings:
· Ben-Shaul
& Kaiser: A Paradigm for Decentralized Process
Modeling and its Realization in the Oz Environment (ICSE
1994)
· Augustin, Bressler, & Smith: Accelerating Software Development Through
Collaboration (ICSE 2002)
· Hall, Heimbigner, & Wolf: A Cooperative Approach to Support
Deployment Using the Software Dock
(ICSE
1999)
· Lautamaki et
al. Cored: Browser-based collaborative real-time editor for java
web applications (CSCW 2012)
· Wang,
Wagstrom, Duesterwald,
& Redmiles: New opportunities for extracting insights from cloud based
IDEs (ICSE 2014)
·
Herbsleb
& Mockus An
empirical study of speed and communication in globally-distributed software
development (TSE 2003)
· Mistrík,
Grundy, van der Hoek, Collaborative Software Engineering,
Springer
· Zimmermann
& Bird: Collaborative
Software Development in Ten Years: Diversity, Tools, and Remix Culture (FSD
2012)
· Cloud9
IDE
· Goldman,
Little, & Miller: Collabode:
collaborative coding in the browser
(CHASE 2011)
· More
references in the list
compiled by LaToza and Myers
(2011)
· LaToza,
Towne, van der Hoek, & Herbsleb:
Crowd
development (CHASE 2013) (see also poster)
· http://sdcl.ics.uci.edu/research/crowd-development
|
Other topics
In the following, some topics
related to the course, but possibly not covered in this edition, are presented.
Topic
|
Resources
|
Supporting
debugging
|
· View
references in the list
compiled by LaToza and Myers
(2011)
|
Version
Control Systems & Configuration Management
|
· Estublier: Software Configuration Management: a Roadmap
(ICSE 2000)
· O’Sullivan:
Making sense of revision-control systems
(CACM 2009)
· Estublier et
al.: Impact of Software Engineering Research on the Practice of
Software Configuration Management
(TOSEM 2005)
· Spinellis: Version Control Systems
(IEEE Software 2005)
· Prudęncio, Murta, Werner, & Cepeda: To lock, or not to lock: That is the question (JSS
2012)
· Mens: A State-of-the-Art Survey on Software Merging (TSE
2002)
· Appleton,
Berczuk, Cabrera, & Orenstein: Streamed Lines: Branching Patterns for Parallel Software
Development (PLoP
1998)
|
Search-based
IDEs
|
· Brandt
et al.: Example-Centric Programming: Integrating Web Search into the
Development Environment (CHI 2010)
· Edwards:
Example Centric Programming
(OOPSLA 2004)
· http://code.ohloh.net/
· http://corp.krugle.com
· Mandelin, Xu,
Bodík, Kimelman: Jungloid
Mining: Helping to Navigate the API Jungle
(PLDI 2005)
· Lemos et
al.: Using Thesaurus-Based Tag Clouds to Improve Test-Driven Code
Search (SBCARS 2013)
· Ossher
& Lopes: Applying Program Analysis to Code Retrieval
(Springer, 2013)
· Bajracharya
& Lopes: Analyzing and mining a code search engine usage log (ESE
2010)
· Lemos et
al.: A test-driven approach to code search and its application to
the reuse of auxiliary functionality (IST
2011)
· Wightman,
Ye, Brandt, & Vertegaal: SnipMatch:
Using Source Code Context to Enhance Snippet Retrieval and Parameterization
(UIST 2012)
· Proceedings
of Search-Based Software
Engineering Conference
|
Supporting
productivity in IDEs
|
· Melo,
Cruzes, Kon, Conradi, Interpretative case studies on agile team productivity and
management, IST 2013
· Mark,
Iqbal, Czerwinski, Johns: Bored
Mondays and Focused Afternoons: The Rhythm of Attention and Online Activity
in the Workplace (CHI 2014)
· Greenberg:
Toolkits
and Interface Creativity (JMTA 2007)
|
Software
environments for reuse
|
· Lisboa,
Garcia, Lucredio, Almeida, Meira
& Fortes: A
Systematic Review of Domain Analysis Tools
(JIST 2010)
· Braga, Werner & Mattoso: Odyssey: A Reuse
Environment based on Domain Models (ASSET 1999)
· Lüer & Rosenblum: Wren—An Environment for
Component-Based Development (FSE
2001)
· Habermann: Programming Environments for Reuse
(1988)
·
More references in the list
compiled by LaToza and Myers
(2011)
|
Supporting
awareness and coordination
|
· Sarma, Noroozi, van der Hoek. Palantir:
Raising Awareness among Configuration Management Workspaces
(2003)
· Cataldo, Mockus, Roberts, & Herbsleb:
Software
Dependencies, Work Dependencies, and Their Impact on Failures (TSE
2009)
· Kraut
& Streeter Coordination
in software development (CACM 1995)
· Halverson,
Ellis, Danis, & Kellogg: Designing
task visualizations to support the coordination of work in software
development (CSCW '06)
· More
references in the list
compiled by LaToza and Myers
(2011)
|
Supporting
development processes into IDEs
|
· View
references in the list
compiled by LaToza and Myers
(2011)
|
API
Usage
|
· Zhong, Xie, Zhang, Pei, & Mei: MAPO:
Mining and Recommending API Usage Patterns
(ECOOP 2009)
· Souza
& Redmiles: On
The Roles of APIs in the Coordination of Collaborative Software Development
(CSCW 2009)
· More
references in the list
compiled by LaToza and Myers
(2011)
|
Bug prevention
|
· Zeller,
Zimmermann & Bird: Failure is a Four Letter Word – A parody in Empirical Research (see
also video presentation)
· Aranda
& Venolia: The secret life of bugs
(ICSE 2009)
· Bird
et al.: Fair and balanced?: bias in bug-fix datasets
(ESEC/FSE 2009)
· Nagappan,
Ball, & Zeller: Mining
Metrics to Predict Component Failures
(ICSE 2006)
· More
references in the list
compiled by LaToza and Myers
(2011)
|
Gamification
|
· Lewis
& Whitehead: The
Whats and the Whys of Games and Software
Engineering (GAS 2011)
· Dietl et
al. Verification
Games: Making Verification Fun (FTfJP 2012)
(video)
· Snipes,
Nair, & Murphy-Hill: Experiences
Gamifying Developer Adoption of Practices and Tools
(ICSE 2014)
|
Repositories of repositories
|
· Dabbish, Stuart, Tsay, & Herbsleb: Social coding in GitHub: transparency and collaboration in an open
software repository (CSCW 2012)
|
Exploring Code
|
· Treude
& Storey: Work
Item Tagging: Communicating Concerns in Collaborative Software Development (TSE
2012)
· Storey et
al.: How
Software Developers Use Tagging to Support Reminding and Refinding (TSE
2009)
· Singer,
Elves, & Storey: Navtracks:
Supporting navigation in software maintenance
(ICSM 2005)
· Storey et
al.: How
Programmers can Turn Comments into Waypoints for Code Navigation
(ICSM 2007)
· More
references in the list
compiled by LaToza and Myers
(2011)
|
IDEs for end users Software Engineering
|
· Ko et
al. The
State of the Art in End-User Software Engineering (ACM
Computing Surveys 2010)
· Burnett: What Is End-User
Software Engineering and Why Does It Matter? (IS-EUD 2009)
· Brad Myers, Future
of Design & SW Development (video)
· More references in the list compiled by LaToza and Myers (2011)
|
Other
topics
|
· Supporting deployment
· IDE for workflows
· IDEs for Ultra Large
Scale Systems & Systems of Systems
· IDEs for Mobile Apps,
Social Apps, and Internet of Things
· Provenance and
traceability
· Mockus & Herbsleb: Expertise Browser: A Quantitative Approach
to Identifying Expertise
· Cubranic, Murphy, Singer &
Booth: Hipikat: A
Project Memory for Software Development
· Henkel & Diwan: CatchUp! Capturing
and Replaying Refactorings to
Support API Evolution
· Van der Westhuizen, Chen & van der Hoek: Emerging Design: New
Roles and Uses for Abstraction
|
Policies
Disabilities:
Any student who feels he or she may need an accommodation based on the impact
of a disability should contact the instructor and the Disability Services Center as soon as possible.
Copyright: The
documents made available aim to ensure timely dissemination of scholarly and technical
work on a non-commercial basis and are for the sole use of students enrolled in
this class. Copyright and all rights therein are maintained
by the authors or by other copyright holders. It is
understood that all persons copying the files will adhere to the terms
and constraints invoked by each author's copyright. These works may not be reposted without the explicit permission of the
copyright holder.
Cheating.
The UCI academic
honesty policy applies. Content copied from the literature needs
to be quoted and the source must be given.
Acknowledgements
This course is based on other courses from André van der Hoek, Susan Elliott Sim, Myers and LaToza, and Leonardo Murta. I also
would like to thank the feedback received from David Redmiles, Yi Wang, Andre
van der Hoek, Thomas LaToza,
Gustavo Oliva, Igor Steinmacher,
and Igor Wiese.