XSDoc, JISBD’2003 1 XSDoc an Extensible Wiki-based Infrastructure for Framework Documentation Ademar Aguiar, Gabriel David, Manuel Padilha FEUP, INESC.

Slides:



Advertisements
Similar presentations
COMBASE: strategic content management system Soft Format, 2006.
Advertisements

Introduction to Maven 2.0 An open source build tool for Enterprise Java projects Mahen Goonewardene.
Jenkins User Conference San Francisco, Sept #jenkinsconf Business Process Model & Notation (BPMN) Workflows in Jenkins Max Spring Cisco
Software Frame Simulator (SFS) Technion CS Computer Communications Lab (236340) in cooperation with ECI telecom Uri Ferri & Ynon Cohen January 2007.
Goals Give you a feeling of what Eclipse is.
IEC Substation Configuration Language and Its Impact on the Engineering of Distribution Substation Systems Notes Dr. Alexander Apostolov.
Introduction KWizCom Business Card Founded in 2005 Headquartered in Toronto Global provider of add-ons and services customers worldwide Business.
Building Enterprise Applications Using Visual Studio ®.NET Enterprise Architect.
© 2007 IBM Corporation IBM Emerging Technologies Enabling an Accessible Web 2.0 Becky Gibson Web Accessibility Architect.
Introduction To System Analysis and Design
Small Tools and Interoperability Arend Rensink Formal Methods and Tools University of Twente.
1 Introducing Collaboration to Single User Applications A Survey and Analysis of Recent Work by Brian Cornell For Collaborative Systems Fall 2006.
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
Presented by IBM developer Works ibm.com/developerworks/ 2006 January – April © 2006 IBM Corporation. Making the most of Creating Eclipse plug-ins.
Microsoft ASP.NET AJAX - AJAX as it has to be Presented by : Rana Vijayasimha Nalla CSCE Grad Student.
Developing the NSDL User Portal Dean Krafft, Cornell University
Software Documentation Written By: Ian Sommerville Presentation By: Stephen Lopez-Couto.
Professional Informatics & Quality Assurance Software Lifecycle Manager „Tools that are more a help than a hindrance”
CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u.
M. Taimoor Khan * Java Server Pages (JSP) is a server-side programming technology that enables the creation of dynamic,
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
SCRAM Software Configuration, Release And Management Background SCRAM has been developed to enable large, geographically dispersed and autonomous groups.
UML Tools ● UML is a language, not a tool ● UML tools make use of UML possible ● Choice of tools, for individual or group use, has a large affect on acceptance.
Technical Overview.
Aurora: A Conceptual Model for Web-content Adaptation to Support the Universal Accessibility of Web-based Services Anita W. Huang, Neel Sundaresan Presented.
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 1: Best Practices of Software Engineering.
Thirteenth Lecture Hour 8:30 – 9:20 am, Sunday, September 16 Software Management Disciplines Process Automation (from Part III, Chapter 12 of Royce’ book)
1 A Web Specific Language for Content Management Systems Viðar Svansson, Roberto E. Lopez-Herrejon Computing Laboratory University of Oxford.
Wikis are websites where pages can be edited using an online document editor. Users can easily edit and share content. Enterprise wikis are platforms.
© 2007 by «Author»; made available under the EPL v1.0 | Date | Other Information, if necessary Eclipse SOA Tools Platform Project Eric Newcomer IONA Technologies.
Mobile Topic Maps for e-Learning John McDonald & Darina Dicheva Intelligent Information Systems Group Computer Science Department Winston-Salem State University,
Drag and Drop Display and Builder. Timofei B. Bolshakov, Andrey D. Petrov FermiLab.
Indo-US Workshop, June23-25, 2003 Building Digital Libraries for Communities using Kepler Framework M. Zubair Old Dominion University.
INFSOM-RI Juelich, 10 June 2008 ETICS - Maven From competition, to collaboration.
Role-Based Guide to the RUP Architect. 2 Mission of an Architect A software architect leads and coordinates technical activities and artifacts throughout.
Introduction To System Analysis and Design
1 SEG4912 University of Ottawa by Jason Kealey Software Engineering Capstone Project Tools and Technologies.
Hyper/J and Concern Manipulation Environment. The need for AOSD tools and development environment AOSD requires a variety of tools Life cycle – support.
DITA Single Source technology. What is Single Source? Single source technology is a concept of publishing documents when same content can be used in different.
WebSphere Portal Technical Conference U.S Creating Rich Internet (AJAX) Applications with WebSphere Portlet Factory.
14 June 2004System-wide Services: User InterfaceRich Moeser 1 EVLA Overall Software Design Final Internal Review System-wide Services: User Interface.
NA-MIC National Alliance for Medical Image Computing UCSD: Engineering Core 2 Portal and Grid Infrastructure.
© 2006 DTP PMC; made available under the EPL v1.0 | July 12, 2006 | DTP Enablement Project Creation Review Creation Review: Eclipse Data Tools Platform.
Elucidative Programming Kurt Nørmark Aalborg University Denmark SIGDOC September 2000.
ModelPedia Model Driven Engineering Graphical User Interfaces for Web 2.0 Sites Centro de Informática – CIn/UFPe ORCAS Group Eclipse GMF Fábio M. Pereira.
Technical Overview The Fastest Way to Create Architecture!
© 2006 Altova GmbH. All Rights Reserved. Altova ® Product Line Overview.
12 Chapter 12: Advanced Topics in Object-Oriented Design Systems Analysis and Design in a Changing World, 3 rd Edition.
Digital Libraries1 David Rashty. Digital Libraries2 “A library is an arsenal of liberty” Anonymous.
IBM Software Group ® Managing Reusable Assets Using Rational Suite Shimon Nir.
CS562 Advanced Java and Internet Application Introduction to the Computer Warehouse Web Application. Java Server Pages (JSP) Technology. By Team Alpha.
® IBM Software Group © 2007 IBM Corporation Module 1: Getting Started with Rational Software Architect Essentials of Modeling with IBM Rational Software.
Technical Overview. What Is MagicDraw?  Business Analysts  Software Analysts  Programmers  QA Engineers  Documentation Writers MagicDraw is a powerful.
Executive Overview. Software modeling is essential, because it is the map that guides your developers. Additionally: Modeling Software  Visual information.
 A content management system ( CMS ) is a system providing a collection of procedures used to manage work flow in a collaborative environment. These.
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
Ontologies Reasoning Components Agents Simulations An Overview of Model-Driven Engineering and Architecture Jacques Robin.
Eclipse.NET An Integration Platform for ProjectIT-Studio João Saraiva IST & INESC-ID (GSI)
introductionwhyexamples What is a Web site? A web site is: a presentation tool; a way to communicate; a learning tool; a teaching tool; a marketing important.
From Use Cases to Implementation 1. Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy.
CTMS Coordination Team CTMS Coordination Team: Model and Documentation Management John Koisch Paul Boyes
Your Interactive Guide to the Digital World Discovering Computers 2012 Chapter 13 Computer Programs and Programming Languages.
By: Jamie Morgan  A wiki is a web page or collection of web pages which you and your students can access to contribute or modify content without having.
SE goes software engineering; (practically) managing the Compose
Streamlined publishing through the cloud with HTML5
Software Documentation
SE goes software engineering; managing the Compose* project.
Execute your Processes
SE goes software engineering; (practically) managing the Compose
Presentation transcript:

XSDoc, JISBD’ XSDoc an Extensible Wiki-based Infrastructure for Framework Documentation Ademar Aguiar, Gabriel David, Manuel Padilha FEUP, INESC Porto

XSDoc, JISBD’ Overview n Research Issue: framework documentation Object-oriented frameworks are a powerful reuse technique, but they are often difficult to learn and understand by first-time users. Good documentation helps developers reuse frameworks, but it is hard, costly and tiresome to produce without appropriate tools. n Contribution: the XSDoc tool XSDoc is an extensible wiki-based tool specifically designed to support framework documentation activities. XSDoc provides a simple web-based documentation environment that helps create and integrate typical framework documentation contents (text, models, code).

XSDoc, JISBD’ Problems with Framework Documentation

XSDoc, JISBD’ Frameworks are powerful n Frameworks are a powerful reuse technique that enables reuse of code and reuse of design. n When combined with components and patterns, frameworks are considered the most promising current technology supporting large-scale reuse. Application 1Application 2 Application 3 Application Code 2 Application Code 3 Framework code Application Code 1 abstraction Callbacks Hooks Plugins... Framework code

XSDoc, JISBD’ Frameworks are hard to learn n We don’t reuse what we don’t know, what we don’t understand, or what seems to be difficult to reuse. n To reuse a framework, we first have to invest time on looking for it, understanding it, and learning how to use it. n But frameworks are often difficult to learn and understand: high complexity many levels of abstraction obscure interdependencies behavior is only partially implemented

XSDoc, JISBD’ Frameworks require documentation n Without good documentation, frameworks are hard to master by first-time users, requiring lengthy learning curves that may compromise their major reuse advantages. n Documentation helps developers achieve the degree of understanding they need to reuse, ie, to select, to specialize, and to integrate artifacts. n Documentation is crucial for effective framework reuse. AbstractionSelectionSpecializationIntegration Development Reuse

XSDoc, JISBD’ Frameworks are difficult to document n Frameworks are at least an order of magnitude more difficult to document than applications or libraries: many different styles of documents; different notations to represent contents; contents are created by different kinds of authors; different audiences must be addressed; contents change very rapidly, specially during development, what requires continuous review of the documentation; a lot of information must be created, consolidated and maintained in consistency; n The support of tools and methods able to cope with such complexity is mandatory!

XSDoc, JISBD’ XSDoc infrastructure

XSDoc, JISBD’ XSDoc Overview n XSDoc means eXtensible Software Documentation. n XSDoc is a documentation infrastructure based on XML and WikiWikiWeb. n XSDoc has been initially motivated to support an approach to framework documentation inspired on the minimalist instruction theory. n XSDoc is extensible and easy to integrate in most development environments: from simple shell-based environments to sophisticated open integrated development environments (Eclipse, Together,...)

XSDoc, JISBD’ XSDoc goals n Towards documentation-enabled environments To provide typical development environments (integrated or not) with tools capable to support documentation activities along the framework lifecycle. n To close the gap “development - documentation” To make documentation convenient and attractive for framework developers, by assisting developers to document while they code and design. n To be simple and economical to use and customize Development environment XSDoc + = Documentation-enabled Development environment

XSDoc, JISBD’ Documentation approaches n Literate programming (LP) suggests writing code and documentation in a single source file, psychologically organized for comprehension by humans rather than computers. n Alternatives to LP single source approaches merge documentation contents into code files (e.g. Javadoc, Doxygen) multiple source approaches combine contents of source files and documentation files (e.g. copy-paste of source code to HTML files). tangle weave code files doc files LP files javadoc doc files Java files integrator code files doc files mixed files code files doc files mixed files XSDoc XSDocWiki XML contents Converters from XML Converters to XML

XSDoc, JISBD’ Creation ManagementPublishingPresentation XSDoc infrastructure XSDoc Architecture XSDoc Configuration XSDocWiki Wiki contents Java, C++, and UML editors Converters to XML Contents integration XML contents repository Contents extraction Web browser external contents Wiki, HTML, and PDF files Converters from XML XSDoc plugin for IDEs

XSDoc, JISBD’ XSDocWiki n The main component of the XSDoc infrastructure is a Wiki. n The Wiki concept Originally created by Ward Cunningham para o site A wiki is a web platform that enables the collaborative edition of documents. A document is composed by topics. Each topic corresponds to a web page. Pages can be edited directly with the web browser, by everyone. Links between pages can be defined using a simple, yet powerful, automatic linking mechanism based on WikiNames (a concatenation of two capitalized words). Example: the text XSDocTool can be used to link to a page with the same name.

XSDoc, JISBD’ XSDocWiki features n XSDocWiki extends the typical Wiki engine with features useful for documenting object-oriented frameworks. Dynamic linking and inlining of source code (Java, C++), with rich hyperlinking of identifiers, API’s, and source code comments. Dynamic linking and inlining of UML diagrams. Instantiation and validation of XML documents. Access to version control systems (CVS repositories). Document templates (patterns, use cases, cookbooks, etc.) The present implementation was based on the VeryQuickWiki 2.5.1, a wiki engine implemented with Java/JSP/Servlets.

XSDoc, JISBD’ XSDocWiki examples n Inline of a Java source code fragment junit.framework.TestCase#fname n Linking to a Java source code element javaSource:junit.framework.TestCase#fname n Inline of a UML diagram junit.framework.package n Linking to a a UML diagram uml:junit.framework.package

XSDoc, JISBD’ Inline of Java source Inline of UML

XSDoc, JISBD’ XSDocWiki Benefits n Extremely simple to use. n Only requires a web-browser. n Improves team communication. n Promotes the cooperation between team elements for the incremental edition of documents. n High-availability of contents (always online!) n Easy to integrate in open IDEs.

XSDoc, JISBD’ XML Converters n Source code contents (Java, C++) Uses a newer version of JavaML, specially evolved in this work to cope with the requirements of XSDoc, to convert Java source code contents to XML files. Uses Doxygen to convert C++ source code contents to XML files.

XSDoc, JISBD’ XML Converters n UML contents Planned to fully integrate with Borland’s Together for Eclipse using SVG and XMI. Meanwhile it integrates with the Omondo’s Eclipse UML plugin using graphics files. n HTML and PDF outputs Converters are used directly from wiki files.

XSDoc, JISBD’ XSDoc Integration Mechanisms n Wiki-centric functional integration of tools. n Open IDE integration The integration with open IDEs is achieved using specific IDE plugins that enable the use of a web browser and the interoperation of the IDE and the XSDocWiki. n Side-by-side edition of all main kinds of contents With modern Open IDEs (Borland’s Together, IBM’s Eclipse,...) all kinds of contents (source code, UML, and documents) can be done side-by-side in a single development environment. Avoids the need to constantly switching applications during development.

XSDoc, JISBD’ XSDoc plugin for Eclipse Set of project resources UML models Source code Integrated Documentation

XSDoc, JISBD’ Using XSDoc: setup... n The usage of XSDoc is very simple and can be learned fast. n Installation XSDocWiki is distributed as a web application archive (xsdoc.war) ready to be automatically deployed and installed by Tomcat application server. n Configuration Creation and customization of wiki webs for each project to use with XSDoc. This includes adaptation of templates, definition of paths to project artifacts (source code, diagrams, etc), and user accounting.

XSDoc, JISBD’ Using XSDoc: contents creation... n Contents creation Source code contents and UML diagrams must be created externally to the XSDocWiki, using typical editors or development environments. Documentation contents can be edited with the XSDocWiki. The creation of new pages are triggered by following links to non- existent topics. Topics can be associated with template documents, using pre- defined naming conventions. Example: a topic named CommandPattern can be associated with a template document for documenting patterns.

XSDoc, JISBD’ Using XSDoc: integration, publication n Contents integration Dynamic inlining of source code, UML diagrams, and XML files. Dynamic linking to source code, UML diagrams, and XML files. Automatic linking of wiki pages based on WikiNames. n Contents publication Contents can be exported to static HTML or PDF files, using predefined XSLT’s transformers.

XSDoc, JISBD’ Conclusions n XSDoc helps reduce the effort to document frameworks, and object- oriented in general. n Uses very simple concepts. n Provides an easy and versatile collaborative document edition. n Is easy to integrate in development environments, including open IDEs. n Is easy to use by technical and non-technical people. n Promotes the team participation in the documentation process. n Provides easy access to documentation. n Enables a smooth integration of contents.

XSDoc, JISBD’ Future work n Improvement of the browsing and user-adaptive features. n Support other kinds of source code files (C#, text files). n Improve the integration with Eclipse IDE features. n Improve the features related with UML diagrams. n Integration in other open IDE’s (Together).

XSDoc, JISBD’ XSDoc links n XSDoc main site n XSDoc sources and downloads A first public release on sourceforge is planned for the end of 2003.

XSDoc, JISBD’ Thanks! Questions?