Svoboda | Graniru | BBC Russia | Golosameriki | Facebook
Skip to main content

Susan Sim

... Software developers are now using this rich resource to create software mashups. ... They have become one of the most popular “semi-official” ways in which software developers learn from, and forge, communities of practice. ...
As software systems and networks continue to evolve, so do threats to their security. Unfortunately, most security issues come to light only after completion of the system because security is often managed in an ad hoc fashion late in the... more
As software systems and networks continue to evolve, so do threats to their security. Unfortunately, most security issues come to light only after completion of the system because security is often managed in an ad hoc fashion late in the software lifecycle. There are many advantages to incorporating security specification into the requirements phase and a number of approaches have been proposed. In this paper, we present a comparative evaluation of three such approaches: The Common Criteria, Misuse Cases, and Attack Trees. We applied each of these approaches to a common problem, a wireless hotspot, and evaluated them for learnability, usability, solution inclusiveness, clarity of output, and analyzability. We found that each approach has strengths and weaknesses, and that they can be complimentary when combined. The Common Criteria are difficult to learn and use, but are easy to analyze. Misuse Cases are easy to learn and use, but produces output that is hard to read. In contrast, ...
ABSTRACT Every method for developing software is a prescriptive model. Applying a deconstructionist analysis to methods reveals that there are two texts, or sets of assumptions and ideals: a set that is privileged by the method and a... more
ABSTRACT Every method for developing software is a prescriptive model. Applying a deconstructionist analysis to methods reveals that there are two texts, or sets of assumptions and ideals: a set that is privileged by the method and a second set that is left out, or marginalized by the method. We apply this analytical lens to software reuse, a technique in software development that seeks to expedite one's own project by using programming artifacts created by others. By analyzing the methods prescribed by Component-Based Software Engineering (CBSE), we arrive at two texts: Methodical CBSE and Amethodical Remixing. Empirical data from four studies on code search on the web draws attention to four key points of tension: status of component boundaries; provenance of source code; planning and process; and evaluation criteria for candidate code. We conclude the paper with a discussion of the implications of this work for the limits of methods, structure of organizations that reuse software, and the design of search engines for source code.
ABSTRACT The articles in this special section contain selected papers from the International Symposium on Software Testing and Analysis 2010.
ABSTRACT Reusing software through copying and pasting is a continuous plague in software development despite the fact that it creates serious maintenance problems. Various techniques have been proposed to find duplicated redundant code... more
ABSTRACT Reusing software through copying and pasting is a continuous plague in software development despite the fact that it creates serious maintenance problems. Various techniques have been proposed to find duplicated redundant code (also known as software ...
... By Barry Wellman (WELLMAN@UTOREPAS) & Susan Sim (Centre for Urban and Community Studies, University of Toronto & Lome Park Secondary ... from network member #2 (&dquo;Linda and Roger B.&dquo;- actually a couple who... more
... By Barry Wellman (WELLMAN@UTOREPAS) & Susan Sim (Centre for Urban and Community Studies, University of Toronto & Lome Park Secondary ... from network member #2 (&dquo;Linda and Roger B.&dquo;- actually a couple who function as one relation to Ms. Lancaster). ...
Research Interests:
Research Interests:
Research Interests:
Research Interests:
This report summarizes the presentations and discussion of a half-day workshop held at CASCON98. The theme of the workshop, "Building Software Tools for People," indicates the importance of considering users, their... more
This report summarizes the presentations and discussion of a half-day workshop held at CASCON98. The theme of the workshop, "Building Software Tools for People," indicates the importance of considering users, their habits, their work environments, and their organizations when constructing software engineering tools. There were five presenters from industry, government, and universities -- Nick Graham, Sharon Lymer, Susan Elliott Sim,
Research Interests:
2 There are many things to be learned about software engineering by working directly with software practitioners in companies. In this paper, we present an overview of some of the techniques for performing such field studies, focusing on... more
2 There are many things to be learned about software engineering by working directly with software practitioners in companies. In this paper, we present an overview of some of the techniques for performing such field studies, focusing on such issues as: What kind of problems can be addressed by field studies? What techniques are available for gathering data and analysis of the results? In what situations are these techniques suitable? What difficulties might the software researcher encounter when performing field studies? We illustrate the discussion with examples from our own work as well as numerous studies reported in the literature. Index Terms--Field Studies, Work Practices, Empirical Software Engineering 2 This work is supported by NSERC and sponsored by the Consortium for Software Engineering Research (CSER). Software Anthropology -3I. INTRODUCTION Software engineering is a labor-intensive activity. Thus to improve software engineering practice, a considerable portion of o...
Software engineering is an intensely people-oriented activity, yet little is known about how software engineers perform their work. In order to improve software engineering tools and practice, it is therefore essential to conduct field... more
Software engineering is an intensely people-oriented activity, yet little is known about how software engineers perform their work. In order to improve software engineering tools and practice, it is therefore essential to conduct field studies, ie, to study real practitioners as they solve real problems. To aid this goal, we describe a series of data collection techniques for such studies, organized around a taxonomy based on the degree to which interaction with software engineers is necessary. For each technique, we provide examples from the ...
Research Interests:
Research Interests:
ABSTRACT This paper presents an idea of using a structure traversal graph (STG) to characterize whether program comprehension is progressing smoothly. Inspired by electrocardiograms that are used to measure heart rhythms, STGs are an... more
ABSTRACT This paper presents an idea of using a structure traversal graph (STG) to characterize whether program comprehension is progressing smoothly. Inspired by electrocardiograms that are used to measure heart rhythms, STGs are an attempt to depict the rhythm of program navigation. STGs are created by abstracting navigation between files to the level of a conceptual architecture graph. We analyzed the navigation patterns of fifteen developers performing a modification task in the laboratory and found that the STG was a good organizing principle for program comprehension behavior.
The goal of this workshop is to provide an interactive forum for software engineers and empirical researchers to investigate the feasibility of applying proven methods from other research disciplines to software engineering research.... more
The goal of this workshop is to provide an interactive forum for software engineers and empirical researchers to investigate the feasibility of applying proven methods from other research disciplines to software engineering research. Participants submitted position papers describing problems that might benefit from a multidisciplinary approach. Expert guest speakers from software engineering and other disciplines will address the issues highlighted
ABSTRACT Every method for developing software is a prescriptive model. Applying a deconstructionist analysis to methods reveals that there are two texts, or sets of assumptions and ideals: a set that is privileged by the method and a... more
ABSTRACT Every method for developing software is a prescriptive model. Applying a deconstructionist analysis to methods reveals that there are two texts, or sets of assumptions and ideals: a set that is privileged by the method and a second set that is left out, or marginalized by the method. We apply this analytical lens to software reuse, a technique in software development that seeks to expedite one's own project by using programming artifacts created by others. By analyzing the methods prescribed by Component-Based Software Engineering (CBSE), we arrive at two texts: Methodical CBSE and Amethodical Remixing. Empirical data from four studies on code search on the web draws attention to four key points of tension: status of component boundaries; provenance of source code; planning and process; and evaluation criteria for candidate code. We conclude the paper with a discussion of the implications of this work for the limits of methods, structure of organizations that reuse software, and the design of search engines for source code.
Software developers frequently search for source code on the Web to solve problems. Their ability to correctly evaluate the matches returned by a source code search engine is key to the success of the search, and in turn the project. We... more
Software developers frequently search for source code on the Web to solve problems. Their ability to correctly evaluate the matches returned by a source code search engine is key to the success of the search, and in turn the project. We conducted a laboratory experiment to gain understanding on the kinds of information used and their usefulness during the evaluation
Developers use the Web as a tool to find information to help them solve their software development problems. However, little is known about what kinds of problems motivate developers to do searches on the Web. We asked twenty-five... more
Developers use the Web as a tool to find information to help them solve their software development problems. However, little is known about what kinds of problems motivate developers to do searches on the Web. We asked twenty-five developers to record their Web searches at a medium-sized software company. We also observed twelve developers. In our analysis, we found that

And 25 more

Marisa Leavitt Cohn, Susan Elliott Sim and Kavita Philip,  at iFutures: Systems, Selves, Society [iConference 2008] UCLA Feb 28 – March 1.
Research Interests: