DOC PREVIEW
USC CSCI 577 - ep10

This preview shows page 1-2 out of 6 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 6 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 6 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 6 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

50 I E E E S o f t w a r E P u b l i s h e d b y t h e I E E E C o m p u t e r S o c i e t y 0 7 4 0 - 7 4 5 9 / 0 8 / $ 2 5 . 0 0 © 2 0 0 8 I E E Efocus 1opportunistic software systems developmentSituated Software: Concepts, Motivation, Technology, and the Future Sriram Balasubramaniam, Grace A. Lewis, Soumya Simanta, and Dennis B. Smith, Software Engineering Institute, Carnegie Mellon UniversitySituated software can change how users access, perceive, and consume information for a specific purpose, letting them focus on what to do with information rather than where and how to acquire it.Opportunistic software systems are created when a user combines two or more software systems to satisfy specific needs that weren’t foreseen when the indi-vidual systems were developed. These software systems usually aren’t complete or comprehensive because they’re meant to address specific situations or use cases. They’re often lightweight composite applications that might be hardened over time to support additional growth, features, and capabilities. Because the individual software sys-tems usually aren’t built for use in different contexts, integration is challenging.Opportunistic software development is noth-ing new. Shell scripts and Excel spreadsheets that let users quickly automate tasks specific to their needs have been around for a while. Over time, one or more users identify a pressing need for specific functionality that the software applications their enterprises use don’t provide. Even if the functional-ity exists, it’s not present in the way the users want to use it. So, they go about implementing that func-tionality using a tool such as Microsoft Excel.Situated software, a term made popular by Clay Shirky, is a form of opportunistic software that a small subset of users create to fulfill a specific pur-pose. In Shirky’s words, “Situated software is de-signed in and for a particular social situation or context.”1 In contrast to standard software devel-opment, situated software usually isn’t constructed by a team of traditional software developers. In-stead, it’s created by users who desire specific func-tionality that mainstream software doesn’t provide. Typically, it’s personalized, localized software that has evolved organically and has been created by the community that uses it. Bonnie Nardi reports that users frequently share customization files, and that this often applies to situated software, too.2 Users who customize software to suit their specific needs often end up sharing their customization efforts with a like-minded community.In this article, we focus on situated software as an example of opportunistic software and as a potential means for helping users significantly im-prove their ability to use software and data to ad-dress pressing business needs. We provide examples of situated software’s use, trace how the Internet contributed to its rapid evolution, outline its role, describe situations where it’s appropriate to develop software opportunistically, discuss its limitations, and outline enablers for its adoption.The Context for Situated SoftwareThe advent of the Internet and the recent explosion in Semantic Web applications’ availability has made it easier for users to develop situated software.3 The increasing availability of XML (www.w3.org/TR/xml) data feeds (using protocols such as RSS [www.rssboard.org/rss-specification] and Atom Authorized licensed use limited to: University of Southern California. Downloaded on January 22, 2009 at 13:35 from IEEE Xplore. Restrictions apply.November/December 2008 I E E E S o f t w a r E 51[www.atomenabled.org/developers/syndication/ atom-format-spec.php]) has made it easier for small groups of people to consume these data feeds in ways that were never envisioned before. This has led to new classes of user-generated applications that are examples of situated software. The situ-ated-software model departs from the more tradi-tional and established application-centric comput-ing model that was, and continues to be, the norm. In a sense, it’s as if data has been liberated from the confines of the IT department. Users are be-coming more aware of the power of flexible data use to serve business needs in diverse ways. This new inflection point also spans multiple mediums, as evidenced by the use of an increasing number of mobile, wireless, and set-top devices to both build and access situated-software applications.Another term related to situated software is Web 2.0,4 which refers to “changing trends in the use of World Wide Web technology and Web design that aim to enhance creativity, information sharing, col-laboration, and functionality of the Web … [and] have led to the development and evolution of Web-based communities and hosted services, such as social-networking sites, video-sharing sites, wikis, blogs, and folksonomies” (http://en.wikipedia.org/wiki/Web_2.0). While this definition of Web 2.0 focuses on the user and social perspective, note that Web 2.0 also exhibits the notion of the “software as a platform” paradigm by providing data feeds and application programming interfaces (APIs), thus enabling developers and users to extend and customize Web 2.0 applications. A Web 2.0 appli-cation typically consists of one or more of the fol-lowing capabilities:provides and facilitates customization, person-alization, collaboration, and data sharing be-tween users;encourages the use of data feeds, which are typ-ically provided in XML format;provides multiple APIs in a variety of program-ming technologies, thus allowing software developers to choose the technology and pro-gramming language;promotes the extraction of partial functionality and data;provides a rich set of interaction widgets, which serve as user-interface building blocks for de-veloping and personalizing the user experience; andoften provides source code, which lets software developers modify sample applications to suit their needs and also extend the software to sup-port additional functionality.■■■■■■These technologies provide tools that let users combine subsets of functionality from different ap-plications to build entirely new applications. On-line applications such as Dapper (www.dapper.net) and Data Mashups


View Full Document

USC CSCI 577 - ep10

Documents in this Course
ec-04

ec-04

39 pages

CSep15

CSep15

37 pages

ec-24

ec-24

42 pages

ec-11

ec-11

42 pages

ec-07

ec-07

51 pages

ec-02

ec-02

22 pages

Load more
Download ep10
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view ep10 and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view ep10 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?