The Future of Software Engineering: Tools

Slides:



Advertisements
Similar presentations
1 Interdisciplinary Research: Opportunities and Challenges Nancy Amato Department of Computer Science and Engineering Texas A&M University Lori Clarke.
Advertisements

Presenter: PCLee – This paper outlines the MBAC tool for the generation of assertion checkers in hardware. We begin with a high-level presentation.
Building Reliable Software Requirements and Methods.
Michael Ernst, page 1 Improving Test Suites via Operational Abstraction Michael Ernst MIT Lab for Computer Science Joint.
On the Correctness of Model Transformations Gabor Karsai ISIS/Vanderbilt University.
School of Computer ScienceG53FSP Formal Specification1 Dr. Rong Qu Introduction to Formal Specification
1 ES 314 Advanced Programming Lec 2 Sept 3 Goals: Complete the discussion of problem Review of C++ Object-oriented design Arrays and pointers.
CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u.
CS527: (Advanced) Topics in Software Engineering Overview of Software Quality Assurance Tao Xie ©D. Marinov, T. Xie.
Reverse Engineering State Machines by Interactive Grammar Inference Neil Walkinshaw, Kirill Bogdanov, Mike Holcombe, Sarah Salahuddin.
1 The Problem Do you have: A legacy ABL system with millions of Lines of ABL Code? Years and years of modifications to your ABL code? System documentation.
Outline Announcements: –Homework I on web, due Fri., 5PM by –Small error on homework –Wed and Fri in ACCEL, Attendance required –LAST DAY TO ADD/DROP!
Introduction Algorithms and Conventions The design and analysis of algorithms is the core subject matter of Computer Science. Given a problem, we want.
Hipikat: A Project Memory for Software Development The CISC 864 Analysis By Lionel Marks.
Managing Opportunities Lori A. Clarke Department of Computer Science University of Massachusetts, Amherst.
Version 02U-1 Computer Security: Art and Science1 Correctness by Construction: Developing a Commercial Secure System by Anthony Hall Roderick Chapman.
Introduction to Computer Programming using Fortran 77.
Laurea Triennale in Informatica – Corso di Ingegneria del Software I – A.A. 2006/2007 Andrea Polini XVII. Verification and Validation.
1 Requirements Management - II Lecture # Recap of Last Lecture We talked about requirements management and why is it necessary to manage requirements.
Jeremy Nimmer, page 1 Automatic Generation of Program Specifications Jeremy Nimmer MIT Lab for Computer Science Joint work with.
Technical Writing (Applies to research papers and theses)
Principles of Programming & Software Engineering
Certification of Reusable Software Artifacts
Installing and Learning Software
Advanced Computer Systems
Grid Services for Collaborative Science
The Development Process of Web Applications
CSCI-235 Micro-Computer Applications
Writing Requirements Lecture # 23.
Computer Aided Software Engineering (CASE)
Automatic Generation of Program Specifications
The Software Development Cycle
Chapter 8 – Software Testing
CSE 374 Programming Concepts & Tools
1. Welcome to Software Construction
Principles of Programming and Software Engineering
^ About the.
Software Design and Development
About the Presentations
Chapter 6: Design of Expert Systems
FEASIBILITY STUDY Feasibility study is a means to check whether the proposed system is correct or not. The results of this study arte used to make decision.
Design and Implementation
Predicting problems caused by component upgrades
Introduction CSE 1310 – Introduction to Computers and Programming
Science and Technology - Chapter 4 Lesson 2
Overview of the Course Copyright 2003, Keith D. Cooper, Ken Kennedy & Linda Torczon, all rights reserved. Students enrolled in Comp 412 at Rice University.
Object Oriented Analysis and Design
Automated Support for Program Refactoring Using Invariants
Software Engineering Experimentation
Patterns.
Static and dynamic analysis: synergy and duality
Software Testing and Maintenance Maintenance and Evolution Overview
Software Engineering INTRODUCTION
Issues in Enhancing Model Reuse
Language Processors Application Domain – ideas concerning the behavior of a software. Execution Domain – Ideas implemented in Computer System. Semantic.
Applied Software Project Management
Chapter 7 –Implementation Issues
Algorithms and Problem Solving
Department of Computer Science Abdul Wali Khan University Mardan
MIT AI Lab: B. Williams, H. Shrobe, R. Laddaga
Paper by D.L Parnas And D.P.Siewiorek Prepared by Xi Chen May 16,2003
Requirements Document
YOUR FUTURE AND INFORMATION TECHNOLOGY
ROLE OF «electronic virtual enhanced research-engaged student teams» WEB PORTAL IN SOLUTION OF PROBLEM OF COLLABORATION INTERNATIONAL TEAMS INSIDE ONE.
Dept. of Computation, UMIST
String Analysis for JavaScript Programs Using JSAI
Chapter 7 Software Testing.
Algorithms Presented By:- Mr. Anup Ashok Shinde BBA (C.A) Dept.
Software Requirements
Systems Architecture and Engineering
Presentation transcript:

The Future of Software Engineering: Tools Michael Ernst MIT Lab for Computer Science http://sdg.lcs.mit.edu/~mernst/ [Be excited! Have a twinkle in my eye! This is good research; it is exciting; share the fun I had and enthusiasm I feel.] [Smile when I make a joke -- don’t be too dry, don’t sound mean.] [Don’t go too fast through first part of talk.] [Make eye contact.] This is a technique for helping programmers to cope with inadequately documented programs. Invite questions and comments. Daikon: an Asian radish (not the Asian radish) Perhaps don’t say this, but this is but a summary: I can’t talk about every aspect of this research, but welcome questions either now or in individual meetings.

Tools matter The most productive people are the most effective tool users Tools are a change agent

Reproducibility Replication is key to the scientific method Papers may gloss over details Insist on published systems Permits additional evaluation Stop accepting papers without supporting data and implementations Central repository for such information Need support for infrastructure-building

Counterargument to publication Responsibility to have commercial impact Can have commercial impact without IP If it's a good idea, it will be adopted Secrecy is antithetical to science & education

Evaluation of implementation Tools should work for users other than implementers when run on production systems Correct the impression that software engineers do not build real systems

Evaluation of tools Humans complicate systems Theorems much easier to understand! Case studies, not experiments Devise rewards for reproducing experiments Special publication venues? Do not raise the bar for new ideas Industry can assist academia

Ignore the average programmer Practitioner/researcher gap What is the job of researchers? Researchers must assume best practices, in order to have long-term impact

Static and dynamic analysis How to obtain information: Programmer-supplied Static analysis: examine the program text properties are guaranteed to be true pointers are intractable in practice Dynamic analysis: run the program efficient, precise complementary to static techniques

Combining techniques Use static to help dynamic and vice versa Transfer from one domain to the other Example: Purify and LCLint Combine in a principled way Select the desired efficiency/soundness

Lightweight tools No need to produce exact results Useful results that people can check

The return of formal specifications Full formal specifications do not work Partial formal specifications: Specify only certain aspects of behavior Generated automatically Other examples from languages and compilers Example: functional programming

Summary Tools are key Publication must include tools Case studies Assume best practices Static and dynamic analysis Lightweight tools