Building Documentation Generators Arie van Deursen Tobias Kuipers CWI, The Netherlands.

Slides:



Advertisements
Similar presentations
Requirements for a UI Test Framework Stanislaw Wozniak Bernie Miles.
Advertisements

Blaise NG First glimpse. Key issues in current system Language enhancements Layout Unicode.
CASE tools Upper CASE tools: support for the analysis and design Lower CASE tools: support for construction and maintenance 1980s… Nowadays… Integrated.
14-1 © Prentice Hall, 2004 Chapter 14: OOSAD Implementation and Operation (Adapted) Object-Oriented Systems Analysis and Design Joey F. George, Dinesh.
Traceability James D. Palmer Presented by: Megan Heffernan.
Documentation Generators: Internals of Doxygen John Tully.
Lecture 1 Introduction to the ABAP Workbench
Unified theory of software evolution Reengineering – Business process reengineering and software reengineering BPR model – Business definition, process.
Irwin/McGraw-Hill Copyright © 2000 The McGraw-Hill Companies. All Rights reserved Whitten Bentley DittmanSYSTEMS ANALYSIS AND DESIGN METHODS5th Edition.
4.1 Blended approaches: Information Engineering IMS Information Systems Development Practices.
Systems Development Life Cycles. The Traditional Systems Development Life Cycle.
Lesson-12 Information System Development-2
An Object-Oriented Architecture Supporting Web Application Testing Presented By: Bhavdeep Singh.
From Research to Startup: Experiences in Interoperability Arie van Deursen Leon Moonen 23 January 2001.
Supplement 02CASE Tools1 Supplement 02 - Case Tools And Franchise Colleges By MANSHA NAWAZ.
Automatic Data Ramon Lawrence University of Manitoba
Information Extraction from Documents for Automating Softwre Testing by Patricia Lutsky Presented by Ramiro Lopez.
Database Administration Chapter 16. Need for Databases  Data is used by different people, in different departments, for different reasons  Interpretation.
Lecture 2 Phases of Compiler. Preprocessors, Compilers, Assemblers, and Linkers Preprocessor Compiler Assembler Linker Skeletal Source Program Source.
February Semantion Privately owned, founded in 2000 First commercial implementation of OASIS ebXML Registry and Repository.
© Paradigm Publishing, Inc. 5-1 Chapter 5 Application Software Chapter 5 Application Software.
1 Software Construction Software Construction Chapter 1.
Karolina Muszyńska. Reverse engineering - looking at the solution to figure out how it works Reverse engineering - breaking something down in order to.
Multi-agent Research Tool (MART) A proposal for MSE project Madhukar Kumar.
Software Engineering Chapter 23 Software Testing Ku-Yaw Chang Assistant Professor Department of Computer Science and Information.
Chapter 1 Introduction Dr. Frank Lee. 1.1 Why Study Compiler? To write more efficient code in a high-level language To provide solid foundation in parsing.
14-1 © Prentice Hall, 2004 Chapter 14: OOSAD Implementation and Operation Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph.
Web Engineering Web engineering is the process used to create high quality WebApps. Web engineering is not a perfect clone of software engineering. But.
Selecting a CASE Tool - Page P1-L4-1 MEF-TRANSITION-P1-L4-1 © Dr. M.E. Fayad Lesson 4: Selecting an OO CASE Tool SoftwareEngineeringII.
14-1 © Prentice Hall, 2004 Chapter 14: OOSAD Implementation and Operation Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph.
1 The Software Development Process  Systems analysis  Systems design  Implementation  Testing  Documentation  Evaluation  Maintenance.
The Software Development Life Cycle. Software Development SDLC The Software Development Life-Cycle Sometimes called the program development lifecycle.
CST320 - Lec 11 Why study compilers? n n Ties lots of things you know together: –Theory (finite automata, grammars) –Data structures –Modularization –Utilization.
Lecture 3 Software Engineering Models (Cont.)
FlexElink Winter presentation 26 February 2002 Flexible linking (and formatting) management software Hector Sanchez Universitat Jaume I Ing. Informatica.
Developing software and hardware in parallel Vladimir Rubanov ISP RAS.
Information Systems Engineering. Lecture Outline Information Systems Architecture Information System Architecture components Information Engineering Phases.
CASE Tools Union Palenshus. In the early days… ► Software engineering tools consisted solely of translators, compilers, assemblers, linkers, loaders,
Compiler design Lecture 1: Compiler Overview Sulaimany University 2 Oct
ANKITHA CHOWDARY GARAPATI
Software Production Chapter 2: Identifying Software Development Activities.
CS251 – Software Engineering Lecture 9: Software Design Slides by Mohammad El-Ramly, PhD
Towards the Semantic Web 6 Generating Ontologies for the Semantic Web: OntoBuilder R.H.P. Engles and T.Ch.Lech 이 은 정
3.2 Semantics. 2 Semantics Attribute Grammars The Meanings of Programs: Semantics Sebesta Chapter 3.
The IBM Rational Publishing Engine. Agenda What is it? / What does it do? Creating Templates and using Existing DocExpress (DE) Resources in RPE Creating.
Database Administration
OWL Representing Information Using the Web Ontology Language.
Introduction to Compiling
Compiler Design Introduction 1. 2 Course Outline Introduction to Compiling Lexical Analysis Syntax Analysis –Context Free Grammars –Top-Down Parsing –Bottom-Up.
CASE (Computer-Aided Software Engineering) Tools Software that is used to support software process activities. Provides software process support by:- –
Cross Language Clone Analysis Team 2 February 3, 2011.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Formal Specification: a Roadmap Axel van Lamsweerde published on ICSE (International Conference on Software Engineering) Jing Ai 10/28/2003.
The World Wide Web. What is the worldwide web? The content of the worldwide web is held on individual pages which are gathered together to form websites.
Requirements Analysis
Invitation to Computer Science 6 th Edition Chapter 10 The Tower of Babel.
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
Dr. Mohamed Ramadan Saady 314ALL CH1.1 Chapter 1: Introduction to Compiling.
IFET COLLEGE OF ENGINEERING DEPARTMENT OF ECE Web Based Tool Management System Presented by Pravina.R Final year/ECE Guided by Mr.M.Arul Pugazhendhi.
CS416 Compiler Design1. 2 Course Information Instructor : Dr. Ilyas Cicekli –Office: EA504, –Phone: , – Course Web.
DOCUMENTATION REF: Essentials of IT (Hamilton et al) Chapter 1.
CASE (Computer-Aided Software Engineering) Tools
Software Architecture in Practice
COP 5621 Compiler Construction
Lexical and Syntax Analysis
Small Engine Tool ID Part 1.
Software Maintenance
Computer Programming.
System Reengineering Restructuring or rewriting part or all of a system without changing its functionality Applicable when some (but not all) subsystems.
Lec00-outline May 18, 2019 Compiler Design CS416 Compiler Design.
Presentation transcript:

Building Documentation Generators Arie van Deursen Tobias Kuipers CWI, The Netherlands

Documentation Maintenance outsourcing increases demand for documentation Software company asked us whether we could generate documentation Our reverse engineering results can be intuitively presented as (a particular form of) documentation

Documentation Challenges Should be available at different levels of abstraction User must be able to move between different abstractions Abstraction level should be meaningful to user Needs to be consistent with source code

Tool Architecture System Sources Automated Fact Extractor Repository Manual Fact Extraction Hand-written Documentation Formatter Documentation

Source Code Analysis Lexical Analysis (regular expressions) –CALL [A-Z]+ Syntactical Analysis –* CALL FOO –CALL FOO USING... –CALL \n FOO

Combine lexical and syntactical syntax “*” ~[\n]* “\n” -> LAYOUT [A-Z]+ -> Id ~[\.]+ “.” -> Statement “CALL” Id “.” -> Statement Statement+ -> Program priorities “CALL” Id “.” -> Statement > ~[\.]+ “.” -> Statement

Example Analysis MOVE 1 TO A. * This is some comment CALL * Strange place for comment FOO. PERFORM BAR.

Example Analysis MOVE 1 TO A. * This is some comment CALL * Strange place for comment FOO. PERFORM BAR.

Example Analysis MOVE 1 TO A. * This is some comment CALL * Strange place for comment FOO. PERFORM BAR.

Example Analysis MOVE 1 TO A. * This is some comment CALL * Strange place for comment FOO. PERFORM BAR.

Island Grammars Detailed production rules for relevant constructs Catch-all productions with lower priority Minimal set of productions for overall program structure Used for rapid/specific parser development

Repository and Presentation Standard tools –Relational database –Hypertext browser Different levels of abstraction –Preformulated queries presented as hypertext to maintenance programmer –Reengineer can formulate own queries on database Demo

Contributions Island Grammars for fact extraction –Integration of hand-written facts/documentation Explicit Repository/Data model Flexible formatting Integration of visual/textual presentation Applied in several commercial projects