1971 Eindgebruiker Slachtoffer 1975 Gebruiker / Tester Mini 12 kb 1978 Ontwerper Mainframe / Mini 1980 Adviseur / Ontwerper Organisatie / Mainframe D&M 1984 Adviseur Pakketten, BLUES 1986 Projectleider MTT - AMADEUS 1988 Productdirecteur Tools - BLUES, IFPA, RISA Reverse Engineering 1990 Systeemintegrator Projectmanagement 1995 Directeur Software Factory 2003 Directeur LaQuSo Kwaliteits & Testtools 2009 Adviseur research Architectuurmodellen
1978 Idee stand-alone, ondersteuning ontwikkelaar 1980 Data General D&M (Interpreter, eigen tekstverwerker, niet-grafisch) 1984 Macintosh BLUES (grafisch, 8 modules o.a. ISAC, DFD, NS, Data model) 1986 Explosieve groei in tools 1988 Windows BLUES & Reverse Engineering Jaren 90 Integratie tools in Ontwikkelomgevingen Shake-out einde BLUES
A Multi-Method Approach for Developing Universal Specifications JSD SSADM SASD IE ISAC HOS NIAM BSP MERISE SADT
Hoeveel is er veranderd in 25 jaar?
Gegevens uit 1986
Een logisch vervolg op AMADEUS Onderdeel van BLUES Programmeertaal Model wijzigen Model Model Programmertaal 3GL Start met COBOL
Refactoring: changing program structure and readability without changing functionality System scope (dead-code elimination, predicate duplication, predicate extraction, argument removal, functor renaming) Module scope (renaming, splitting, merge, dead-code) Predicate scope (renaming, move, adding argument, argument reordering) Clause scope (if-then-else introduction, if-then-else inversion, local predicate extraction) refactoring
MetricView Visualization SAAT Metrics Quality Assessment Complexity Maintainability Consistency Completeness Coupling Cohesion mcrl2 Deadlock identification code Code generation Reverse engineering MODEL e.g.uml Verification & validation PNML PetriNet tools e.g., Yasper Simulation Model-based Testing Woflan Soundness check Gast / TorX Test case generation & execution
Extended VS Cobol II Grammar Ralf Lämemel& Cris Verhoef, and Tailored Cobol.jj Bernard Pinon GNU GPL JTB (UCLA, BSD) Syntax tree package Grammar file jtb.out.jj Visitor package (interfaces) JavaCC (Open source, BSD) Parser package Preprocessor *.cob A&V Repository LOC metrics Artifacts DB *.cob Complexity metrics Call info Parser & Tree Counter Visitors *.prg Metrics & call files GUI & Control Artifacts: metrics& structural data Code Repository Extravis TU/e Converters CCFinder Toshihiro Kamiya Table Vision TU/e Matrix View TU/e
Instability (I) (2) Name, Class Count, Abstract Class Count, Ca, Ce, A, I, D, V: bsh,0,0,1,0,0,0,1,1 com.caucho.burlap.client,0,0,1,0,0,0,1,1 com.caucho.burlap.io,0,0,1,0,0,0,1,1 com.caucho.burlap.server,0,0,1,0,0,0,1,1 com.caucho.hessian.client,0,0,1,0,0,0,1,1 com.caucho.hessian.io,0,0,1,0,0,0,1,1 com.caucho.hessian.server,0,0,1,0,0,0,1,1 com.ibatis.common.util,0,0,1,0,0,0,1,1 oracle.toplink.essentials.sessions,0,0,1,0,0,0,1,1 oracle.toplink.exceptions,0,0,2,0,0,0,1,1 oracle.toplink.expressions,0,0,1,0,0,0,1,1 oracle.toplink.internal.databaseaccess,0,0,1,0,0,0,1,1 oracle.toplink.jndi,0,0,1,0,0,0,1,1 oracle.toplink.logging,0,0,1,0,0,0,1,1 oracle.toplink.publicinterface,0,0,2,0,0,0,1,1 oracle.toplink.queryframework,0,0,1,0,0,0,1,1 oracle.toplink.sessionbroker,0,0,1,0,0,0,1,1 oracle.toplink.sessions,0,0,2,0,0,0,1,1 oracle.toplink.threetier,0,0,1,0,0,0,1,1 oracle.toplink.tools.sessionconfiguration,0,0,1,0,0,0,1,1 oracle.toplink.tools.sessionmanagement,0,0,1,0,0,0,1,1 org.aopalliance.aop,0,0,9,0,0,0,1,1 org.aopalliance.intercept,0,0,24,0,0,0,1,1 org.apache.axis.encoding.ser,0,0,1,0,0,0,1,1 org.apache.catalina.loader,0,0,1,0,0,0,1,1 org.aspectj.weaver,0,0,2,0,0,0,1,1 org.aspectj.weaver.ast,0,0,1,0,0,0,1,1 org.aspectj.weaver.bcel,0,0,1,0,0,0,1,1 org.aspectj.weaver.internal.tools,0,0,1,0,0,0,1,1 org.aspectj.weaver.loadtime,0,0,1,0,0,0,1,1 org.quartz.xml,0,0,1,0,0,0,1,1 org.springframework.aop,24,20,17,6,0,83,0,26,0,09,1 org.springframework.aop.aspectj,39,7,3,24,0,18,0,89,0,07,1 org.springframework.aop.aspectj.annotation,27,3,0,19,0,11,1,0,11,1 org.springframework.aop.aspectj.autoproxy,3,0,1,8,0,0,89,0,11,1 org.springframework.aop.config,17,3,1,15,0,18,0,94,0,11,1 org.springframework.aop.framework,37,9,22,18,0,24,0,45,0,31,1 org.springframework.jdbc.core,53,20,6,20,0,38,0,77,0,15,1 org.springframework.jdbc.core.metadata,22,2,1,10,0,09,0,91,0,1 org.springframework.jdbc.core.namedparam,10,4,3,12,0,4,0,8,0,2,1 org.springframework.jdbc.core.simple,17,6,0,12,0,35,1,0,35,1 org.springframework.jdbc.core.support,8,5,2,14,0,62,0,88,0,5,1 org.springframework.jdbc.datasource,27,7,13,14,0,26,0,52,0,22,1 org.springframework.jdbc.datasource.lookup,8,2,2,13,0,25,0,87,0,12,1 org.springframework.jdbc.object,14,8,0,12,0,57,1,0,57,1 org.springframework.jdbc.support,15,5,12,16,0,33,0,57,0,1,1 org.springframework.jdbc.support.incrementer,15,4,0,8,0,27,1,0,27,1 org.springframework.jdbc.support.lob,18,5,5,12,0,28,0,71,0,02,1 org.springframework.jdbc.support.nativejdbc,10,2,2,7,0,2,0,78,0,02,1 org.springframework.jdbc.support.rowset,4,2,2,6,0,5,0,75,0,25,1 org.springframework.jdbc.support.xml,7,6,0,7,0,86,1,0,86,1 org.springframework.web.servlet.view.xslt,4,2,0,17,0,5,1,0,5,1 org.springframework.web.struts,16,5,0,22,0,31,1,0,31,1 org.springframework.web.util,24,6,26,15,0,25,0,37,0,38,1 org.w3c.dom,0,0,12,0,0,0,1,1 org.xml.sax,0,0,3,0,0,0,1,1 (1) (3) org.quartz.spi,0,0,1,0,0,0,1,1 org.quartz.utils,0,0,1,0,0,0,1,1 AV Repository (4) Abstractness and Instability 1 0.8 0.6 0.4 0.2 0 0 0.2 0.4 0.6 0.8 1 Abstractness (A)
Log file Application Process Model Convert to MXML Frequent Paths MXML Log file Filtering Filtered MXML Log file Social Network Client Law/Property 4 eyes Cycles Conformance Performance
Process Keuze Log Decision
Contact customer (Re)send bill Start Register order Receive payment Archive order End Prepare shipment Ship goods 2) process model 3) organizational model 4) social network 1) basic performance metrics 5) performance characteristics 7) Decision point analysis 6) auditing/security If then en.. Code!!!!!!!!
Statische Analyse vs Dynamische Analyse ExtraVis (TU/e)
Research VU Rosetta project TU/e Code Mining Gebruik RE & parsertechnologie voor (code) analyse Veelheid aan tools Parsers op het net (Koppelen met grammatica)
Dank voor uw aandacht