Social Computing: Bridging the Gap Between the Social and the Technical
Social Computing—Bridging the Gap between the Social and the Technical
This paper introduces a bridge between sociological theory and software engineering by transforming Erving Goffman's "Dramaturgical Analysis" into formal UML design patterns. It provides a standardized framework for developing social computing and cooperative systems that balance technical robustness with social authenticity.
Executive Summary
TL;DR: This paper tackles the "cumbersome and rigid" nature of current cooperative systems by translating Erving Goffman’s sociological theories into actionable UML design patterns. By treating social interaction as a "performance" with actors, stages, and fronts, the authors provide a blueprint for software that is both technically sound and socially intuitive.
Background Positioning: This work serves as a theoretical bridge. It moves beyond purely descriptive ethnographic studies and purely technical software patterns to create a "socially-aware" modeling language for the next generation of social media and cooperative work technologies.
Problem & Motivation: Why Systems Feel "Socially Broken"
The authors argue that software engineers often build technically flawless systems that fail because they ignore the Inductive Bias of human social behavior. Existing software patterns (like POSA2) handle concurrency and event handling but leave the complexity of human interaction to chance. Conversely, earlier cooperative patterns were too descriptive—they told developers what was happening in a group but not how to code it.
The core insight is that human-computer interaction is not just data exchange; it is a social performance. If a system doesn't provide a "Backstage" for preparation or a "Face" for identity management, it inevitably leads to social "faux pas" and system rejection.
Methodology: The Core Architecture
The authors transpose Goffman’s 1959 framework into the Unified Modeling Language (UML). This transition from "sociology to code" is achieved through four primary patterns.
1. Structural Patterns: Social Entities and Regions
The Social Entity Pattern recognizes that users are not just "Users" but "Active Individuals" with multiple Faces. A "Face" is a configuration of identity that can be transformed into a Character during a specific interaction.

The Region Pattern replaces static physical boundaries with a dynamic combination of Visibility (information filters) and Locality (real or virtual boundaries). This ensures that the "Backstage" (where a user prepares) is technically isolated from the "Stage" (where the performance is visible to others).

Dynamics: How Social Information Flows
The paper distinguishes between two types of social communication:
- Direct Social Interaction (The "Given"): Explicit symbols like text or speech. The pattern focuses on the loop of selecting a "Face," delivering information, and adapting based on the audience's response.
- Mediated Social Interaction (The "Given-off"): Implicit signals, such as awareness information (e.g., "User is currently typing" or "User accessed this file"). This is often "ungovernable" and requires careful management within the Region Pattern to avoid privacy breaches.

Critical Analysis & Conclusion
Takeaway
The primary contribution is the formalization of Dramaturgical Discipline in software. By providing a repository of "Faces" and clear "Locality" filters, developers can build systems that support "Impression Management," allowing users to control how they are perceived in different social contexts.
Limitations
- Static vs. Fluid Roles: While UML classes provide structure, social roles are often more fluid and emergent than a static class hierarchy can easily represent.
- Empirical Validation: The paper provides the architecture but lacks the empirical measurement of how these patterns improve developer productivity or user satisfaction in the wild.
Future Outlook
As we move toward AI-mediated social spaces (like the Metaverse), these patterns will be essential. Incorporating "support entities" (like training specialists or confidants) as AI agents could further extend this framework, creating a comprehensive "Pattern Language for Social Computing."
