Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Ibm irl


Published on

  • Be the first to comment

  • Be the first to like this

Ibm irl

  1. 1. Knowledge Management Issues in software Architecture Documentation Rambabu D, Dr T.V. Prabhakar Indian Institute of Technology Kanpur India
  2. 2. On Archiving Architecture Documents <ul><ul><li>Software Architecture </li></ul></ul><ul><ul><li>Archaware – Initial cut </li></ul></ul><ul><ul><li>Architecture properties </li></ul></ul><ul><ul><li>Annotating Architecture Documents </li></ul></ul><ul><ul><li>Search For Architecture Documents </li></ul></ul><ul><ul><li>Case Study </li></ul></ul><ul><ul><li>Ontology based semantic search </li></ul></ul><ul><ul><li>Conclusions </li></ul></ul>Outline
  3. 3. Bad Architecture
  4. 5. Architecture <ul><ul><li>Architecture is a tool for dealing with complexity </li></ul></ul><ul><ul><li>Success is regaining (intellectual) control </li></ul></ul><ul><ul><li>Architects take complexity and make it manageable </li></ul></ul><ul><ul><ul><li>Models </li></ul></ul></ul><ul><ul><ul><li>Frameworks </li></ul></ul></ul><ul><ul><ul><li>Governance & tools </li></ul></ul></ul><ul><ul><li>Illusion of control </li></ul></ul><ul><ul><ul><li>Organizations are organisms , not machines </li></ul></ul></ul><ul><ul><ul><li>People </li></ul></ul></ul>
  5. 6. Functional Requirements Quality Requirements Design Constraints Architecture Knowledge C4 C6 C3 C2 C1 C4 Architecture Documents Architecture System Architect Designs Stakeholders Meets Concerns
  6. 7. 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
  7. 8. <ul><li>The structure of the systems changes to adapt it to new situations. </li></ul><ul><ul><li>A low quality software. </li></ul></ul><ul><ul><li>The developments are difficult to evolve and </li></ul></ul><ul><ul><li>Its maintenance cost is high </li></ul></ul>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
  8. 9. Architecture Approaches <ul><ul><li>4+1 view Architecture </li></ul></ul><ul><ul><li>V&B approach </li></ul></ul><ul><ul><li>IEEE 1471 approach </li></ul></ul><ul><ul><li>Zachman’s framework </li></ul></ul>An architectural approach is a combination of tactics to achieve some goal
  9. 10. The Concept of Viewpoints End-User Project Manager Programmer IEEE Standard 1471-2000 recommends use of “viewpoints” as conventional practice.
  10. 11. 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
  11. 12. Concept map of Software Architecture Documentation concepts
  12. 13. Framework of the proposed tool
  13. 14. ArchAware- Basic View Draw2D Synchronous communication GEF Synchronize requirements data Eclipse Meta data At the top level, · Architecture metadata · Graphical editor
  14. 15. Dependencies in Arch Aware
  15. 16. Module View of Arch Aware
  16. 17. The Component and Connector View of Arch Aware
  17. 18. Screenshots of the plug-in
  18. 19. On Archiving Architecture Documents <ul><ul><li>Architecture documentation </li></ul></ul><ul><ul><ul><li>Communication with the customer </li></ul></ul></ul><ul><ul><ul><li>Analysis of various quality attributes </li></ul></ul></ul><ul><ul><ul><li>Further development and maintenance </li></ul></ul></ul><ul><ul><li>Architectural level reuse </li></ul></ul><ul><ul><li>Knowledge management and acquisition plays a major role </li></ul></ul>Search on Software Architecture document repository in large organizations is a crucial factor Motivation
  19. 20. <ul><ul><li>Facilitates common understanding between stake holders </li></ul></ul><ul><ul><li>Understanding of existing systems </li></ul></ul><ul><ul><li>Reuse of existing components at a high level </li></ul></ul><ul><ul><li>Guides the system development during its construction and evolution </li></ul></ul>On Archiving Architecture Documents Architecture Descriptions <ul><li>Main benefits of architecture descriptions </li></ul><ul><ul><ul><li>Analyzing existing software designs </li></ul></ul></ul><ul><ul><ul><li>evaluating software architectures </li></ul></ul></ul>
  20. 21. <ul><ul><li>Most of the documents concerned with components and connectors represented with some UML tools </li></ul></ul><ul><ul><li>Quality Attributes </li></ul></ul><ul><ul><li>Tactics </li></ul></ul><ul><ul><li>Architecture patterns and Styles </li></ul></ul><ul><li>are equally important </li></ul><ul><li>Annotation of documents with these architecture properties help the search process </li></ul>On Archiving Architecture Documents
  21. 22. 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
  22. 23. <ul><ul><li>Lack of domain knowledge can result into chaos </li></ul></ul><ul><ul><li>Clear explanation of problem domain by domain expert in architecture documents </li></ul></ul>On Archiving Architecture Documents Retrieve the design documents with the similar problem domain? Problem Domain
  23. 24. <ul><ul><li>Scenario based techniques help in evaluating software architectures and writing test cases </li></ul></ul><ul><ul><li>Quality Attribute General Scenarios </li></ul></ul><ul><ul><li>Concrete Scenarios </li></ul></ul>On Archiving Architecture Documents Annotating the documents with concrete scenarios under the general category helps the process helps the search process Scenarios handled
  24. 25. <ul><ul><li>Architecture includes software and hardware subsystems and their connection </li></ul></ul><ul><ul><li>These subsystems are mapped to technology components and the interfaces they provide </li></ul></ul><ul><ul><li>Not actually a part of design process </li></ul></ul>On Archiving Architecture Documents <ul><ul><li>Retrieve the architecture documents which used mysql database on linux platform? </li></ul></ul><ul><ul><li>Search for arch documents which Apache webserver with ODS gateway and CORBA middleware along with oracle backend? </li></ul></ul>Technology components
  25. 26. On Archiving Architecture Documents <ul><ul><li>View Types </li></ul></ul><ul><ul><ul><li>Module VT, C&C VT, Allocation VT </li></ul></ul></ul><ul><ul><li>Architecture styles </li></ul></ul><ul><ul><ul><li>Uses, Pipe and Filter, blackboard, publish subscribe, work assignment etc. </li></ul></ul></ul><ul><ul><li>Retrieve the architecture documents with Interpreter and Rule based system styles? </li></ul></ul><ul><ul><li>Search for arch documents which used Blackboard and Hypertext systems? </li></ul></ul>Structural properties
  26. 27. Service Oriented Architecture <ul><ul><li>An Architecture style </li></ul></ul><ul><ul><ul><li>Client server, distributed objects, Service Orientation </li></ul></ul></ul><ul><ul><ul><li>Evolution from local (Objects) to network (services) </li></ul></ul></ul><ul><ul><ul><li>Principle and patterns </li></ul></ul></ul><ul><ul><ul><li>Web services enable intrinsic interoperability </li></ul></ul></ul><ul><ul><ul><li>Facilitates agility </li></ul></ul></ul><ul><ul><ul><ul><li>Exploit new business opportunities and changing business requirements </li></ul></ul></ul></ul><ul><ul><ul><li>Means to an end </li></ul></ul></ul><ul><ul><ul><ul><li>I don’t care how good your architecture is, What business value are you creating? </li></ul></ul></ul></ul>
  27. 28. On Archiving Architecture Documents <ul><ul><li>Performance </li></ul></ul><ul><ul><ul><li>Resource demand </li></ul></ul></ul><ul><ul><ul><ul><li>Increase computation efficiency </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Reduce computational overhead </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Manage event rate </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Control frequency of sampling </li></ul></ul></ul></ul><ul><ul><ul><li>Resource management </li></ul></ul></ul><ul><ul><ul><ul><li>Introduce concurrency </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Maintain multiple copies </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Increase available resource </li></ul></ul></ul></ul><ul><ul><ul><li>Resource arbitration </li></ul></ul></ul><ul><ul><ul><ul><li>Scheduling policy </li></ul></ul></ul></ul>Architecture Tactics Did we use this tactic and what was the result?
  28. 29. On Archiving Architecture Documents <ul><ul><li>Memory </li></ul></ul><ul><ul><ul><li>Parameter passing </li></ul></ul></ul><ul><ul><ul><li>Shared memory </li></ul></ul></ul><ul><ul><ul><li>Global variables </li></ul></ul></ul><ul><ul><li>Physical medium </li></ul></ul><ul><ul><ul><li>Http, Tcp/Ip ports </li></ul></ul></ul><ul><ul><ul><li>Remote procedure call </li></ul></ul></ul><ul><ul><ul><li>Interrupts, Polling </li></ul></ul></ul><ul><ul><ul><li>Direct Memory Access </li></ul></ul></ul>Information Exchange between components Network Connectivity Distributed Systems Retrieve the documents with solution architectures using MPI shared memory?
  29. 30. On Archiving Architecture Documents <ul><ul><li>Best Practices - patterns </li></ul></ul><ul><ul><ul><li>Gough, POSA, MVC </li></ul></ul></ul><ul><ul><li>Antipatterns </li></ul></ul><ul><ul><ul><li>CoverTheAssets, DesignByCommittee </li></ul></ul></ul><ul><ul><ul><li>ReinventTheWheel, Vendor Lock in </li></ul></ul></ul><ul><ul><ul><li>StovepipeEnterprise, Architecture by implication </li></ul></ul></ul><ul><ul><li>Refactoring </li></ul></ul><ul><ul><li>Provide the solutions which used MVC pattern? </li></ul></ul><ul><ul><li>What is the consequence of using common interface and then wrapping to integrate? </li></ul></ul>Architecture patterns and Antipatterns
  30. 31. Patterns on the SOA Edge <ul><ul><li>Peer to peer (Xbox Live, Napster, Skype) </li></ul></ul><ul><ul><li>Centralized(MSN Spaces, Google) </li></ul></ul><ul><ul><li>Asynchronous (Fremont, Flickr, Housingmaps) </li></ul></ul><ul><ul><li>Hybrid patterns </li></ul></ul><ul><ul><li>Patterns for E-Commerce </li></ul></ul>
  31. 32. On Archiving Architecture Documents <ul><ul><li>Several architectures may have same set of functional requirements but may vary in non functional requirements </li></ul></ul><ul><ul><li>Performance, availability, reliability vary from system to system </li></ul></ul><ul><ul><li>Performance specified in the SLA should be measured and quantified. </li></ul></ul><ul><ul><li>Get a proper set of architecture documents </li></ul></ul><ul><ul><li>Identify similar performance scenarios </li></ul></ul><ul><ul><li>Identify problem areas/bottlenecks </li></ul></ul><ul><ul><li>Address design and architectural performance issues including hardware and software system configuration </li></ul></ul><ul><ul><li>Check the tuned system whether it is feasible/not feasible. </li></ul></ul>Quality Requirements
  32. 33. On Archiving Architecture Documents <ul><ul><li>Runtime Issues </li></ul></ul><ul><ul><ul><li>Time critical systems, </li></ul></ul></ul><ul><ul><ul><li>Timelines, Fail/Operational cases </li></ul></ul></ul><ul><ul><li>Conceptual terms </li></ul></ul><ul><ul><li>Miscellaneous </li></ul></ul><ul><ul><ul><li>Standards </li></ul></ul></ul><ul><ul><ul><li>Success factors </li></ul></ul></ul><ul><ul><ul><li>Versions, and configurations. </li></ul></ul></ul><ul><ul><li>Search for architectural solutions of a real time system with correctness not less than t? </li></ul></ul><ul><ul><li>Retrieve the solution architectures that applied IEEE 1471 international standard . </li></ul></ul>Other Issues
  33. 34. <ul><ul><li>Parse the Architecture documents </li></ul></ul><ul><ul><li>Search the Domain for the corresponding architecture properties </li></ul></ul><ul><ul><li>Annotate the documents with architectural properties as XML file as shown below. </li></ul></ul><ul><ul><li>Search in the XML files with architecture properties taken as input from the user. </li></ul></ul>On Archiving Architecture Documents Search For documents User may be interested in searching for the architecture documents based on these architecture properties
  34. 35. <ul><ul><li>Allowing the user to search for documents with the technical details involved. </li></ul></ul><ul><ul><li>Refining the search to the lowest level by allowing the user to search based on the multiple architectural properties at the same time. </li></ul></ul><ul><ul><li>Annotating the documents with an XML file typically reduces the problem to an XML-tag search. </li></ul></ul>On Archiving Architecture Documents Search: Typical Advantages
  35. 36. On Archiving Architecture Documents Case Study: Online Cricket Broadcasting System Module View
  36. 37. On Archiving Architecture Documents Case Study: Online Cricket Broadcasting System C&C View
  37. 38. < ?xml version=’1.0’? > <!DOCTYPE OCBS SYSTEM &quot;ocbs.dtd&quot;> <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
  38. 39. <!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
  39. 40. <ul><ul><li>Trying to build the domain vocabulary for each of these architecture properties </li></ul></ul><ul><ul><li>Software architecture course projects </li></ul></ul><ul><ul><li>Software Engineering course projects </li></ul></ul><ul><ul><li>A repository of 22 architecture documents along with their annotated xml files </li></ul></ul><ul><ul><li>Projects vary in all domains </li></ul></ul>Industrial case studies to determine the effectiveness is missing? On Archiving Architecture Documents
  40. 41. Semantic based approach <ul><ul><li>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 </li></ul></ul><ul><ul><li>For semantic based search we need to define domain vocabulary for each of these properties, and the relation between these vocabulary </li></ul></ul><ul><ul><li>we try to concentrate on Problem domain, patterns, Structural properties (architectural styles), Architecture Tactics, Information exchange between the components, Scenarios </li></ul></ul>
  41. 42. A global Picture
  42. 43. Problem domain
  43. 44. Problem domain <ul><ul><li>The classification can be like </li></ul></ul><ul><ul><ul><li>Generic problem domain or common problem domain </li></ul></ul></ul><ul><ul><ul><li>Domain specific ness of the problem </li></ul></ul></ul><ul><ul><ul><li>Individual or sub domain requirements of the problem </li></ul></ul></ul><ul><ul><li>The scope of the domain will be </li></ul></ul><ul><ul><ul><li>System requirements (functional and non functional requirements) </li></ul></ul></ul><ul><ul><ul><li>Business and organizational requirements </li></ul></ul></ul><ul><ul><ul><li>Domain specific requirements </li></ul></ul></ul><ul><ul><ul><li>Some standards </li></ul></ul></ul><ul><ul><ul><li>Environmental constraints and domain constraints </li></ul></ul></ul>
  44. 45. Patterns
  45. 46. Structural properties
  46. 47. Architecture Tactics
  47. 48. Scenarios handled
  48. 49. Information exchange between the components
  49. 50. Search on what? <ul><ul><li>The search will also be continued based on the architecture properties related to the given architecture property </li></ul></ul><ul><ul><li>Say for example Search for the architecture documents which used observer pattern </li></ul></ul><ul><ul><li>The search will be done on observer pattern as well as on the patterns related to observer pattern. </li></ul></ul><ul><ul><li>Search will also be done on the problem domain related to observer pattern </li></ul></ul>
  50. 51. Search on what? <ul><ul><li>Search for architecture documents which used Client server arch style? </li></ul></ul><ul><ul><li>Search will also be done on the information exchange mechanisms like RPC, sockets etc.. </li></ul></ul><ul><ul><li>Search will also be done on the problem domain which falls under client server arch style? </li></ul></ul>
  51. 52. Conclusions and Future Work <ul><ul><li>using the best practices and concepts like architecture patterns, styles, tactics and anti patterns in search for documents are the time savers for architects . </li></ul></ul><ul><ul><li>Annotating the documents with these architecture properties play crucial role in this archiving process. </li></ul></ul><ul><ul><li>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? </li></ul></ul><ul><ul><li>Use of ontologies to map these architecture properties </li></ul></ul>On Archiving Architecture Documents
  52. 53. Thank you for your attention Questions? On Archiving Architecture Documents