19.6: The Architect …
-
- Last updated
- Save as PDF
“I have come to the conclusion that software architecture is very difficult to define. It is a range of artifacts that are used to specify the strategic decisions about the structure and behavior of the system, the collaborations among the system elements, and the physical deployment of the system” (Quatrani, 2003).
While the previous sections focused on the sociological and technical foundations for building digital communities, this section works to address how these ideas can be integrated into a digital community’s social fabric— its code. This section is dedicated to exploring tools used by software developers to communicate the complex relationships within digital communities. A basic understanding of these tools can increase the value and functionality of these emerging collaborative spaces. The tools can provide powerful working documents that encourage input from the diverse community members who populate these digital communities.
The system architect collects and analyzes software requirements then documents the required functionality for both the end user and the application. In an effort to standardize the communication of these complex relationships, system architects have begun to adopt notation techniques based on the unified modelling language (UML).
UML provides an abstract representation of complex relationships. This notation can be used to extend the efforts of social and technical investigations by providing a flexible and powerful communication framework. UML is a compilation of primarily three common, yet distinct notations (including OMT [Rumbaugh], Booch & OOSE [Jacobson]), and is now a fully recognized and published standard (ISO/IEC 19501:2005) within the International Organization for Standardization (ISO).
System Modelling
Structuring information is critical in facilitating highly dynamic and complex interactions. For raft guide trainees, structure is provided continuously through direct supervision. This instruction and supervision provides guide trainees with valuable feedback and insight into community practices and expectations. This feedback allows guide hopefuls to develop and contribute to the completion of a safe and enjoyable rafting experience. By clearly communicating how raft guide trainees can contribute to the professional rafting community, trainees can offer valued contributions without imposing on the guests’ experiences.
Rafting companies provide much more than professional guides; they provide a carefully choreographed series of experiences designed to educate and entertain. The services must work to attain the highest quality guest experience.
The experience attained within a digital community can also be viewed as a series of choreographed and sequenced interactions. These interactions are influenced by both the architectural design of the digital community and the services provided by information managers during the implementation of the system architecture. The development of modelling tools have been successfully used to mediate these complex relationships, allowing individuals to communicate important system design information, system implementation processes, and the sequences and activities available for facilitating participation.
Use case diagrams
“The most important role of a use case model is one of communication. It provides a vehicle used by the customer or end users and the developers to discuss the system's functionality and behavior.” (Quatrani, 2003).
Describing how users will interface with highly structured computer information systems is an important and complex task. Developing technological infrastructure that efficiently models community practices requires a detailed understanding of how community members interact. Individuals with this knowledge are often referred to as domain experts. These experts are frequently charged with attempting to explain complex and informal information management practices. Use case diagrams are designed to visually represent these practices, capturing information that allows system architects and software engineers to ensure new technological solutions record and reference valued information only.
Activity diagrams
“These diagrams represent the dynamics of the system. They are flow charts that are used to show the workflow of a system; that is, they show the flow of control from activity to activity in the system, what activities can be done in parallel, and any alternate paths through the flow … activity diagrams may be created to represent the flow across use cases or they may be created to represent the flow within a particular use case … Activity diagrams may [also] be created to show the workflow for an operation”. (Quatrani, 2003).
Once the required information has been identified, system architects begin to evaluate the process for collecting and publishing the information for community access. Once again, domain experts—those individuals familiar with community practices—play a vital role in explaining the information requirements of community members. In this stage of system development, documentation provides insight into community participation by identifying the actions of community members. Ideally, these actions will be developed using a series of modular and reusable components.
Sequence diagrams
“A sequence diagram shows object interactions arranged in time sequence. It depicts the objects and classes involved in the scenario and the sequence of messages exchanged between the objects needed to carry out the functionality of the scenario. Sequence diagrams typically are associated with use case realizations in the Logical View of the system under development”. (Quatrani, 2003).
Once the program activities have been identified, software developers work to sequence the completion of these activities. Sequencing activities facilitates community participation by defining opportunities to engage in group goals and objectives. By carefully selecting how information system architecture imposes constraints upon community member interactions, digital communities can create carefully choreographed experiences.
Class diagrams
A class is an abstract representation of an idea (an approval class for example). Class diagrams are commonly used by software engineers to provide an abstract representation of programming logic (the connections between ideas, for example, ensuring approval status is obtained before allowing publication to occur). Programming logic is used to implement a technological solution that reflects the process of storing (recording and referencing) and retrieving (publishing and facilitating) digital information. Class diagrams also allow programmers to communicate the technical ability for software to integrate additional features or third-party modular extensions, an important component of implementing a SOA strategy.
The Application of UML
By sharing the process used to integrate new technological infrastructure, digital community practitioners can begin to selectively evaluate architecture found within various software packages. When this evaluation process is combined with community consultation, development initiatives can be prioritized and system integration requirements can be clearly defined.
The implementation process
These communication tools can be combined to create a solid process for managing the information lifecycle and provide insight into the design and development of community infrastructure. The ability to derive processes from the business information model (such as UML diagrams) can be used to map information interaction patterns and facilitate the adoption of content (Hinkelman, Buddenbaum & Zhang, 2006, p. 375). Existing data structures can be mapped and information transformed to enable data exchange between disparate information systems—a process “strategically important for enterprises to increase information technology efficiency be reusing and integrating existing [data]” (Roth et al, 2006, p. 393).