Sebastian Danicic

Contact Details

Sebastian Danicic
Tungsten Centre for Intelligent Data Analytics,
St James' Hall,
Goldsmiths,
University of London,
London,
SE14 6NW
United Kingdom

Phone: +44 (0)7980 573 520
Skype: sebdanicic
email seb at gold.ac.uk
gpg public key

Student Appointments

Please email me if you would like to see me in my office! Normally, I will respond within 24 hours. My Google Calendar

Publications

If you want to cite my work (!) here is a useful bib file: danicic.bib. Here is a list of all my publications in pdf format. publicationstoPrint.pdf.

Richard Barraclough, Mark Bishop, Sebastian Danicic, Richard Mitchell, and Slavomir Nasuto.
Spendinsight: some remarks on deploying an intelligent spend-analysis system.
In Proceedings of the 1st Symposium on Nature Inspired Computing and Applications (NICA) AISB/IACAP World Congress, July 2012.
Birmingham, UK.

James Hamilton and Sebastian Danicic.
Dependence communities in source code
In $23^{th.}$ IEEE International Conference on Software Maintenance, Riva del Garda, Italy, September 2012.

Sebastian Danicic, Robert Hierons, and Michael Laurence.
Characterizing minimal semantics-preserving slices of predicate-linear, free, liberal program schemas.
Journal of Logic and Algebraic Programming, May 2011.

Sebastian Danicic, Robert Hierons, and Michael Laurence.
Complexity of data dependence problems for program schemas with concurrency.
ACM Transactions on Computation and Logic, 2011.

Sebastian Danicic, Richard Barraclough, Mark Harman, John Howroyd, Akos Kiss, and Mike Laurence.
A unifying theory of control dependence and its application to arbitrary program structures.
Theoretical Computer Science, October 2011.

James Hamilton and Sebastian Danicic.
An Evaluation of the Resilience of Static Java Bytecode Watermarks Against Distortive Attacks.
IAENG International Journal of Computer Science, 38(1):1-15, 2011.

James Hamilton and Sebastian Danicic.
A Survey of Static Software Watermarking.
In Proceedings of the World Congress on Internet Security 2011, London, 2011. IEEE.

Sebastian Danicic, Robert Hierons, and Michael Laurence.
On the computational complexity of dynamic slicing problems for program schemas.
Mathematical Structures in Computer Science.
(October 2011).

Richard Barraclough, David Binkley, Sebastian Danicic, Mark Harman, Robert Hierons, Ákos Kiss, and Michael Laurence.
A trajectory-based strict semantics for program slicing.
Theoretical Computer Science, 411:1372-1386, March 2010.

Sebastian Danicic, Robert Hierons, and Michael Laurence.
Decidability of strong equivalence for slices of linear, free, near-liberal program schemas.
Journal of Logic and Algebraic Programming.
(Available online from 11 Aug 2010).

James Hamilton and Sebastian Danicic.
An Evaluation of Static Java Bytecode Watermarking.
In Proceedings of the International Conference on Computer Science and Applications (ICCSA’10), The World Congress on Engineering and Computer Science (WCECS’10), volume 1, pages 1 - 8, San Francisco, USA, October 2010.

James Hamilton and Sebastian Danicic.
An evaluation of current java bytecode decompilers.
In IEEE International Working Conferenece on Source Code Analysis and Maniputlation, Edmonton, Canada, 2009.

Sebastian Danicic, Robert Hierons, , and Mike Laurence.
Weisers's algorithm computes minimal path-faithful slices of function-linear, free program schemas .
In $4^{th.}$ International Workshop on Programming Language Interference and Dependence, Velncia, Spain, 2008.

Sebastian Danicic, Robert Hierons, , and Mike Laurence.
On the computational complexity of dynamic slicing problems for program schemas.
In $3^{rd.}$ International Workshop on Programming Language Interference and Dependence, Lyngby, Denmark, 2007.

Sebastian Danicic, Mark Harman, Robert Mark Hierons, John Howroyd, and Mike Laurence.
Equivalence of linear, free, liberal, structured program schemas is decidable in polynomial time .
Theoretical Computer Science, 373:1-18, March 2007.

Sebastian Danicic, Mark Harman, John Howroyd, and Lahcen Ouarbya.
A non-standard semantics for program slicing and dependence analysis .
Logic and Algebraic Programming, Special Issue on Theory and Foundations of Programming Language Interference and Dependence, 72:123-240, July-August 2007.

David Clark, Sebastian Danicic, and Roberto Giacobazzi.
Special issue on theory and foundations of programming language interference and dependence.
Logic and Algebraic Programming, 72:123-240, July-August 2007.

David Binkley, Sebastian Danicic, Tibor Gyimóthy, Mark Harman, Ákos Kiss, and Bogdan Korel.
A formalisation of the relationship between forms of program slicing.
Science of Computer Programming, 62(3):228-252, 2006.

David Binkley, Sebastian Danicic, Tibor Gyimóthy, Mark Harman, Ákos Kiss, and Bogdan Korel.
Theoretical foundations of dynamic program slicing.
Theoretical Computer Science, 360(1):23-41, 2006.

David Wendell Binkley, Sebastian Danicic, Mark Harman, John Howroyd, and Lahcen Ouarbya.
A formal relationship between program slicing and partial evaluation.
Formal Aspects of Computing, 18(2):103-119, 2006.

Sebastian Danicic, Chris Fox, Mark Harman, Robert Mark Hierons, John Howroyd, and Mike Laurence.
Slicing algorithms are minimal for programs which can be expressed as linear, free, liberal schemas.
The computer Journal, 48(6):737-748, 2005.

Sebastian Danicic, Mohammed Daoudi, Chris Fox, Mark Harman, Robert Mark Hierons, John Howroyd, Lahcen Ouarbya, and Martin Ward.
Consus: A lightweight program conditioner.
Journal of Systems and Software, 77(3):241-262, 2005.

Mark Harman, Lin Hu, Malcolm Munro, Xingyuan Zhang, David Wendell Binkley, Sebastian Danicic, Mohammed Daoudi, and Lahcen Ouarbya.
Syntax-directed amorphous slicing.
Journal of Automated Software Engineering, 11(1):27-61, January 2004.

Chris Fox, Sebastian Danicic, Mark Harman, and Robert Mark Hierons.
ConSIT: a fully automated conditioned program slicer.
Software--Practice and Experience, 34:15-46, 2004.
Published online 26th November 2003.

Keith Brian Gallagher, Mark Harman, and Sebastian Danicic.
Guaranteed inconsistency avoidance during software evolution.
Journal of Software Maintenance and Evolution, 15(6):393-416, Nov/Dec 2003.

Mark Harman, David Wendell Binkley, and Sebastian Danicic.
Amorphous program slicing.
Journal of Systems and Software, 68(1):45-64, October 2003.

Michael R. Laurence, Sebastian Danicic, Mark Harman, Rob Hierons, and John Howroyd.
Equivalence of conservative, free, linear program schemas is decidable.
Theoretical Computer Science, 290:831-862, January 2003.

Robert Mark Hierons, Mark Harman, and Sebastian Danicic.
Using program slicing to assist in the detection of equivalent mutants.
Software Testing, Verification and Reliability, 9(4):233-262, 1999.

Mark Harman and Sebastian Danicic.
A new algorithm for slicing unstructured programs.
Journal of Software Maintenance and Evolution, 10(6):415-441, 1998.

Mark Harman, Dan Simpson, and Sebastian Danicic.
Slicing programs in the presence of errors.
Formal Aspects of Computing, 8(4):490-497, 1996.

Sebastian Danicic, Mark Harman, and Yogasundary Sivagurunathan.
A parallel algorithm for static program slicing.
Information Processing Letters, 56(6):307-313, December 1995.

David Binkley, Sebastian Danicic, Tibor Gyimóthy, Mark Harman, Ákos Kiss, and Bogdan Korel.
Minimal slicing and the relationships between forms of slicing.
In $5^{th}$ IEEE International Workshop on Source Code Analysis and Manipulation (SCAM 05), pages 45-54, Los Alamitos, California, USA, 2005. IEEE Computer Society Press.
Best paper award winner.

Sebastian Danicic, Mark Harman, John Howroyd, and Lahcen Ouarbya.
A lazy semantics for program slicing.
In $1^{st.}$ International Workshop on Programming Language Interference and Dependence, Verona, Italy, August 2004.

Sebastian Danicic, Mark Harman, Robert Hierons, John Howroyd, and Mike Laurence.
Applications of linear program schematology in dependence analysis.
In $1^{st.}$ International Workshop on Programming Language Interference and Dependence, Verona, Italy, August 2004.

Dave Binkley, Sebastian Danicic, Tibor Gyimóthy, Mark Harman, Ákos Kiss, and Lahcen Ouarbya.
Formalizing executable dynamic and forward slicing.
In $4^{th}$ International Workshop on Source Code Analysis and Manipulation (SCAM 04), pages 43-52, Los Alamitos, California, USA, September 2004. IEEE Computer Society Press.

Sebastian Danicic, Andrea De Lucia, and Mark Harman.
Building executable union slices using conditioned slicing.
In $12^{th}$ International Workshop on Program Comprehension, pages 89-97, Los Alamitos, California, USA, June 2004. IEEE Computer Society Press.

Mohammed Daoudi, Sebastian Danicic, John Howroyd, Mark Harman, Chris Fox, Lahcen Ouarbya, and Martin Ward.
ConSUS: A scalable approach to conditioned slicing.
In IEEE Working Conference on Reverse Engineering (WCRE 2002), pages 109 - 118, Los Alamitos, California, USA, October 2002. IEEE Computer Society Press.
Invited for special issue of the Journal of Systems and Software as best paper from WCRE 2002.

Lahcen Ouarbya, Sebastian Danicic, Dave (Mohammed) Daoudi, Mark Harman, and Chris Fox.
A denotational interprocedural program slicer.
In IEEE Working Conference on Reverse Engineering (WCRE 2002), pages 181 - 189, Los Alamitos, California, USA, October 2002. IEEE Computer Society Press.

Mark Harman, Lin Hu, Robert Mark Hierons, Chris Fox, Sebastian Danicic, André Baresel, Harmen Sthamer, and Joachim Wegener.
Evolutionary testing supported by slicing and transformation.
In IEEE International Conference on Software Maintenance, page 285, Los Alamitos, California, USA, October 2002. IEEE Computer Society Press.

Mark Harman, Chris Fox, Robert Mark Hierons, Lin Hu, Sebastian Danicic, and Joachim Wegener.
Vada: A transformation-based system for variable dependence analysis.
In IEEE International Workshop on Source Code Analysis and Manipulation (SCAM 2002), pages 55-64, Los Alamitos, California, USA, October 2002. IEEE Computer Society Press.

Mark Harman, Lin Hu, Xingyuan Zhang, Malcolm Munro, Sebastian Danicic, Mohammed Daoudi, and Lahcen Ouarbya.
An interprocedural amorphous slicer for WSL.
In IEEE International Workshop on Source Code Analysis and Manipulation (SCAM 2002), pages 105-114, Los Alamitos, California, USA, October 2002. IEEE Computer Society Press.
Selected for consideration for the special issue of the Journal of Automated Software Engineering.

Mark Harman, Rob Mark Hierons, Sebastian Danicic, John Howroyd, and Chris Fox.
Pre/post conditioned slicing.
In IEEE International Conference on Software Maintenance (ICSM'01), pages 138-147, Los Alamitos, California, USA, November 2001. IEEE Computer Society Press.

Mark Harman, Rob Mark Hierons, Sebastian Danicic, John Howroyd, Mike Laurence, and Chris Fox.
Node coarsening calculi for program slicing.
In $8^{th}$ Working Conference on Reverse Engineering, pages 25-34, Los Alamitos, California, USA, October 2001. IEEE Computer Society Press.

Chris Fox, Mark Harman, Rob Mark Hierons, and Sebastian Danicic.
Backward conditioning: a new program specialisation technique and its application to program comprehension.
In $9^{th}$ IEEE International Workshop on Program Comprenhesion, pages 89-97, Los Alamitos, California, USA, May 2001. IEEE Computer Society Press.

Sebastian Danicic, Chris Fox, Mark Harman, and Rob Mark Hierons.
ConSIT: A conditioned program slicer.
In IEEE International Conference on Software Maintenance (ICSM'00), pages 216-226, Los Alamitos, California, USA, October 2000. IEEE Computer Society Press.

Mark Harman, Rob Mark Hierons, and Sebastian Danicic.
The relationship between program dependence and mutation analysis.
In W. Eric Wong, editor, Mutation Testing for the New Century (proceedings of Mutation 2000), pages 5-13, San Jose, California, USA, October 2001. Kluwer.

Sebastian Danicic and Mark Harman.
Espresso: A slicer generator.
In ACM Symposium on Applied Computing, (SAC'00), pages 831-839, Como, Italy, March 2000.

Mark Harman, Chris Fox, Rob Mark Hierons, David Wendell Binkley, and Sebastian Danicic.
Program simplification as a means of approximating undecidable propositions.
In $7^{th}$ IEEE International Workshop on Program Comprenhesion (IWPC'99), pages 208-217, Los Alamitos, California, USA, May 1999. IEEE Computer Society Press.

Mark Harman, Yoga Sivagurunathan, and Sebastian Danicic.
Analysis of dynamic memory access using amorphous slicing.
In IEEE International Conference on Software Maintenance (ICSM'98), pages 336-345, Los Alamitos, California, USA, November 1998. IEEE Computer Society Press.

Mark Harman, Margaret Okunlawon, Bala Sivagurunathan, and Sebastian Danicic.
Slice-based measurement of coupling.
In Rachel Harrison, editor, $19^{th}$ ICSE, Workshop on Process Modelling and Empirical Studies of Software Evolution, Boston, Massachusetts, USA, May 1997.

Yoga Sivagurunathan, Mark Harman, and Sebastian Danicic.
Slicing, I/O and the implicit state.
In Mariam Kamkar, editor, $3^{rd}$ International Workshop on Automated Debugging ( AADEBUG'97 ), volume 2 of Linköping Electronic Articles in Computer and Information Science, pages 59-65, Linköping, Sweden, May 1997.

Mark Harman and Sebastian Danicic.
Amorphous program slicing.
In $5^{th}$ IEEE International Workshop on Program Comprenhesion (IWPC'97), pages 70-79, Los Alamitos, California, USA, May 1997. IEEE Computer Society Press.

Sebastian Danicic and Mark Harman.
A simultaneous slicing theory and derived program slicer (keynote).
In $4^{th}$ RIMS Workshop in Computing, Kyoto University, Kyoto, Japan, July 1996.

Mark Harman and Sebastian Danicic (invited talk).
Towards the measurement of objects.
In Martin Shepperd, editor, $1^{st}$ Bournemouth Metrics Workshop, Bournemouth University, UK, April 1996.

Mark Harman, Sebastian Danicic, Yogasundary Sivagurunathan, and Dan Simpson.
The next $700$ slicing criteria.
In Malcolm Munro, editor, $2^{nd}$ UK workshop on program comprehension, Durham University, UK, July 1996.

Mark Harman, Sebastian Danicic, and Yogasundary Sivagurunathan.
Program comprehension assisted by slicing and transformation.
In Malcolm Munro, editor, $1^{st}$ UK workshop on program comprehension, Durham University, UK, July 1995.

Projects

My research encompasses a range of different areas including program slicing, dependence analysis and transformation, program schema theory, evolutionary mutation testing, and, more recently, intelligent web spidering, Java decompilation, and Intelligent Data Analytics software watermarking and Community Detection in Software.

Intelligent Data Analytics

We have just started a new commercial research project working with our partners, Tungsten to develop a fully functional state-of-the art spend analytics system. Research At the heart of spend analysis is the general problem of forming an accurate, detailed semantic understanding of items from the raw text information that is available to the system (e.g. product descriptions). This data must be analysed using the existing knowledge base; there may, however, sometimes not be enough current 'context' to unambiguously 'understand' this data; in such circumstances it may be necessary to enrich information via additional user interaction and/or web spidering. To help solve such semantic issues there is scope for application of new AI techniques; for example, deep learning and reservoir computing and the newly emerging area of quantum linguistics. Learning algorithms for classification based on clean data Access to our partner's massive database opens up new opportunities to research state-of-art machine learning techniques (e.g. deep learning reservoir computing; echo-state networks) which potentially could also offer a significant improvement in classification performance.

Dependence Communities in Source Code

The concept of community structure arises from the analysis of social networks in sociology. Community structure can be found in many real world graphs other than social networks.

Communities

Recently, efficient community detection algorithms have been developed which can cope with very large graphs with millions of nodes and potentially billions of edges. So, for the first time, there is the potential for investigating communities in real industrial-strength software at the statement level. We have provided empirical evidence that dependence between statements in software does, indeed, give rise to community structure. Initial findings suggest that the separate dependence communities are far from arbitrary. They appear to decompose systems into areas of distinct functionality. This new approach to system decomposition has tremendous potential in many areas of software engineering, particularly in reverse engineering of legacy software and program comprehension.

This picture, for example, shows the natural community structure in the GNU WC program. Communities

Linear Schemas for Program Dependence (EPSRC)

I was the principal investigator on Linear Schemas for Program Dependence (EPSRC: EP/E002919/1) (Collaboration with Kings College London, Brunel University, @UK PLC and AT & T, Bell Research Labs, USA.) Program schemas, (also called schemas, or schemata) define a class of programs, all of which have identical statement structure, but whose expressions may differ. Program Schemas have a well developed theory.

As a result of our work in program slicing, we found that program schema theory enabled us to precisely express the problems that we were tackling; namely the existence of statement minimal slicing algorithms at the `dataflow' level of abstraction. For such problems a class of schema which we called a `linear schema' was introduced. A linear schema is one in which no predicate or function symbol occurs more than once. Serendipitously, the proposers later discovered that the linearity condition helped in proving decidability of equivalence of schemas. Decidability of equivalence is the ability to automatically check whether two different schemas represent the same class of programs. We proved that equivalence of conservative, free, linear schemas is decidable and later strengthened this by proving that equivalence of liberal, free linear schemas is decidable in polynomial time. This work represented significant progress in the field of schema theory.

SpendInsight and GreenInsight (KTP)

Knowledge Transfer Partnerships (KTP) support the partnership between business and universities or research organisations. A Knowledge Transfer Partnership between the Department of Computing at Goldsmiths College, Reading University and @UK plc was established in September 2006 and completed in September 2009.

I was the research supervisor on a KTP Partnership (Collaboration with @UK PLC )

@UK plc is a listed company with 34 employees. The main business of the company is an e-Commerce system integrating business, government and Internet.

This 3 year KTP project was set up to use the particular expertise of Mark Bishop and Sebastian Danicic at Goldsmiths and academics at Reading to research and develop software which could improve and supplement @UK plc's e-Procurement system. One of the main research problems was to devise a means of bringing together product information that had been coded in one of the three different classification systems United Nations Standard Products and Services Code (UNSPSC), eClass (commonly used within the NHS), and NSV. Artificial Intelligence, other classification algorithms were investigated in order producing a means of `de-mystifying' product information.

The main output of this project was a spend-analysis system called SpendInsight. In simple terms, SpendInsight is a software system which enables organisations to efficiently re-order basic supplies based on analysis of what they already use. It employs new artificial intelligence algorithms developed during the KTP project, that automate the previously manual spend analysis process, enabling analysis to be performed with unprecedented speed and detail which have been used to highlight potentially huge savings in the organisations. It identifies seven key areas of savings opportunities.

Current Impact of Project: £500 million savings for NHS SpendInsight is already being deployed at a number of organisations, bringing essential revenue to @UK. In particular, the service has already been sold to Basingstoke and North Hants NHS Foundation Trust and the NHS Share Business Service (with 128 NHS Trusts).

However the most striking and significant impact of our research has resulted from its use by the National Audit Office. The National Audit Office is a government organisation which audits most public-sector bodies in the UK and produces value for money reports into the implementation of Government policies. It noted in a recent report that the procurement of medical and other supplies consumables by NHS hospitals is essential to the quality of patient care and successful treatment outcomes. (National Audit Office Link) Using SpendInsight the National Audit Office have estimated that if hospital trusts were to amalgamate small, ad-hoc orders into larger, less frequent ones, rationalise and standardise product choices and strike committed volume deals across multiple trusts, they could make overall savings of at least £500 million, around 10 per cent of the total NHS consumables expenditure of £4.6 billion.

In particular @UK PLC performed quantitative analysis of the purchasing data of 61 NHS trusts. The enabled procurement patterns and prices paid by trusts to be investigated, and potential savings to be calculated. Furthermore the National Audit Office has recommended that the NHS use buying solutions such as SpendInsight in order to secure better value in procurement. Few other university research projects can ever have contributed to such a large potential change to the economic health of the nation.

PhD Students (as main supervisor)

Previous

Completed 2013 James Hamilton (Goldsmiths) Dependence Communities in Source Code.
Completed 2006 Dave Daoudi (Goldsmiths) Light Weight Program Conditioning
Completed 2005 Lahcen Ouarbya (Goldsmiths) A Lazy Semantics for Program Slicing
Completed 2004 Michael Laurence(Goldsmiths) Equivalence of Liberal Free Linear Program Schemas is Decidable in Polynomial Time
Completed 1992 Mark Harman (UNL) Functional Models of Procedural Programs

Current

2011 Phil Tarr Community Algorithms

Undergraduate Teaching

Undergraduate Final Year Projects

Useful LateX Project Template

I supervise projects in any area that involves programming. I particularly enjoy projects involving games. Projects include:
  • Ant simulation
  • Breeding a good Othello player using genetic algorithms
  • Plagiarism Detection using structure and Google API
  • Mobile Phone Apps
  • Interactive javascript
  • Java Distriubted Programs e.g. Chat Systems
  • Graph Algorithms
  • Program Analysis and Trnasformation
  • Linux
  • Text processing Algorithms
  • Web Spidering
I am open to any interesting suggestions that involve programming.

Sebastian's Extra Curricular Activity

Thing Where Why How What Links
Cello Playing Mainly at home It's good for the mind, body and soul Reasonably well Chamber Music London String Players