Compilation 2007 What Will You Learn? Michael I. Schwartzbach BRICS, University of Aarhus.

Slides:



Advertisements
Similar presentations
Software Engineering Key construction decisions Design challenges.
Advertisements

Java Software Quality Assurance Tools Michael Slattery Indianapolis Java Users Group Meeting April 24, 2002.
Microsoft Research March 20, 2000 A Programming Language for Developing Interactive Web Services Claus Brabrand BRICS, University of Aarhus, Denmark.
Compilation 2011 Static Analysis Johnni Winther Michael I. Schwartzbach Aarhus University.
Business Driven Technology Unit 5 Transforming Organizations Copyright © 2015 McGraw-Hill Education. All rights reserved. No reproduction or distribution.
Damian Gordon.  Static Testing is the testing of a component or system at a specification or implementation level without execution of the software.
How to: Design and Develop an Application to Ensure its Quality James Hippolite Senior.NET Developer Telecom New Zealand Limited James Hippolite Senior.NET.
May 2011 Milestone Materials Atmosphere-ocean design document Updated target interoperability table Adoption status table NUOPC Layer software prototype.
SableCC SableCC is developed by professors and graduate students at McGill University and is open source (licensed under the Apache License, Version 2.0)‏
Miser-C MISRA-C Compliance Checker Ian Biller, Phillippe Dass, Bryan Eldridge, Jon Senchyna, Tracy Thomas.
Compilation 2007 What Have We Learned? Michael I. Schwartzbach BRICS, University of Aarhus.
Software Reliability Methods Sorin Lerner. Software reliability methods: issues What are the issues?
SOFTWARE SECURITY TESTING IS IMPORTANT, DIFFERENT AND DIFFICULT Review by Rayna Burgess 4/21/2011.
© Andy Wellings, 2003 Roadmap  Introduction  Concurrent Programming  Communication and Synchronization  Completing the Java Model  Overview of the.
CS350/550 Software Engineering Lecture 1. Class Work The main part of the class is a practical software engineering project, in teams of 3-5 people There.
EE694v-Verification-Lect5-1- Lecture 5 - Verification Tools Automation improves the efficiency and reliability of the verification process Some tools,
Stoimen Stoimenov QA Engineer QA Engineer SitefinityLeads,SitefinityTeam6 Telerik QA Academy Telerik QA Academy.
Software Development Life Cycles (SDLC) BY Touseef Tahir.
Miser-C MISRA-C Compliance Checker Ian Biller, Phillippe Dass, Bryan Eldridge, Jon Senchyna, Tracy Thomas Faculty Coach: Professor Michael Lutz Project.
 ETL: Extract Transformation and Load  Term is used to describe data migration or data conversion process  ETL may be part of the business process repeated.
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 1 Introduction to Software Engineering CEN 4010.
LAYING OUT THE FOUNDATIONS. OUTLINE Analyze the project from a technical point of view Analyze and choose the architecture for your application Decide.
Overview Coding Practices Balancing standards Configuration Management Providing Change Control Software Estimation Reasons why Programmers and Managers.
Team Skill 6: Building the Right System From Use Cases to Implementation (25)
Chapter Extension 18 Large-Scale Systems Development © 2008 Pearson Prentice Hall, Experiencing MIS, David Kroenke.
Algoval: Evaluation Server Past, Present and Future Simon Lucas Computer Science Dept Essex University 25 January, 2002.
1 CSC204 – Programming I Lecture 2 Intro to OOP with Java.
An Ad Hoc Writable Rule Language for White-Box Security Scanners Author:Sebastian Schinzel Referent:Prof. Dr. Alexander del Pino Korreferent:Prof. Dr.
Process Improvement. Improving the Test Process In the Software V&V course, Prof. Uwe asked the question: How to improve the Testing Process?
Slide 1 Teams l Most products are too large to be completed by a single software professional with the given time constraints l You will work within a.
Software Development. Software Developers Refresher A person or organization that designs software and writes the programs. Software development is the.
L8 - March 28, 2006copyright Thomas Pole , all rights reserved 1 Lecture 8: Software Asset Management and Text Ch. 5: Software Factories, (Review)
Software Testing and Maintenance 1 Code Review  Introduction  How to Conduct Code Review  Practical Tips  Tool Support  Summary.
Requirement Handling
1 Phase Implementation. Janice Regan, Overview of Implementation phase Create Class Skeletons Define Implementation Plan (+ determine subphases)
Chapter 1 Introduction. Chapter 1 - Introduction 2 The Goal of Chapter 1 Introduce different forms of language translators Give a high level overview.
CSE 331 Software Design & Implementation Hal Perkins Autumn 2012 Wrapup 1.
MIS 7003 MBA Core Course in MIS Professor Akhilesh Bajaj The University of Tulsa Introduction to S/W Engineering © All slides in this presentation Akhilesh.
Software Maintenance Speaker: Jerry Gao Ph.D. San Jose State University URL: Sept., 2001.
JACQUARD2005, KNVB HOTEL Zeist 3 en 4 februari 2005 Composing Configurable Java Components Tijs van der Storm, CWI, Project Deliver.
CSPC 464 Fall 2014 Son Nguyen.  Attendance/Roster  Introduction ◦ Instructor ◦ Students  Syllabus  Q & A.
ICFEM 2002, Shanghai Reasoning about Hardware and Software Memory Models Abhik Roychoudhury School of Computing National University of Singapore.
3246 JSF Support in JBuilder 2005 Karl Ewald R&D Engineer Borland Software Corporation.
Chapter 3 JSP Overview. The Problem with Servlets processing the request and generating the response are both handled by a single servlet class Java programming.
Zero Stress Presented By:. Find a Balance Understand the responsibilities you already have Don’t overload yourself with work Don’t neglect some of your.
Software Development Introduction
PROGRAM MANAGEMENT MODULE 2 Dr. Nicole Fitzhugh Professional School Counselor Berwyn Heights Elementary.
Aspect Security - RaviShekhar Gopalan - Prof. Lieberherr Software Security (CSG379)
INFSOM-RI Report of results of technical session 2: The ETICS build process and metrics collection.
Chapter 8: Iteration 1 - Basics.  We review here the requirements for first iteration of our case studies. They are a subset of the requirements as described.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Lesson 3 Skills for Healthy Living Goal Setting 3 Skills for Healthy Living Goal Setting L E S S O N.
Vulnerability Scanning Michael Overton, Jason Ferris, Erik Brown.
Kentico CMS Deliver Now! Methodology Karol Jarkovsky Consultant, Kentico Software s.r.o.
Teaching Compiler Design
Chapter 1 The Systems Development Environment
Types of information systems (IS) projects
Chapter 1 The Systems Development Environment
Introduction to Compiler Construction
CSE 331 Software Design & Implementation
Yii Framework – The Major Pros and Cons
Chapter 1 The Systems Development Environment
Chapter 1 The Systems Development Environment
Software Architecture in Practice
Theory, Tools, and Obstacles
SDLC The systems development life cycle is the foundation for many systems development methodologies such as RAD and agile Systems development life cycle.
Hands-on Introduction to JAVA
Automatic Derivation, Integration and Verification
Chapter 1 The Systems Development Environment
FRAMEWORKS AND REUSE What is “Framework”?
Presentation transcript:

Compilation 2007 What Will You Learn? Michael I. Schwartzbach BRICS, University of Aarhus

2 What Will You Learn? What You Will Have The Chance to Learn  Concrete skills: compiler technology insights into programming language design  Technical skills: all about Java building and testing software on a larger scale reading huge and complex specifications  Organizational skills: handling stress and deadlines finding relevant help and information surviving as a group

3 What Will You Learn? Compiler Technology  Compiler architecture  Typical compiler phases  Scanners and parsers  Scope resolvers  Type checkers  Static analyzers  Code templates  You can build your own compiler

4 What Will You Learn? Programming Language Design  The interplay between languages and compilers  Features that are difficult to implement  Limitations of current technology  Scope rules  Type rules  Consequences of undecidability  You can discuss language design intelligently  You can design another language

5 What Will You Learn? All About Java  The subtleties of the Java specification  Name resolution  Hierarchy checks  Type checking  Static analysis  JVM and verification  Code templates  You are a Java expert, not merely a user

6 What Will You Learn? Building and Testing Software  6,000-10,000 lines of code to hand in  Code sharing and versioning ( cvs )  Using Javadoc  Unit testing  Auto-generated code  Visitor patterns  Aspects  Debugging  You can handle a complex piece of software

7 What Will You Learn? Reading Complex Specifications  The Java Language Specification (25,000 lines)  The JVM Specification (24,000 lines)  The SableCC specification (too few lines)  The Joos Languages  6 complex and subtle hand-in specifications  You can read huge and complex specs

8 What Will You Learn? Handling Stress and Deadlines  You have met 7 hard deadlines  Deadlines are a way of life, not a sudden crisis  Balancing ambitions with resources  Realistic estimations of work load  Getting started in time  You are better at facing stress and deadlines

9 What Will You Learn? Finding Help and Information  Specifications may be missing or unclear  Don't panic!  Help is available from many sources  RTFM  Help each other  Use weekly consulting productively  Ask useful questions on the phorum  You are better at finding help and information

10 What Will You Learn? Surviving as a Group  Group work is a challenge  Negotiating ambitions  Exploiting different skills  Setting aside your ego  Respecting internal deadlines  Ensuring your own outcome  You have more experience in group work

11 What Will You Learn? Activity Curve 2006