Principles of integrated software development environments. Learning Objectives. Context: Software Process (e.g. USDP or RUP)



Similar documents
Duke University Program Design & Construction Course

Chap 1. Introduction to Software Architecture

How To Design An Information System

Build Management. Context. Learning Objectives

Introduction to Eclipse, Creating Eclipse plug-ins and the Overture editor. David Holst Møller Engineering College of Aarhus

WHITE PAPER. Peter Drucker. intentsoft.com 2014, Intentional Software Corporation

To introduce software process models To describe three generic process models and when they may be used

Software Engineering. Software Processes. Based on Software Engineering, 7 th Edition by Ian Sommerville

SOMA, RUP and RMC: the right combination for Service Oriented Architecture

3C05: Unified Software Development Process

SA4 Software Developer Survey Survey Specification v2.2

Tools for Testing Software Architectures. Learning Objectives. Context

Java/J2EE or Web Developer. Formal Education. Technical knowledge. Spoken Languages

Life Cycle Activity Areas for Component-Based Software Engineering Processes

Foundations of Model-Driven Software Engineering

Skills for Employment Investment Project (SEIP)

Rational Software White Paper

Today. Generic Language g Technology (2IS15)

Analysis and Design of Software Systems Practical Session 01. System Layering

CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.

Projectory A Framework for teaching Object Oriented Design and Object Oriented Programming

What is Enterprise Architect? Enterprise Architect is a visual platform for designing and constructing software systems, for business process

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53

Case Studies of Running the Platform. NetBeans UML Servlet JSP GlassFish EJB

SAP's Integrated Development Environment for Java. Karl Kessler, SAP AG

A Tool Suite for the Generation and Validation of Configurations for Software Availability

Software Configuration Management. Context. Learning Objectives

Modeling Web Applications Using Java And XML Related Technologies

Software Development Process and Activities. CS 490MT/5555, Fall 2015, Yongjie Zheng

TeCReVis: A Tool for Test Coverage and Test Redundancy Visualization

Applying Agile Methods in Rapidly Changing Environments

TeamCity A Professional Solution for Delivering Quality Software, on Time

Laila TECHNICAL SKILLS

A Database Re-engineering Workbench

SoberIT Software Business and Engineering Institute

IBM Rational Web Developer for WebSphere Software Version 6.0

SOFTWARE TESTING TRAINING COURSES CONTENTS

Analysis and Design with UML

Eclipse 4 RCP application Development COURSE OUTLINE

Modernizing Simulation Input Generation and Post-Simulation Data Visualization with Eclipse ICE

Software Development Tools & Environments

Case Study: Inception Phase. L. ch. 3-5

CS 4240: Principles of Software Design. Course Introduction. Tom Horton

Model Driven Interoperability through Semantic Annotations using SoaML and ODM

Questions? Assignment. Techniques for Gathering Requirements. Gathering and Analysing Requirements

WebRatio 5: An Eclipse-based CASE tool for engineering Web applications

The ADOxx Metamodelling Platform Workshop "Methods as Plug-Ins for Meta-Modelling" in conjunction with "Modellierung 2010", Klagenfurt

Domain modeling: Leveraging the heart of RUP for straight through processing

Metamodels and Modeling Multiple Kinds of Information Systems

MDA Overview OMG. Enterprise Architect UML 2 Case Tool by Sparx Systems by Sparx Systems

Software Project Management Plan

Visual Paradigm product adoption roadmap

Software Quality Assurance Plan

OpenEmbeDD basic demo

The SPES Methodology Modeling- and Analysis Techniques

Plan-Driven Methodologies

CommentTemplate: A Lightweight Code Generator for Java built with Eclipse Modeling Technology

CS4507 Advanced Software Engineering

Leveraging RUP, OpenUP, and the PMBOK. Arthur English, GreenLine Systems

Applying MDA in Developing Intermediary Service for Data Retrieval

Organization of DSLE part. Overview of DSLE. Model driven software engineering. Engineering. Tooling. Topics:

Configuration Management

Rose Data Modeler (logical)

Enterprise Application Development Using UML, Java Technology and XML

Research Overview in. Formal Method in Software Engineering Laboratory

Object-Oriented Software Specification in Programming Language Design and Implementation

Cross Platform Software Release Capabilities

Software Development in the Large!

1/20/2016 INTRODUCTION

Introduction à EMF Eclipse Modeling Framework

CATALOG OF CLASSES IT and Technical Courses

Development of Tool Extensions with MOFLON

In this Lecture you will Learn: Development Process. Unified Software Development Process. Best Practice

Software quality improvement via pattern matching

Jairson Vitorino. PhD Thesis, CIn-UFPE February Supervisor: Prof. Jacques Robin. Ontologies Reasoning Components Agents Simulations

Business Modeling with UML

Abstraction in Computer Science & Software Engineering: A Pedagogical Perspective

The value of modeling

APPLYING CASE BASED REASONING IN AGILE SOFTWARE DEVELOPMENT

Koen Aers JBoss, a division of Red Hat jbpm GPD Lead

How Programmers Use Internet Resources to Aid Programming

Software Development Process

In this Lecture you will Learn: Systems Development Methodologies. Why Methodology? Why Methodology?

1. Introduction 1.1 Methodology

Component visualization methods for large legacy software in C/C++

How To Develop An Application Developer For An Ubio Websphere Studio 5.1.1

The Expressive Power of UML-based Web Engineering 1

Transcription:

Principles of integrated software development environments Wolfgang Emmerich Professor of Distributed Computing University College London http://sse.cs.ucl.ac.uk Learning Objectives Be able to define the notions of tool and environment Appreciate why tools and environments are critical in large-scale software development efforts Understand the conceptual building blocks of a modern development environment 2 Context: Software Process (e.g. USDP or RUP) Requirements Inception Elaboration Construction Transition Amount of work Analysis Design Implementation Test Preliminary Iterations I1 I2 In In+1 In+2 Im Im+1 3 1

Software Development Artifacts While conducting an activity in a software process, developers produce, modify, review or consume software development artifacts Artifacts document views of the software system, e.g. What functionality needs to be provided? What quality requirements need to be met? How is the software system structured into components and classes? How are these classes realised? How is the software system build from these classes? Do they function correctly? Does their integration address the functional and quality requirements? Large-scale development projects produce 1000s of artifacts 4 Software Development Artifacts (cont d) Artifacts are (mostly) written in formal languages, e.g. Functional requirements in SysML or UML Use case diagrams Non-functional requirements in SLAng Design in UML Realization in Java, C#, Python or Ruby Database schemas and queries in SQL Ant or make build definitions JUnit tests Domain specific languages in Excel for acceptance testing 5 Formal languages demand tool support Well studied subject you should all be familiar with. Just to remind ourselves Formal languages Have a context-free syntax Have a static semantics Might have usage conventions Have a dynamic semantics Developers need tool support to write artifacts in formal languages (editors / compilers / checkers). 6 2

Software Development Tools A software development tool is a software system that assists a software developer in creating, reviewing, analyzing, transforming or executing one or several software artifacts. Tools are language sensitive / syntax-directed Examples: UML tool X86 Assembler Ant C++/Java/C# Compiler Java Virtual Machine / Common Language Runtime Lint 7 The need for tool integration In addition to static semantic constraints, artifacts often have inter-document consistency constraints For example: A use case is elaborated in an interaction diagram. A UML class and a Java class need to have the same names A JavaBean class is refined in a table of a SQL schema A JUnit test references the Java class under test An ant build file refers to a number of Java classes by name Maintaining these consistency constraints manually in largescale projects is prohibitively expensive. Requires tool integration 8 Integrated Software Development Environments An integrated software development environment (IDE) contains a number of software development tools. These tools are integrated and may have a common UI look-and-feel, work jointly on artifacts and enable team collaboration. Examples: Microsoft Visual Studio Netbeans Rational Rose 9 3

Reference Models/Architectures for IDEs In this course we will review the principles of how IDEs are assembled This of course has been done before Reference models & architectures for software engineering environments, IPSEs and IDEs ECMA TR/55 (The toaster model) IPSEN 10 ECMA Reference Model 11 IPSEN Architecture 12 4

Eclipse Platform Plug-in Development Environment Java Development Tools JFace SWT Workbench UI Workbench Runtime Core Platform 13 Key points Developers need tool support to cope with complex development projects Tools are frequently syntax-directed Tool integration creates development environments 14 References M. Nagl (ed): Building Tightly integrated development environments. LNCS 1170. Springer Verlag. pp 32-44. http://dx.doi.org/10.1007/bfb0035684. 1996 Reference Model for Frameworks of Software Engineering Environments. Edition 3 of ECMA TR/55. http://hissa.nist.gov/sp.500-211.ps E. Gamma and K. Beck. Contributing to Eclipse. Pearson. 2004 pp.1-7. 15 5