Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Fall CSER 2017 talk

Neil Ernst
November 05, 2017

Fall CSER 2017 talk

New faculty talk at CSER, Nov 5 2017.

Neil Ernst

November 05, 2017
Tweet

More Decks by Neil Ernst

Other Decks in Technology

Transcript

  1. Why Did the System Do That? Explaining how software works

    in terms of your intentions and its design Neil Ernst Software Engineering—University of Victoria [email protected]
  2. Hinterland Who’s Who Cognitive support for ontology modelling Requirements Analysis

    Architecture Design And Analysis Industry consulting and teaching
  3. Why ‘explanation’? Moving towards “intelligent connected” software systems Intelligent: adaptive

    and continually evolving Connected: emergent structure built with “other people’s software” MOTIVATION
  4. ‘Explaining’ software Research challenges in intelligent connected systems: Understand what

    happens when software is ‘built’ and evolves Managing software ‘brownfields’ with hidden design problems Dealing with little or no documentation Analysing trade-offs of control for capability MOTIVATION
  5. Lack of explanation: We only see a fraction of the

    component source Build-time dependency resolution is complex Run-time adaptations are made with uninterpretable - unexplainable - outcomes MOTIVATION
  6. Why did the system do that? Why Intentions How Design

    What Mappings MOTIVATION Explaining software systems
  7. What’s Changed? On the one hand, nothing. • We still

    have goals for the systems we use • We still have designs to realize those systems • Still write code, compile code, deploy code. Those problems continue to exist.
  8. What has changed? Old assumptions are invalid: • Software is

    all under our control • Requirements are fixed • We can understand outputs given inputs • The software we release is the software that is running
  9. Explaining software systems Intentions should be modeled: → understand quality

    attributes with respect to business/mission goals → is “it” (ours+theirs) doing what we need → define policies and constraints MOTIVATION
  10. Explaining software systems Design should be understood: → matches our

    intentions → not violating security/assurance constraints → emergent architectural properties MOTIVATION
  11. A C B static dynamic D A B C D

    A 1 B 1 C 1 1 D A B C A 1 B 1 C 1 Understanding design-intention mappings ODDA
  12. Explaining designs from configuration A B C D A 1

    B 1 C 1 1 D C.java import com.google.guice.* . . . @inject public DbConn() { 
 } bind(Conn.class). to(SqlConn.class); X1 X1 - config. point ODDA X1
  13. A C B static dynamic Understanding design-intention mapping in intelligent

    connected systems Quantify how many dynamic dependencies are in connected systems. A B C A B C C1 Analyze results incorporating dynamic information and compare to compile-time baseline. Create mechanism to capture dynamic aspect and where it comes from. B B ODDA
  14. Findings Code level analysis vital Static design problems not identical

    to dynamic ones Nature of ‘dependency’ changes ODDA
  15. Mining system artifacts to automatically derive explanations Mid-term research challenge

    RESEARCH VISION Intentions Architecture Models Design Discussions Code Bug Reports History Stack Overflow “QUERY” “EXPLANATION”
  16. Long-term vision Automatically configure intelligent, connected systems from high-level intentions

    and constraints Explanation with decision dashboards: why the software did that (and what decision to make next) RESEARCH VISION
  17. Shameless Promotion • ICSA 2018 - Merger of CBsoft, Comparch,

    WICSA, QOSA • Seattle, Apr 30-May 4 • Papers due Jan 18/25 (c) Joven Petrola and AliWijaya, NounProject (as proposed in NSERC DG) So far … My group neilernst.net @neilernst