Knowledge Management Issues in software Architecture Documentation Rambabu D, Dr T.V. Prabhakar Indian Institute of Technology Kanpur India
On Archiving Architecture Documents Annotating Architecture Documents Search For Architecture Documents Outline
Ontology based semantic search
Architecture Architecture is a tool for dealing with complexity Success is regaining (intellectual) control Architects take complexity and make it manageable
Organizations are organisms , not machines
Functional Requirements Quality Requirements Design Constraints Architecture Knowledge C4 C6 C3 C2 C1 C4 Architecture Documents Architecture System Architect Designs Stakeholders Meets Concerns
Query Editor Ontology Viewer Metadata Annotator SWT Eclipse IDE Result Table Viewer Ontology Requestor Search Module Query Component Document Repository Annotated Files Repository Ontology Persistent Component Arch Property Object Query, Result Set Query, URL JFace
The structure of the systems changes to adapt it to new situations. The developments are difficult to evolve and Functional Stages tuning Desired level Actual state Architecture & Design System Validation Quality attributes High level structure of the system is necessary Quality Attributes must be considered at architecture & design Architecture patterns and styles and early design decisions Software Architecture
Its maintenance cost is high
Architecture Approaches An architectural approach is a combination of tactics to achieve some goal
The Concept of Viewpoints End-User Project Manager Programmer IEEE Standard 1471-2000 recommends use of “viewpoints” as conventional practice.
ISO/ITU Standard Viewpoints for IT Systems X.900 Open Distributed Processing SAAM Copyright 2001 iCMG Private Limited Information Viewpoint Computational Viewpoint Engineering Viewpoint Technology Viewpoint Enterprise Viewpoint
Concept map of Software Architecture Documentation concepts
Framework of the proposed tool
ArchAware- Basic View Draw2D Synchronous communication GEF Synchronize requirements data Eclipse Meta data At the top level, · Architecture metadata · Graphical editor
Dependencies in Arch Aware
Module View of Arch Aware
The Component and Connector View of Arch Aware
Screenshots of the plug-in
On Archiving Architecture Documents Architecture documentation Communication with the customer Analysis of various quality attributes Further development and maintenance Architectural level reuse Search on Software Architecture document repository in large organizations is a crucial factor Motivation
Knowledge management and acquisition plays a major role
Facilitates common understanding between stake holders Understanding of existing systems Reuse of existing components at a high level On Archiving Architecture Documents Architecture Descriptions Guides the system development during its construction and evolution Main benefits of architecture descriptions Analyzing existing software designs
evaluating software architectures
Most of the documents concerned with components and connectors represented with some UML tools Architecture patterns and Styles On Archiving Architecture Documents
Annotation of documents with these architecture properties help the search process
On Archiving Architecture Documents ` View Types Styles Memory Physical Network Connectivity Domain Knowledge Quality Attributed scenarios Conceptual Terms & Usage Groups Tactics Service level agreements Failure cases Correctness Technical components Success Factors Non Functional Requirements Patterms Gough, POSA Non Software Negative consequences Structural Properties Architectural styles Information Exchange Best Practices Architecture patterns Antipatterns Tactics Domain Perspective Problem Domain and Concepts Scenarios handled Architecture Properties Annotation Architecture documents Annotated documents Other Issues Technology Components Runtime Issues Quality Requirements Search
Lack of domain knowledge can result into chaos On Archiving Architecture Documents Retrieve the design documents with the similar problem domain? Problem Domain
Clear explanation of problem domain by domain expert in architecture documents
Scenario based techniques help in evaluating software architectures and writing test cases On Archiving Architecture Documents Annotating the documents with concrete scenarios under the general category helps the process helps the search process Scenarios handled
Quality Attribute General Scenarios
Architecture includes software and hardware subsystems and their connection These subsystems are mapped to technology components and the interfaces they provide On Archiving Architecture Documents Not actually a part of design process Retrieve the architecture documents which used mysql database on linux platform? Technology components
Search for arch documents which Apache webserver with ODS gateway and CORBA middleware along with oracle backend?
On Archiving Architecture Documents Module VT, C&C VT, Allocation VT Uses, Pipe and Filter, blackboard, publish subscribe, work assignment etc. Retrieve the architecture documents with Interpreter and Rule based system styles? Structural properties
Search for arch documents which used Blackboard and Hypertext systems?
Service Oriented Architecture Client server, distributed objects, Service Orientation Evolution from local (Objects) to network (services) Web services enable intrinsic interoperability Exploit new business opportunities and changing business requirements
I don’t care how good your architecture is, What business value are you creating?
On Archiving Architecture Documents Increase computation efficiency Reduce computational overhead Control frequency of sampling Architecture Tactics Did we use this tactic and what was the result?
Increase available resource
On Archiving Architecture Documents Information Exchange between components Network Connectivity Distributed Systems Retrieve the documents with solution architectures using MPI shared memory?
On Archiving Architecture Documents Best Practices - patterns CoverTheAssets, DesignByCommittee ReinventTheWheel, Vendor Lock in StovepipeEnterprise, Architecture by implication Provide the solutions which used MVC pattern? Architecture patterns and Antipatterns
What is the consequence of using common interface and then wrapping to integrate?
Patterns on the SOA Edge Peer to peer (Xbox Live, Napster, Skype) Centralized(MSN Spaces, Google)
Asynchronous (Fremont, Flickr, Housingmaps)
On Archiving Architecture Documents Several architectures may have same set of functional requirements but may vary in non functional requirements Performance, availability, reliability vary from system to system Performance specified in the SLA should be measured and quantified. Get a proper set of architecture documents Identify similar performance scenarios Identify problem areas/bottlenecks Address design and architectural performance issues including hardware and software system configuration Quality Requirements
Check the tuned system whether it is feasible/not feasible.
On Archiving Architecture Documents Timelines, Fail/Operational cases Versions, and configurations. Search for architectural solutions of a real time system with correctness not less than t? Other Issues
Retrieve the solution architectures that applied IEEE 1471 international standard .
Parse the Architecture documents Search the Domain for the corresponding architecture properties Annotate the documents with architectural properties as XML file as shown below. On Archiving Architecture Documents Search For documents User may be interested in searching for the architecture documents based on these architecture properties
Search in the XML files with architecture properties taken as input from the user.
Allowing the user to search for documents with the technical details involved. Refining the search to the lowest level by allowing the user to search based on the multiple architectural properties at the same time. On Archiving Architecture Documents Search: Typical Advantages
Annotating the documents with an XML file typically reduces the problem to an XML-tag search.
On Archiving Architecture Documents Case Study: Online Cricket Broadcasting System Module View
On Archiving Architecture Documents Case Study: Online Cricket Broadcasting System C&C View
< ?xml version=’1.0’? > <!DOCTYPE OCBS SYSTEM "ocbs.dtd"> <ArchitectureDescription> <title>CricketBroadcastingSystem</title> <author>Rambabu D</author> <ArchitectureProperties> <ProblemDomain> Designing an online cricket broadcasting system enabling flawless integration with TV, Mobile, Internet </ProblemDomain> <Scenarios> <PerfScenario>FasterSearch </PerfScenario> <PerfScenario>Rendering </PerfScenario> <ModScenario>NoGlitch</ModScenario> <SecScenario>AccessControl</SecScenario> </Scenarios> <Technology> <component>Oracle</component> <component>DSMS</component> <component>Webserver</component> </Technology> <InformationExchange> <Memory>parameter passing</Memory> <Physical>Stream via pipe</Physical> </InformationExchange> <ArchitecturePattern> <pattern>MVC</pattern> <pattern>ParallelPipeline</pattern> </ArchitecturePattern> XML Annotation for the OCBS arch document
<!ELEMENT ArchitectureDescription(title,author, ArchitectureProperties)> <!ELEMENT ArchitectureProperties (ProblemDomain, Scenarios,Technology,InformationExchange, ArchitecturePattern, Style, Tactics, QualityRequirements, MISC)> <!ELEMENT Scenarios (ModScenario*, PerfScenario*, SecScenario*, TestScenario*, UseScenario*)> <!ELEMENT Technology(Component+)> <!ELEMENT InformationExchange (Memory+, PhysicalMedium+)> <!ELEMENT ArchitecturePattern (pattern*, Antipattern*)> <!ELEMENT Styles (CnCView+, ModuleView+, AllocationView+)> <!ELEMENT Tactics (FaultDetection*, FaultRecovery*, LocalizeChanges*, ResistingAttack*, BindingTime*, ManageI/O*> <!ELEMENT QualityRequirements( Performance*, Availability*,Modifiability*,Usability*)> <!ELEMENTMISC(Standard*,Version*,Success*)> <!ELEMENT ModScenario (#PCDATA)> <!ELEMENT PerfScenario (#PCDATA)> <!ELEMENT SecScenario (#PCDATA)> <!ELEMENT TestScenario (#PCDATA)> <!ELEMENT UseScenario (#PCDATA)> <!ELEMENT Component (#PCDATA)> <!ELEMENT Memory (#PCDATA)> <!ELEMENT PhysicalMedium (#PCDATA)> <!ELEMENTPattern (#PCDATA)> <!ELEMENT AntiPattern (#PCDATA)> <!ELEMENT CnCView (#PCDATA)> <!ELEMENT ModuleView (#PCDATA)> <!ELEMENT AllocationView (#PCDATA)> <!ELEMENT FaultDetection (#PCDATA)> <!ELEMENT FaultRecovery (#PCDATA)> <!ELEMENT LocalizeChanges (#PCDATA)> Corresponding DTD for the annotation
Trying to build the domain vocabulary for each of these architecture properties Software architecture course projects Software Engineering course projects A repository of 22 architecture documents along with their annotated xml files Industrial case studies to determine the effectiveness is missing? On Archiving Architecture Documents
Projects vary in all domains
Semantic based approach One approach we are trying is to embed the semantic meaning and search based on the semantics rather than just a simple keyword based search For semantic based search we need to define domain vocabulary for each of these properties, and the relation between these vocabulary
we try to concentrate on Problem domain, patterns, Structural properties (architectural styles), Architecture Tactics, Information exchange between the components, Scenarios
A global Picture
Problem domain The classification can be like Generic problem domain or common problem domain Domain specific ness of the problem Individual or sub domain requirements of the problem The scope of the domain will be System requirements (functional and non functional requirements) Business and organizational requirements Domain specific requirements
Environmental constraints and domain constraints
Information exchange between the components
Search on what? The search will also be continued based on the architecture properties related to the given architecture property Say for example Search for the architecture documents which used observer pattern The search will be done on observer pattern as well as on the patterns related to observer pattern.
Search will also be done on the problem domain related to observer pattern
Search on what? Search for architecture documents which used Client server arch style? Search will also be done on the information exchange mechanisms like RPC, sockets etc..
Search will also be done on the problem domain which falls under client server arch style?
Conclusions and Future Work using the best practices and concepts like architecture patterns, styles, tactics and anti patterns in search for documents are the time savers for architects . Annotating the documents with these architecture properties play crucial role in this archiving process. Can semantic meaning be embedded in the XML file so that search can be performed based on semantics rather than just a simple keyword based search? On Archiving Architecture Documents
Use of ontologies to map these architecture properties
Thank you for your attention Questions? On Archiving Architecture Documents