Foundation for Open Project Documentation Anatoly Shalyto shalyto@mail.ifmo.ru Computer Technology Department Saint-Petersburg State University of Information.

Презентация:



Advertisements
Похожие презентации
The waterfall model is a popular version of the systems development life cycle model for software engineering. Often considered the classic approach to.
Advertisements

© 2005 Cisco Systems, Inc. All rights reserved.INTRO v Building a Simple Serial Network Understanding the OSI Model.
The waterfall model is a popular version of the systems development life cycle model for software engineering. Often considered the classic approach to.
© 2009 Avaya Inc. All rights reserved.1 Chapter Two, Voic Pro Components Module Two – Actions, Variables & Conditions.
© 2006 Cisco Systems, Inc. All rights reserved. HIPS v Administering Events and Generating Reports Managing Events.
© 2006 Cisco Systems, Inc. All rights reserved.ONT v Implement the DiffServ QoS Model Understanding WAN Link Efficiency Mechanisms.
© 2006 Cisco Systems, Inc. All rights reserved. HIPS v Configuring Groups and Policies Configuring Policies.
© 2006 Cisco Systems, Inc. All rights reserved.ISCW v Implementation of Frame Mode MPLS Introducing MPLS Networks.
XjCharts A C++ / Java Statecharts Tool for Developers Experimental Object Technologies
1 When And How To Make Interfaces Work For You Advanced OO Techniques Alex Herbstritt Principal Software Engineer, Progress Software Session 102.
© 2002 IBM Corporation Confidential | Date | Other Information, if necessary November 4, 2014 Copyright © 2006 Eclipse Foundation, Inc., Made available.
© 2006 Cisco Systems, Inc. All rights reserved. HIPS v Using CSA Analysis Generating Application Deployment Reports.
© 2007 Cisco Systems, Inc. All rights reserved.DESGN v Structuring and Modularizing the Network Designing the Network Hierarchy.
WEB SERVICES Mr. P. VASANTH SENA. W EB SERVICES The world before Situation Problems Solutions Motiv. for Web Services Probs. with Curr. sols. Web Services.
Intelligence framework for labour-market and educational services resources management Personalreserve Authors: Antonets A. Galushkin M. c.t.s. Kravets.
© 2001, Cisco Systems, Inc. CSIDS Chapter 10 IP Blocking Configuration.
© 2005 Cisco Systems, Inc. All rights reserved. BGP v Route Selection Using Policy Controls Using Multihomed BGP Networks.
Loader Design Options Linkage Editors Dynamic Linking Bootstrap Loaders.
© 2006 Cisco Systems, Inc. All rights reserved. CVOICE v Configuring Voice Networks Configuring Dial Peers.
© 2006 Cisco Systems, Inc. All rights reserved. BCMSN v Introducing Campus Networks Network Requirements.
Транксрипт:

Foundation for Open Project Documentation Anatoly Shalyto Computer Technology Department Saint-Petersburg State University of Information Technology, Mechanics and Optics, Russia

2Foundation for Open Project Documentations Project Documentation in the Real World (1)

3Foundation for Open Project Documentations Project Documentation in the Real World (2) Commercial Software Critical Objects Control Software Main by standards Extra by customer needs Other By customers requirements Non commercial software Educational Good quality Other By developers wishes

4Foundation for Open Project Documentations Hardware Documentation vs. Software Documentation Designers and manufacturers are different people Hardware Documentation Project Documentation Design Basis Verification Results User Guide Designers and manufacturers are same people Software Documentation User Manual Developers Guide Source Code (for open source projects)

5Foundation for Open Project Documentations Open Project Documentation Why Project Documentation? Software quality improvement Better verification Faster and safer modification Why Open Project Documentation? Open project documentation increases freedom Better project understandability Project design borrowing Educational purposes For students For specialists

6Foundation for Open Project Documentations Why Only Open Project Documentation? Open = Must be available for further using and development Foundation for Open project Documentation is Free, but it is in different area comparing with Free Software Foundation or Open Source Foundation Foundation results is applicable not only for free software, but also for commercial, secret and other kinds of software

7Foundation for Open Project Documentations Software Project Documentation In engineering practice projects must be well- documented So on there are not project, but much fewerwww.sourceforge.net The code must be based on the project documentation, not vice versa Project execution flow must be documented, not only final results

8Foundation for Open Project Documentations SWITCH-technology (Automata Programming) Proposed in 1991 Based on states decomposition Model-driven development Usage scope – systems with complex behavior Applicable for different type of computing devices Logic Controllers Programming Microcontrollers Microprocessors

9Foundation for Open Project Documentations SWITCH-technology guidelines Logic control State-based procedural programming State-based object-oriented programming Computational algorithms

10Foundation for Open Project Documentations SWITCH-technology Basics State Set of states Input variables + Events = Input Actions States + Input Actions = Automata With No Output Automata With No Output + Output Actions = Automata States are encoded with multiple values Observation of the automata states Correlated automata systems Logging Project documentation

11Foundation for Open Project Documentations Automata in Automata Programming Logic specification language Isomorphic mapping to source code Program works and builds logs in terms of automata

12Foundation for Open Project Documentations Educational Experiment (1) Computer Technology Department in University of Information Technology, Mechanics and Optics, Saint Petersburg, Russia Chosen students from the whole Russia International Olympiads in Informatics medalists ACM International Collegiate Programming contest medalists

13Foundation for Open Project Documentations Educational Experiment (2) Common Teaching 1 Lectures and Exams Common Teaching 2 Lectures, Course Works and Exams Experimental Teaching Lectures and Projects Project Documentation Verification More than 40 fully Developed and Documented Projects To be continued

14Foundation for Open Project Documentations Educational Experiment (3) Project Contents Project Documentation (at least 60 hours) Problem Definition User Interface Description Justifications Automata and Classes Descriptions Automata and Classes Diagrams Verification Protocols References Source Code (at least 20 hours) Anatoly Shalyto spent approximately 10–15 hours per project

15Foundation for Open Project Documentations Projects Examples Games Skeleton animation Controlling systems Graphical User Interfaces Parallel problems Transliteration Many others

16Foundation for Open Project Documentations Three Examples Diesel-generator modeling Procedural automata programming RoboCode Agent Object-oriented automata programming Visualization Framework Switch-technology based visualization of calculation algorithms Object-oriented realization of procedural algorithms

17Foundation for Open Project Documentations Diesel Generator Project Execution Flow Analysis Structuring (Automata Decomposition) Automata Interaction Diagrams Automata Verbal Descriptions Automata Interface Definition Automata Transitional Graph Definition Isomorphic Source Code Generation Verification logs

18Foundation for Open Project Documentations Diesel-generator Automata Interaction Diagram

19Foundation for Open Project Documentations Diesel-generator Automata Interface Diagram

20Foundation for Open Project Documentations Diesel-generator Automata Transition Graph

21Foundation for Open Project Documentations Diesel-generator Isomorphic Source Code void A0(int e, dg_t *dg) { int y_old = dg->y0; switch(dg->y0) { case 0: A8(e, dg); if (x220(dg)) dg->y0 = 4; else if (dg->y7 == 2) dg->y0 = 7; else if (dg->y8 == 2) dg->y0 = 1; break; case 1: A4(e, dg); A3(e, dg); A1(e, dg); if (dg->y4 != 0) dg->y0 = 6; else if (dg->y7 == 2 || dg->y7 == 4) dg->y0 = 8; else if (dg->y3 != 0) dg->y0 = 5; else if (dg->y1 == 0) dg->y0 = 0; else if (dg->y1 == 3) dg->y0 = 7; …

22Foundation for Open Project Documentations Diesel-generator Verification Logs 11:34:02.507{ DG1: A20: started at state 2 with event e10 11:34:02.507{ DG1: A7: started at state 0 with event e10 11:34:02.507{ DG1: A71: started at state 0 with event e10 11:34:02.507> DG1: x320 – lubricting oil temperature less than Tmm 11:34:02.507> DG1: x330 - lubricting oil temperature greater than Tmpr 11:34:02.507} DG1: A71: stopped at state 0 11:34:02.507{ DG1: A72: started at state 0 with event e10 11:34:02.507> DG1: x220 – rotation frequency greater than RCV 11:34:02.507} DG1: A72: stopped at state 0 11:34:02.507{ DG1: A73: started at state 0 with event e10 11:34:02.507> DG1: x220 – rotation frequency greater than RCV 11:34:02.507} DG1: A73: stopped at state 0 11:34:02.507{ DG1: A74: started at state 0 with event e10 11:34:02.507> DG1: x430 – water temperature less than Tvm 11:34:02.507> DG1: x440 - water temperature greater than Tvpr … 11:34:02.517} DG1: A20 stopped at state 0

23Foundation for Open Project Documentations RoboCode Agent Top Five 1. GlowBlowMelee Cigaret Cynical 4. GlowBlow 5. Cynical_3

24Foundation for Open Project Documentations RoboCode Agent Project Execution Flow Analysis Structuring (Class Decomposition) Classes Diagram All the stages from diesel-generator project execution flow

25Foundation for Open Project Documentations RoboCode Agent Classes Diagram

26Foundation for Open Project Documentations RoboCode Agent Class Structure Diagram

27Foundation for Open Project Documentations RoboCode Agent Automata Interface

28Foundation for Open Project Documentations RoboCode Agent Transition Graph

29Foundation for Open Project Documentations RoboCode Agent Debugging through Protocols

30Foundation for Open Project Documentations Visualization Framework Malhotra, Kumar, Maheshwari network flow algorithm

31Foundation for Open Project Documentations Visualization Framework Visualizer Structure Model Interactive Automata System Automatically Generated by Algorithms XML–Description View User Interface Based on Vizi Library Controller Vizi Library

32Foundation for Open Project Documentations Visualization Framework Project Documentation (1) Annotation Introduction Chapter 1. Literature Analysis Chapter 2. Algorithm Description Chapter 3. Algorithm Implementation Chapter 4. Data Model Definition Chapter 5. Implementation Transformation Chapter 6. User Interface Description

33Foundation for Open Project Documentations Visualization Framework Project Documentation (2) Chapter 7. Configuration Description Conclusions References Appendixes Algorithm Implementations Source Code Transformed Implementation Visualizer XML–description Generated Source Codes User Interfaces Source Codes

34Foundation for Open Project Documentations Visualized Algorithms Malhotra, Kumar, Maheshwari network flow algorithm Dinics network flow algorithm Hopcroft–Karp Bipartite Matching algorithm Chu–Liu shortest arborescence of a directed graph Algorithms on 2–3 threes Bitonic salesman problem Ukkonen suffix tree construction algorithm Prim minimum spanning tree algorithm Simple strings and de Bruin cycles construction algorithms

35Foundation for Open Project Documentations Links Project Examples – Projects Documentation (Russian) – Projects Annotations (English) – Articles (Russian) – Articles (English) – UniMod Project