GContracts Programming by Contract with Groovy. Andre Steingress
|
|
|
- Adam Johnson
- 10 years ago
- Views:
Transcription
1 FÕ Ò ŃÔ PŎ ÑŇÒ P ÌM Œ PÑǾ PÒ PÕ Ñ Œ PŘÕ Ñ GContracts Programming by Contract with Groovy Andre Steingress
2 Andre FÕ Ò ŃÔ PŎ ÑŇÒ P ÌM Œ PSteingress ÑǾ PÒ PÕ Ñ Œ PŘÕ Ñ Independent Groovy, Grails, JEE, Spring Portfolio, Android GroovyMag, JavaMagazin (German) 2
3 FÕÒŃÔPŎÑŇÒPÌ Motivation MŒPÑǾPÒPÕÑŒPŘÕÑ Programming is about assumptions, mental models and knowledge. 3
4 Motivation FÕ Ò ŃÔ PŎ ÑŇÒ P ÌM Œ PÑǾ PÒ PÕ Ñ Œ PŘÕ Ñ Contracts help to externalize mental models and formalize implicit assumptions. How to formalize assupmtions? Logic is the formal study of correct reasoning Boolean Algebra is the tool of choice 4
5 FÕÒŃÔPŎÑŇÒPÌ Basic Terms MŒPÑǾPÒPÕÑŒPŘÕÑ Supplier implements a software element (e.g. a class) Client references the software element 5
6 FÕÒŃÔPŎÑŇÒPÌ Basic Terms MŒPÑǾPÒPÕÑŒPŘÕÑ A contract consists of pre- and postconditions for each public method Precondition expresses the constraints under which a method call will function properly Postcondition expresses properties of the state resultung from a method s execution ContractViolation is thrown if the contract is broken 6
7 FÕÒŃÔPŎÑŇÒPÌ GContracts MŒPÑǾPÒPÕÑŒPŘÕÑ Design by Contract (tm) for Groovy Version Compile-Time Contract Injection Power Assert Support Maven Central Repository pure Java library, no dependencies gcontracts-core jar 7
8 FÕÒŃÔPŎÑŇÒPÌ Groovy MŒPÑǾPÒPÕÑŒPŘÕÑ dynamic jvm language power features from Ruby, Smalltalk, Python et. al. reducing Java boilerplate code DSL friendliness with closures seamless integration with Java libraries and classes 8
9 FÕÒŃÔPŎÑŇÒPÌ Prerequisites MŒPÑǾPÒPÕÑŒPŘÕÑ contracts are specified applying annotations Groovy supports closures def c = { println "hello world" } c.call() Annotation Closures only syntactically supported in Groovy 1.7 officially supported in Groovy jdkversion >= 6 }) 9
10 FÕÒŃÔPŎÑŇÒPÌ MŒPÑǾPÒPÕÑŒPŘÕÑ Demo 10
11 FÕÒŃÔPŎÑŇÒPÌ Internals MŒPÑǾPÒPÕÑŒPŘÕÑ Groovy AST Transformation modifies the abstract syntax tree (AST) during compilation runs Uses closures as annotation arguments only syntactically supported in Groovy 1.7 officially supported in Groovy 1.8 Compiles annotation closures to closure classes References compiled closure classes in annotation args Groovy AST Browser shows the outcome! 11
12 FÕÒŃÔPŎÑŇÒPÌ GContracts MŒPÑǾPÒPÕÑŒPŘÕÑ Class Invariants 12
13 FÕÒŃÔPŎÑŇÒPÌ GContracts MŒPÑǾPÒPÕÑŒPŘÕÑ Contract Inheritance import org.gcontracts.annotations.* abstract class Stack { protected internal = [] item!= null &&!contains(item) last() == item }) def push(def item) { internal << item } //... class StackImpl extends Stack { //... } 13
14 FÕÒŃÔPŎÑŇÒPÌ GContracts MŒPÑǾPÒPÕÑŒPŘÕÑ Contract Inheritance Precondition gets weakened Postcondition gets strengthened 14
15 FÕÒŃÔPŎÑŇÒPÌ GContracts MŒPÑǾPÒPÕÑŒPŘÕÑ Interface Contracts import org.gcontracts.annotations.* interface Stack item!= null &&!contains(item) last() == item }) def push(def }) def pop() } def last() boolean isempty() boolean contains(def item) 15
16 FÕÒŃÔPŎÑŇÒPÌ GContracts MŒPÑǾPÒPÕÑŒPŘÕÑ not_empty:!isempty() not_full:!isfull() descrease_counter: old.count == count - 1 }) 16
17 FÕÒŃÔPŎÑŇÒPÌ GContracts MŒPÑǾPÒPÕÑŒPŘÕÑ Module gcontracts-grails Spring Integration import org.gcontracts.annotations.* property?.size() > 0 }) class MySpringBean { protected property } def MySpringBean(def somevalue) { property = somevalue } 17
18 FÕÒŃÔPŎÑŇÒPÌ GContracts MŒPÑǾPÒPÕÑŒPŘÕÑ Module gcontracts-doc GroovyDoc extension 18
19 FÕÒŃÔPŎÑŇÒPÌ GContracts MŒPÑǾPÒPÕÑŒPŘÕÑ Reusing Contracts: Annotation Contracts import org.gcontracts.annotations.meta.* it!= null }) NotNull {} 19
20 FÕÒŃÔPŎÑŇÒPÌ GContracts MŒPÑǾPÒPÕÑŒPŘÕÑ Reusing Contracts: Annotation Contracts class BankAccount amount > 0.0 }) BigDecimal withdraw(@notnull BigDecimal amount) { if (balance >= amount) { balance -= amount; return amount; } else // Withdrawal not allowed return 0.0; } //... 20
21 FÕÒŃÔPŎÑŇÒPÌ GContracts MŒPÑǾPÒPÕÑŒPŘÕÑ More... VM Args to Enable/Disable Contract Checking Domain Model Custom Annotation Processors Cyclic Call Detection Gradle Multi-Build Project... 21
22 FÕÒŃÔPŎÑŇÒPÌ IDE Support MŒPÑǾPÒPÕÑŒPŘÕÑ IntelliJ Groovy Eclipse Plugin Snapshot for Groovy 1.8 includes support for annotation closures 22
23 MythBusters FÕ Ò ŃÔ PŎ ÑŇÒ P ÌM Œ PÑǾ PÒ PÕ Ñ Œ PŘÕ Ñ Don t know how to apply contracts in my application! My Methods are too complicated for contracts! I write unit tests, let s go bowling! 23
24 FÕÒŃÔPŎÑŇÒPÌ Where MŒPÑǾPÒPÕÑŒPŘÕÑ to get it? BSD license Github project (source/binaries) Available in the Central Maven group='org.gcontracts', module='gcontracts-core', version='[1.2.1,)' ) Ivy Maven Gradle Lighthouse Issue Tracking Feel free to contribute! 24
25 FÕÒŃÔPŎÑŇÒPÌ Any Questions? MŒPÑǾPÒPÕÑŒPŘÕÑ 25
26 FÕÒŃÔPŎÑŇÒPÌ MŒPÑǾPÒPÕÑŒPŘÕÑ 26
Software Engineering Techniques
Software Engineering Techniques Low level design issues for programming-in-the-large. Software Quality Design by contract Pre- and post conditions Class invariants Ten do Ten do nots Another type of summary
Build management & Continuous integration. with Maven & Hudson
Build management & Continuous integration with Maven & Hudson About me Tim te Beek [email protected] Computer science student Bioinformatics Research Support Overview Build automation with Maven Repository
FROM BANNER 8 TO BANNER XE. What s the story?
FROM BANNER 8 TO BANNER XE What s the story? BANNER XE = EXTENSIBLE ECOSYSTEM USED WITH PERMISSION FROM ELLUCIAN CHANGE FROM BANNER 8 TO BANNER XE BANNER 8 BANNER XE BANNER XE BANNER XE AT THE UNIVERSITY
Viewpoint. Choosing the right automation tool and framework is critical to project success. - Harsh Bajaj, Technical Test Lead ECSIVS, Infosys
Viewpoint Choosing the right automation tool and framework is critical to project success - Harsh Bajaj, Technical Test Lead ECSIVS, Infosys Introduction Organizations have become cognizant of the crucial
Developing Android Apps with the ArcGIS Runtime SDK for Android. Dan O Neill @jdoneill @doneill
Developing Android Apps with the ArcGIS Runtime SDK for Android Dan O Neill @jdoneill @doneill Xueming Wu @xuemingrocks Agenda Introduction to the ArcGIS Android SDK Maps & Layers Basemaps (Portal) Location
Programming by Contract. Programming by Contract: Motivation. Programming by Contract: Preconditions and Postconditions
COMP209 Object Oriented Programming Designing Classes 2 Mark Hall Programming by Contract (adapted from slides by Mark Utting) Preconditions Postconditions Class invariants Programming by Contract An agreement
YouTrack MPS case study
YouTrack MPS case study A case study of JetBrains YouTrack use of MPS Valeria Adrianova, Maxim Mazin, Václav Pech What is YouTrack YouTrack is an innovative, web-based, keyboard-centric issue and project
Agile Development with Groovy and Grails. Christopher M. Judd. President/Consultant Judd Solutions, LLC
Agile Development with Groovy and Grails Christopher M. Judd President/Consultant Judd Solutions, LLC Christopher M. Judd President/Consultant of Judd Solutions Central Ohio Java User Group (COJUG) coordinator
Rigorous Software Development CSCI-GA 3033-009
Rigorous Software Development CSCI-GA 3033-009 Instructor: Thomas Wies Spring 2013 Lecture 5 Disclaimer. These notes are derived from notes originally developed by Joseph Kiniry, Gary Leavens, Erik Poll,
PHP vs. Java. In this paper, I am not discussing following two issues since each is currently hotly debated in various communities:
PHP vs. Java *This document reflects my opinion about PHP and Java. I have written this without any references. Let me know if there is a technical error. --Hasari Tosun It isn't correct to compare Java
JRuby Now and Future Charles Oliver Nutter JRuby Guy Sun Microsystems
JRuby Now and Future Charles Oliver Nutter JRuby Guy Sun Microsystems Except where otherwise noted, the content of this presentation is licensed under the Creative Commons Attribution Share Alike 3.0 United
Textual Modeling Languages
Textual Modeling Languages Slides 4-31 and 38-40 of this lecture are reused from the Model Engineering course at TU Vienna with the kind permission of Prof. Gerti Kappel (head of the Business Informatics
Continuous Delivery for Alfresco Solutions. Satisfied customers and happy developers with!! Continuous Delivery!
Continuous Delivery for Alfresco Solutions Satisfied customers and happy developers with!! Continuous Delivery! About me Roeland Hofkens #rhofkens [email protected] http://opensource.westernacher.com
VOC Documentation. Release 0.1. Russell Keith-Magee
VOC Documentation Release 0.1 Russell Keith-Magee February 07, 2016 Contents 1 About VOC 3 1.1 The VOC Developer and User community................................ 3 1.2 Frequently Asked Questions.......................................
Ruby on Rails in GlassFish [email protected] http://weblogs.java.net/blog/vivekp/ Sun Microsystems
Ruby on Rails in GlassFish [email protected] http://weblogs.java.net/blog/vivekp/ Sun Microsystems Ruby On Rails in GlassFish 1 Agenda Introduction to RoR What is JRuby? GlassFish overview RoR on GlassFish
Intruduction to Groovy & Grails programming languages beyond Java
Intruduction to Groovy & Grails programming languages beyond Java 1 Groovy, what is it? Groovy is a relatively new agile dynamic language for the Java platform exists since 2004 belongs to the family of
How To Write A Test Engine For A Microsoft Microsoft Web Browser (Php) For A Web Browser For A Non-Procedural Reason)
Praspel: A Specification Language for Contract-Driven Testing in PHP Ivan Enderlin Frédéric Dadeau Alain Giorgetti Abdallah Ben Othman October 27th, 2011 Meetings: LTP MTVV Ivan Enderlin, Frédéric Dadeau,
Shark Installation Guide Week 3 Report. Ankush Arora
Shark Installation Guide Week 3 Report Ankush Arora Last Updated: May 31,2014 CONTENTS Contents 1 Introduction 1 1.1 Shark..................................... 1 1.2 Apache Spark.................................
Thomas Jefferson High School for Science and Technology Program of Studies Foundations of Computer Science. Unit of Study / Textbook Correlation
Thomas Jefferson High School for Science and Technology Program of Studies Foundations of Computer Science updated 03/08/2012 Unit 1: JKarel 8 weeks http://www.fcps.edu/is/pos/documents/hs/compsci.htm
Design by Contract beyond class modelling
Design by Contract beyond class modelling Introduction Design by Contract (DbC) or Programming by Contract is an approach to designing software. It says that designers should define precise and verifiable
Architecture Rules Enforcement and Governance Using Aspects
Architecture Rules Enforcement and Governance Using Aspects Srini Penchikala SATURN 2009 About the Speaker Enterprise Architect Writer, Speaker, Editor (InfoQ) Detroit Java User Group Leader Working with
Dynamic website development using the Grails Platform. Joshua Davis Senior Architect Cognizant Technology Solutions joshua.davis@cognizant.
Dynamic website development using the Grails Platform Joshua Davis Senior Architect Cognizant Technology Solutions [email protected] Topics Covered What is Groovy? What is Grails? What are the
Developing modular Java applications
Developing modular Java applications Julien Dubois France Regional Director SpringSource Julien Dubois France Regional Director, SpringSource Book author :«Spring par la pratique» (Eyrolles, 2006) new
Rigorous Software Development CSCI-GA 3033-009
Rigorous Software Development CSCI-GA 3033-009 Instructor: Thomas Wies Spring 2013 Lecture 11 Semantics of Programming Languages Denotational Semantics Meaning of a program is defined as the mathematical
OpenShift is FanPaaStic For Java EE. By Shekhar Gulati Promo Code JUDCON.IN
OpenShift is FanPaaStic For Java EE By Shekhar Gulati Promo Code JUDCON.IN About Me ~ Shekhar Gulati OpenShift Evangelist at Red Hat Hands on developer Speaker Writer and Blogger Twitter @ shekhargulati
Continuous Integration The Full Monty Artifactory and Gradle. Yoav Landman & Frederic Simon
Continuous Integration The Full Monty Artifactory and Gradle Yoav Landman & Frederic Simon About us Yoav Landman Creator of Artifactory, JFrog s CTO Frederic Simon JFrog s Chief Architect 10+ years experience
Continuous Integration For Fusion Middleware
Continuous Integration For Fusion Middleware Mark Nelson, Architect Robert Wunderlich, Product Management Fusion Middleware September 30, 2014 CON7627 Safe Harbor Statement The following is intended to
Smarter Testing With Spock
Smarter Testing With Spock Peter Niederwieser Principal Engineer,Gradleware What we ll talk about Spock?! State Based Testing Data Driven Testing Interaction Based Testing Spock Extensions More Cool Stuff
Rapid Application Development. and Application Generation Tools. Walter Knesel
Rapid Application Development and Application Generation Tools Walter Knesel 5/2014 Java... A place where many, many ideas have been tried and discarded. A current problem is it's success: so many libraries,
How To Run A Hello World On Android 4.3.3 (Jdk) On A Microsoft Ds.Io (Windows) Or Android 2.7.3 Or Android 3.5.3 On A Pc Or Android 4 (
Developing Android applications in Windows Below you will find information about the components needed for developing Android applications and other (optional) software needed to connect to the institution
The power of root on Android emulators
The power of root on Android emulators Command line tooling for Android Development Gabe Martin LinuxFest Northwest 2013 10:00 AM to 10:50 AM, CC 239 Welcome Describe alternative title Questions can be
Programming by Contract vs. Defensive Programming: A Comparison of Run-time Performance and Complexity
Department of Computer Science Roger Andersson Patrick Jungner Programming by Contract vs. Defensive Programming: A Comparison of Run-time Performance and Complexity Master s Thesis 2003:03 Programming
OUR COURSES 19 November 2015. All prices are per person in Swedish Krona. Solid Beans AB Kungsgatan 32 411 19 Göteborg Sweden
OUR COURSES 19 November 2015 Solid Beans AB Kungsgatan 32 411 19 Göteborg Sweden Java for beginners JavaEE EJB 3.1 JSF (Java Server Faces) PrimeFaces Spring Core Spring Advanced Maven One day intensive
Triple-E class Continuous Delivery
Triple-E class Continuous Delivery with Hudson, Maven, Kokki and PyDev Werner Keil Eclipse Day Delft 27 th September 2012 2 2012 Creative Arts & Technologies Images Maersk Line and Others Overview Introduction
Hands on exercise for
Hands on exercise for João Miguel Pereira 2011 0 Prerequisites, assumptions and notes Have Maven 2 installed in your computer Have Eclipse installed in your computer (Recommended: Indigo Version) I m assuming
APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 SEPTEMBER 2012. APACHE SLING & SCALA Jochen Fliedner
APACHE SLING & FRIENDS TECH MEETUP BERLIN, 26-28 SEPTEMBER 2012 APACHE SLING & SCALA Jochen Fliedner About the speaker Jochen Fliedner Senior Developer pro!vision GmbH Wilmersdorfer Str. 50-51 10627 Berlin
Event-driven plugins with Grails 3. Göran Ehrsson, Technipelago AB
Event-driven plugins with Grails 3 Göran Ehrsson, Technipelago AB Göran Ehrsson, @goeh Grails enthusiast Founded Technipelago 2006 Custom business applications 90% of customer base running Grails apps
Simplifying e Business Collaboration by providing a Semantic Mapping Platform
Simplifying e Business Collaboration by providing a Semantic Mapping Platform Abels, Sven 1 ; Sheikhhasan Hamzeh 1 ; Cranner, Paul 2 1 TIE Nederland BV, 1119 PS Amsterdam, Netherlands 2 University of Sunderland,
Robotium Automated Testing for Android
Robotium Automated Testing for Android Hrushikesh Zadgaonkar Chapter No. 1 "Getting Started with Robotium" In this package, you will find: A Biography of the author of the book A preview chapter from the
Solver- aided DSL with. Rui Zhao (rz2290)
Solver- aided DSL with Rui Zhao (rz2290 Solver- aided Programming So>ware is widely used We all want to build programs, not only so>ware engineers Solver- aided Programming 1960 - So>ware crisis 1970 -
Mobile Test Automation Framework
Mobile Test Automation Framework Shankar Garg Senior Consultant - Testing Problem Statement Features of Test Automation Framework Tech stack and why Demo Did we still miss something Page Objects Why Mobile
<Insert Picture Here> What's New in NetBeans IDE 7.2
Slide 1 What's New in NetBeans IDE 7.2 The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated
Xtext Documentation. September 26, 2014
Xtext Documentation September 26, 2014 Contents I. Getting Started 9 1. 5 Minutes Tutorial 10 1.1. Creating A New Xtext Project........................ 10 1.2. Generating The Language Infrastructure...................
Topics. Introduction. Java History CS 146. Introduction to Programming and Algorithms Module 1. Module Objectives
Introduction to Programming and Algorithms Module 1 CS 146 Sam Houston State University Dr. Tim McGuire Module Objectives To understand: the necessity of programming, differences between hardware and software,
Java and RDBMS. Married with issues. Database constraints
Java and RDBMS Married with issues Database constraints Speaker Jeroen van Schagen Situation Java Application store retrieve JDBC Relational Database JDBC Java Database Connectivity Data Access API ( java.sql,
Handout 1. Introduction to Java programming language. Java primitive types and operations. Reading keyboard Input using class Scanner.
Handout 1 CS603 Object-Oriented Programming Fall 15 Page 1 of 11 Handout 1 Introduction to Java programming language. Java primitive types and operations. Reading keyboard Input using class Scanner. Java
SOFTWARE TESTING TRAINING COURSES CONTENTS
SOFTWARE TESTING TRAINING COURSES CONTENTS 1 Unit I Description Objectves Duration Contents Software Testing Fundamentals and Best Practices This training course will give basic understanding on software
Jenkins: The Definitive Guide
Jenkins: The Definitive Guide John Ferguson Smart O'REILLY8 Beijing Cambridge Farnham Koln Sebastopol Tokyo Table of Contents Foreword xiii Preface xv 1. Introducing Jenkins 1 Introduction 1 Continuous
Getting Started with the Internet Communications Engine
Getting Started with the Internet Communications Engine David Vriezen April 7, 2014 Contents 1 Introduction 2 2 About Ice 2 2.1 Proxies................................. 2 3 Setting Up ICE 2 4 Slices 2
Database Migration Plugin - Reference Documentation
Grails Database Migration Plugin Database Migration Plugin - Reference Documentation Authors: Burt Beckwith Version: 1.4.0 Table of Contents 1 Introduction to the Database Migration Plugin 1.1 History
CUT YOUR GRAILS APPLICATION TO PIECES
CUT YOUR GRAILS APPLICATION TO PIECES BUILD FEATURE PLUGINS Göran Ehrsson Technipelago AB @goeh Göran Ehrsson, @goeh From Stockholm, Sweden 25+ years as developer Founded Technipelago AB Grails enthusiast
BEST WEB PROGRAMMING LANGUAGES TO LEARN ON YOUR OWN TIME
BEST WEB PROGRAMMING LANGUAGES TO LEARN ON YOUR OWN TIME System Analysis and Design S.Mohammad Taheri S.Hamed Moghimi Fall 92 1 CHOOSE A PROGRAMMING LANGUAGE FOR THE PROJECT 2 CHOOSE A PROGRAMMING LANGUAGE
Introducing Tetra: An Educational Parallel Programming System
Introducing Tetra: An Educational Parallel Programming System, Jerome Mueller, Shehan Rajapakse, Daniel Easterling May 25, 2015 Motivation We are in a multicore world. Several calls for more parallel programming,
Meister Going Beyond Maven
Meister Going Beyond Maven A technical whitepaper comparing OpenMake Meister and Apache Maven OpenMake Software 312.440.9545 800.359.8049 Winners of the 2009 Jolt Award Introduction There are many similarities
5. Advanced Object-Oriented Programming Language-Oriented Programming
5. Advanced Object-Oriented Programming Language-Oriented Programming Prof. Dr. Bernhard Humm Faculty of Computer Science Hochschule Darmstadt University of Applied Sciences 1 Retrospective Functional
Windmill. Automated Testing for Web Applications
Windmill Automated Testing for Web Applications Demo! Requirements Quickly build regression tests Easily debug tests Run single test on all target browsers Easily fit in to continuous integration Other
Dart a modern web language
Dart a modern web language or why web programmers need more structure Kasper Lund & Lars Bak Software engineers, Google Inc. Object-oriented language experience: 26 + 12 years The Web Is Fantastic The
Appendix... B. The Object Constraint
UML 2.0 in a Nutshell Appendix B. The Object Constraint Pub Date: June 2005 Language The Object Constraint Language 2.0 (OCL) is an addition to the UML 2.0 specification that provides you with a way to
Grails - Rapid Web Application Development for the Java Platform
Grails - Rapid Web Application Development for the Java Platform Mischa Kölliker Guido Schmutz Zürich, 24.06.2008 Basel Baden Bern Lausanne Zurich Düsseldorf Frankfurt/M. Freiburg i. Br. Hamburg Munich
The Decaffeinated Robot
Developing on without Java Texas Linux Fest 2 April 2011 Overview for Why? architecture Decaffeinating for Why? architecture Decaffeinating for Why choose? Why? architecture Decaffeinating for Why choose?
A Comparison of Open Source Application Development Frameworks for the Enterprise
A Comparison of Open Source Application Development Frameworks for the Enterprise Webinar on March 12, 2008 Presented by Kim Weins, Sr. VP of Marketing at OpenLogic and Kelby Zorgdrager, President of DevelopIntelligence
Kotlin for Android Developers
Kotlin for Android Developers Learn Kotlin in an easy way while developing an Android App Antonio Leiva This book is for sale at http://leanpub.com/kotlin-for-android-developers This version was published
A Framework for Extensible Languages
A Framework for Extensible Languages Sebastian Erdweg TU Darmstadt, Germany Felix Rieger TU Darmstadt, Germany Abstract Extensible programming languages such as SugarJ or Racket enable programmers to introduce
Integration of data validation and user interface concerns in a DSL for web applications
Softw Syst Model (2013) 12:35 52 DOI 10.1007/s10270-010-0173-9 THEME SECTION Integration of data validation and user interface concerns in a DSL for web applications Danny M. Groenewegen Eelco Visser Received:
Java Building Web Apps with Spring Rob Harrop, Interface21 Ltd.
Java Building Web Apps with Spring Rob Harrop, Interface21 Ltd. Contact me at [email protected] About the Speaker VP at Interface21 Core Developer on Spring Founder of Spring Modules JMX 2.0 Expert
Grails 1.1. Web Application. Development. Reclaiming Productivity for Faster. Java Web Development. Jon Dickinson PUBLISHING J MUMBAI BIRMINGHAM
Grails 1.1 Development Web Application Reclaiming Productivity for Faster Java Web Development Jon Dickinson PUBLISHING J BIRMINGHAM - MUMBAI Preface Chapter 1: Getting Started with Grails 7 Why Grails?
Sonatype CLM for Maven. Sonatype CLM for Maven
Sonatype CLM for Maven i Sonatype CLM for Maven Sonatype CLM for Maven ii Contents 1 Introduction 1 2 Creating a Component Index 3 2.1 Excluding Module Information Files in Continuous Integration Tools...........
Lecture 1 Introduction to Android
These slides are by Dr. Jaerock Kwon at. The original URL is http://kettering.jrkwon.com/sites/default/files/2011-2/ce-491/lecture/alecture-01.pdf so please use that instead of pointing to this local copy
SimpleFSM - a domain-specific language for SIP communication systems - Part I: Language description
ELEKTROTEHNIŠKI VESTNIK 78(4): 223 228, 2011 ENGLISH EDITION SimpleFSM - a domain-specific language for SIP communication systems - Part I: Language description Edin Pjanić, Amer Hasanović Faculty of Electrical
Dominik Helleberg inovex GmbH. Moderne Android Builds mit Gradle
Dominik Helleberg inovex GmbH Moderne Android Builds mit Gradle Gradle is the most advanced, next generation build system Hans Dockter You should really give it a try (not only for android) Dominik Helleberg
Computer Programming I & II*
Computer Programming I & II* Career Cluster Information Technology Course Code 10152 Prerequisite(s) Computer Applications, Introduction to Information Technology Careers (recommended), Computer Hardware
The Smalltalk Programming Language. Beatrice Åkerblom [email protected]
The Smalltalk Programming Language Beatrice Åkerblom [email protected] 'The best way to predict the future is to invent it' - Alan Kay. History of Smalltalk Influenced by Lisp and Simula Object-oriented
GlassFish v3. Building an ex tensible modular Java EE application server. Jerome Dochez and Ludovic Champenois Sun Microsystems, Inc.
GlassFish v3 Building an ex tensible modular Java EE application server Jerome Dochez and Ludovic Champenois Sun Microsystems, Inc. Agenda Java EE 6 and GlassFish V3 Modularity, Runtime Service Based Architecture
JAAS Java Authentication and Authorization Services
JAAS Java Authentication and Authorization Services Bruce A Rich Java Security Lead IBM/Tivoli Systems Java is a trademark and Java 2 is a registered trademark of Sun Microsystems Inc. Trademarks Java,
Web Service Testing. SOAP-based Web Services. Software Quality Assurance Telerik Software Academy http://academy.telerik.com
Web Service Testing SOAP-based Web Services Software Quality Assurance Telerik Software Academy http://academy.telerik.com The Lectors Snejina Lazarova Product Manager Talent Management System Dimo Mitev
Nexus Professional Whitepaper. Repository Management: Stages of Adoption
Sonatype Nexus Professional Whitepaper Repository Management: Stages of Adoption Adopting Repository Management Best Practices SONATYPE www.sonatype.com [email protected] +1 301-684-8080 12501 Prosperity
Monitoring Java Code Using ConGu
Monitoring Java Code Using ConGu V.T. Vasconcelos, I. Nunes, A. Lopes, N. Ramiro, P. Crispim Departamento de Informática, Faculdade de Ciências, Universidade de Lisboa 1749 016 Lisboa, Portugal Abstract
Announcements FORTRAN ALGOL COBOL. Simula & Smalltalk. Programming Languages
Announcements Programming Languages! Monday evening GBA section has been shut down " If you were assigned to this section, please find a different section " If you cannot attend a different section, please
Android ist anders - Android Dependency Management
Android ist anders - Fabian Klaffke verit Informationssysteme GmbH Agenda Build & Dependency-Management Motivation Fallbeispiel Android Android-Bibliotheken Bibliotheken einbinden IDEs Build Management
language 1 (source) compiler language 2 (target) Figure 1: Compiling a program
CS 2112 Lecture 27 Interpreters, compilers, and the Java Virtual Machine 1 May 2012 Lecturer: Andrew Myers 1 Interpreters vs. compilers There are two strategies for obtaining runnable code from a program
Continuous Integration
Continuous Integration WITH FITNESSE AND SELENIUM By Brian Kitchener [email protected] Intro Who am I? Overview Continuous Integration The Tools Selenium Overview Fitnesse Overview Data Dependence My
Automating Testing and Configuration Data Migration in OTM/GTM Projects using Open Source Tools By Rakesh Raveendran Oracle Consulting
Automating Testing and Configuration Data Migration in OTM/GTM Projects using Open Source Tools By Rakesh Raveendran Oracle Consulting Agenda Need Desired End Picture Requirements Mapping Selenium Testing
zen Platform technical white paper
zen Platform technical white paper The zen Platform as Strategic Business Platform The increasing use of application servers as standard paradigm for the development of business critical applications meant
To Java SE 8, and Beyond (Plan B)
11-12-13 To Java SE 8, and Beyond (Plan B) Francisco Morero Peyrona EMEA Java Community Leader 8 9...2012 2020? Priorities for the Java Platforms Grow Developer Base Grow Adoption
Examples of Design by Contract in Java
Object World Berlin 99 Design & Components Berlin, May 17th-20th 1999 Examples of Design by Contract in Java using Contract, the Design by Contract tm Tool for Java tm Reto Kramer, [email protected] Java
Eclipse. Software Engineering with an Integrated Development Environment (IDE) Markus Scheidgen
Eclipse Software Engineering with an Integrated Development Environment (IDE) Markus Scheidgen Agenda What is eclipse and why bother? - An introduction to eclipse. eclipse fundamentals (Java) development
Java 6 'th. Concepts INTERNATIONAL STUDENT VERSION. edition
Java 6 'th edition Concepts INTERNATIONAL STUDENT VERSION CONTENTS PREFACE vii SPECIAL FEATURES xxviii chapter i INTRODUCTION 1 1.1 What Is Programming? 2 J.2 The Anatomy of a Computer 3 1.3 Translating
Using EDA Databases: Milkyway & OpenAccess
Using EDA Databases: Milkyway & OpenAccess Enabling and Using Scripting Languages with Milkyway and OpenAccess Don Amundson Khosro Khakzadi 2006 LSI Logic Corporation 1 Outline History Choice Of Scripting
Introducing Formal Methods. Software Engineering and Formal Methods
Introducing Formal Methods Formal Methods for Software Specification and Analysis: An Overview 1 Software Engineering and Formal Methods Every Software engineering methodology is based on a recommended
Building a Modular Server Platform with OSGi. Dileepa Jayakody Software Engineer SSWSO2 Inc.
Building a Modular Server Platform with OSGi Dileepa Jayakody Software Engineer SSWSO2 Inc. Outline Complex Systems OSGi for Modular Systems OSGi in SOA middleware Carbon : A modular server platform for
Ruby on Rails is a web application framework written in Ruby, a dynamically typed programming language The amazing productivity claims of Rails is
Chris Panayiotou Ruby on Rails is a web application framework written in Ruby, a dynamically typed programming language The amazing productivity claims of Rails is the current buzz in the web development
Computational Mathematics with Python
Computational Mathematics with Python Basics Claus Führer, Jan Erik Solem, Olivier Verdier Spring 2010 Claus Führer, Jan Erik Solem, Olivier Verdier Computational Mathematics with Python Spring 2010 1
High-Level Language. Building a Modern Computer From First Principles. www.nand2tetris.org
High-Level Language Building a Modern Computer From First Principles www.nand2tetris.org Elements of Computing Systems, Nisan & Schocken, MIT Press, www.nand2tetris.org, Chapter 9: High-Level Language
Towards a Framework for Generating Tests to Satisfy Complex Code Coverage in Java Pathfinder
Towards a Framework for Generating Tests to Satisfy Complex Code Coverage in Java Pathfinder Matt Department of Computer Science and Engineering University of Minnesota [email protected] Abstract We present
soapui Product Comparison
soapui Product Comparison soapui Pro what do I get? soapui is a complete TestWare containing all feautres needed for Functional Testing of your SOA. soapui Pro has added aditional features for the Enterprise
