Component-Based and Model-Driven Development with UML -- Model-Based Testing with UML -- Built-in Contract Testing -- Built-in Contract Testing and Implementation Technologies -- Reuse and Related Technologies -- Assessing Quality-of-Service Contracts.Component-based software development regards software construction in terms of conventional engineering disciplines where the assembly of systems…
Prediction, Analysis and Monitoring of System Architecture -- Performance Prediction of J2EE Applications Using Messaging Protocols -- EJBMemProf – A Memory Profiling Framework for Enterprise JavaBeans -- Model-Driven Safety Evaluation with State-Event-Based Component Failure Annotations -- Optimizing Resource Usage in Component-Based Real-Time Systems -- Evaluating Performance Attributes of …
Typing Haskell with an Attribute Grammar -- Programming with Arrows -- Epigram: Practical Programming with Dependent Types -- Combining Datatypes and Effects -- GEC: A Toolkit for Generic Rapid Prototyping of Type Safe Interactive Applications -- A Functional Shell That Operates on Typed and Compiled Applications -- Declarative Debugging with Buddha -- Server-Side Web Programming in WASH -- Ref…
Prologue -- Generalizing Proofs-as-Programs -- Functional Program Synthesis -- The Curry-Howard Protocol -- Imperative Proofs-as-Programs -- Intuitionistic Hoare Logic -- Properties of Intuitionistic Hoare Logic -- Proofs-as-Imperative-Programs -- Structured Proofs-as-Programs -- Reasoning about Structured Specifications -- Proof-theoretic Properties of SSL -- Structured Proofs-as-Programs -- G…
Probabilistic guarded commands and their refinement logic -- to pGCL: Its logic and its model -- Probabilistic loops: Invariants and variants -- Case studies in termination: Choice coordination, the dining philosophers, and the random walk -- Probabilistic data refinement: The steam boiler -- Semantic structures -- Theory for the demonic model -- The geometry of probabilistic programs -- Proved…
Middleware Integration -- Cooperative Component-Based Software Deployment in Wireless Ad Hoc Networks -- Infrastructure for Automatic Dynamic Deployment of J2EE Applications in Distributed Environments -- Patterns for Deployment -- Component Deployment Using a Peer-to-Peer Overlay -- A Methodology for Developing and Deploying Distributed Applications -- QOS Issues -- Crosslets: Self-managing Ap…
Algorithmic Problems & Their Complexity -- Fundamental Complexity Classes -- Reductions — Algorithmic Relationships Between Problems -- The Theory of NP-Completeness -- NP-complete and NP-equivalent Problems -- The Complexity Analysis of Problems -- The Complexity of Approximation Problems — Classical Results -- The Complexity of Black Box Problems -- Additional Complexity Classes and Relat…
Keynote Talks -- Formal Aids for the Growth of Software Systems -- Formal Methods and Testing: Hypotheses, and Correctness Approximations -- The Natural History of Bugs: Using Formal Methods to Analyse Software Related Failures in Space Missions -- Object Orientation -- Modular Verification of Static Class Invariants -- Decoupling in Object Orientation -- Controlling Object Allocation Using Cre…
Experience Reports -- Lean Software Management Case Study: Timberline Inc. -- XP South of the Equator: An eXPerience Implementing XP in Brazil -- Introducing Extreme Programming into a Software Project at the Israeli Air Force -- The Agile Journey -- New Insights -- From User Stories to Code in One Day? -- Evaluate XP Effectiveness Using Simulation Modeling -- Agile Security Using an Incrementa…
Getting Started -- Clauses and Predicates -- Satisfying Goals -- Operators and Arithmetic -- Input and Output -- Loops -- Preventing Backtracking -- Changing the Prolog Database -- List Processing -- String Processing -- More Advanced Features.Logic Programming is the name given to a distinctive style of programming, very different from that of conventional programming languages such as C++ and…