CSE 503: Software Engineering Winter 2010 Lecturer: Michael Ernst.

Slides:



Advertisements
Similar presentations
A THREE TIER ARCHITECTURE FOR ROLE-BASED ACCESS CONTROL Ravi Sandhu and Hal Feinstein Seta Corporation McLean, VA Ongoing NIST-funded project Other Project.
Advertisements

Chair of Software Engineering From Program slicing to Abstract Interpretation Dr. Manuel Oriol.
© Chinese University, CSE Dept. Software Engineering / Software Engineering Topic 1: Software Engineering: A Preview Your Name: ____________________.
CPSC 322, Lecture 23Slide 1 Logic: TD as search, Datalog (variables) Computer Science cpsc322, Lecture 23 (Textbook Chpt 5.2 & some basic concepts from.
Semi-Sparse Flow-Sensitive Pointer Analysis Ben Hardekopf Calvin Lin The University of Texas at Austin POPL ’09 Simplified by Eric Villasenor.
Software Testing and Quality Assurance
Binary Decision Diagrams1 BINARY DECISION DIAGRAMS.
1 HOIST: A System for Automatically Deriving Static Analyzers for Embedded Systems John Regehr Alastair Reid School of Computing, University of Utah.
CPSC 322, Lecture 23Slide 1 Logic: TD as search, Datalog (variables) Computer Science cpsc322, Lecture 23 (Textbook Chpt 5.2 & some basic concepts from.

Behavioral Design Outline –Design Specification –Behavioral Design –Behavioral Specification –Hardware Description Languages –Behavioral Simulation –Behavioral.
ISBN Chapter 1 Preliminaries. Copyright © 2004 Pearson Addison-Wesley. All rights reserved.1-2 Chapter 1 Topics Motivation Programming Domains.
SWE Introduction to Software Engineering
1 SWE Introduction to Software Engineering Lecture 5.
ISBN Lecture 01 Preliminaries. Copyright © 2004 Pearson Addison-Wesley. All rights reserved.1-2 Lecture 01 Topics Motivation Programming.
ISBN Chapter 1 Topics Motivation Programming Domains Language Evaluation Criteria Influences on Language Design Language Categories Language.
Introduction & Overview CS4533 from Cooper & Torczon.
Mining Metamodels From Instance Models: The MARS System Faizan Javed Department of Computer & Information Sciences, University of Alabama at Birmingham.
Logical Architecture and UML Package Diagrams
Michael Ernst, page 1 Static and dynamic analysis: synergy and duality Michael Ernst CSE 503, Winter 2010 Lecture 1.
Verification and Validation
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
Basic Concepts The Unified Modeling Language (UML) SYSC System Analysis and Design.
Chapter 1 Overview of Databases and Transaction Processing.
Foundations of Programming Languages – Course Overview Xinyu Feng Acknowledgments: some slides taken or adapted from lecture notes of Stanford CS242
CS527: (Advanced) Topics in Software Engineering Overview of Software Quality Assurance Tao Xie ©D. Marinov, T. Xie.
Annotating Search Results from Web Databases. Abstract An increasing number of databases have become web accessible through HTML form-based search interfaces.
Chapter 7: Architecture Design Omar Meqdadi SE 273 Lecture 7 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Verification and Validation Yonsei University 2 nd Semester, 2014 Sanghyun Park.
ITEC224 Database Programming
1 Process Engineering A Systems Approach to Process Improvement Jeffrey L. Dutton Jacobs Sverdrup Advanced Systems Group Engineering Performance Improvement.
9/14/2012ISC329 Isabelle Bichindaritz1 Database System Life Cycle.
Software Requirements Engineering CSE 305 Lecture-2.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Programming Models & Runtime Systems Breakout Report MICS PI Meeting, June 27, 2002.
Modeling and simulation of systems Model building Slovak University of Technology Faculty of Material Science and Technology in Trnava.
Architectural Design lecture 10. Topics covered Architectural design decisions System organisation Control styles Reference architectures.
Chapter 12: Software Inspection Omar Meqdadi SE 3860 Lecture 12 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
University of Toronto Department of Computer Science Lifting Transformations to Product Lines Rick Salay, Michalis Famelis, Julia Rubin, Alessio Di Sandro,
1. 2 Preface In the time since the 1986 edition of this book, the world of compiler design has changed significantly 3.
CS251 – Software Engineering Lecture 9: Software Design Slides by Mohammad El-Ramly, PhD
Identifying Research Problems Michael D. Ernst IMDEA Software Institute and University of Washington Workshop at UPM.
Evaluating Architectures. Quality Control Rarely fun, but always necessary 1.
 Programming - the process of creating computer programs.
Identifying Objects CSE301 University of Sunderland Harry R. Erwin, PhD.
CSCE 240 – Intro to Software Engineering Lecture 2.
Virtual Machines Noam Rinetzky Schreiber 123A Semester A. Tuesday, 14:00-16:00. Ornstein 110.
HYBRID APPROACH TO INTERFACE ADAPTATION.  Computing power anywhere and everywhere  Need interfaces that can adapt to different device conditions and.
Design and implementation Chapter 7 – Lecture 1. Design and implementation Software design and implementation is the stage in the software engineering.
Lecture #1: Introduction to Algorithms and Problem Solving Dr. Hmood Al-Dossari King Saud University Department of Computer Science 6 February 2012.
Chapter 1 Overview of Databases and Transaction Processing.
© Chinese University, CSE Dept. Software Engineering / Software Engineering Topic 1: Software Engineering: A Preview Your Name: ____________________.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Chapter 5:Architectural Design l Establishing the overall structure of a software.
Definition CASE tools are software systems that are intended to provide automated support for routine activities in the software process such as editing.
PROGRAMMING LANGUAGES
IS301 – Software Engineering Dept of Computer Information Systems
Research topics: Mira Balaban
Part 3 Design What does design mean in different fields?
Business Rule Based Configuration Management and Software System Implementation Using Decision Tables Olegas Vasilecas, Aidas Smaizys VGTU, Vilnius, Lithuania.
CS 3304 Comparative Languages Fall 2011
The Future of Software Engineering: Tools
The Extensible Tool-chain for Evaluation of Architectural Models
Foundations of Programming Languages – Course Overview
Foundations of Programming Languages – Course Overview
Abstract Interpretation
SET seminar (2IS95).
Register Allocation Hal Perkins Summer 2004
Abstract Interpretation
The Zoo of Software Security Techniques
Chapter 13 Logical Architecture.
Presentation transcript:

CSE 503: Software Engineering Winter 2010 Lecturer: Michael Ernst

503 Software Engineering Research Not: how to write good software – and get a good job at Amazon/Google/Microsoft Research methods and ideas in SE – (this may make you a more thoughtful developer) In alternating years: – broad overview – in-depth examination of one topic Examples: software evolution, program analysis

Type systems Checking Inference Non-standard type systems Example: view type system as a set of constraints to compute legal refactorings

Abstract interpretation A.k.a. dataflow analysis “Run” your program statically – Choose an abstract domain; e.g., { +, 0, - } – Assign semantics to operators – Start at beginning of program – Examine possible values of variables Used daily on aeronautics software

Model checking In simplest terms, exhaustive testing How to make this scale? – Choose abstractions that lose just the right amount of precision – Efficient encodings

Analysis back-ends Binary Decision Diagrams (BDDs) Reduction to SAT – 1979: “Problem X reduces to SAT, so it is hard.” – 2009: “Problem X reduces to SAT, so it is easy.” Datalog

Dynamic analysis Testing Type inference Model creation Counterexample-guided refinement Concolic execution

Applications Security Correctness Performance Rapid development System analysis Maintenance and evolution

Broader themes Precision vs. performance Power vs. transparency Static vs. dynamic Tuning analysis to the real problem

Format 50% of lectures: classic background 50% of lectures: current research Homework: – 1 in-class presentation – Group project to put the ideas into practice Makes you a better researcher, in any field

Who cares? Intellectually exciting and deep Spans both “hard” and “soft” areas of computing Connections to PL, security, systems, architecture, databases, … (many more!) Quals credit