Software Engineering 2 A practical course in software engineering. Ekkart Kindler

Size: px
Start display at page:

Download "Software Engineering 2 A practical course in software engineering. Ekkart Kindler"

Transcription

1 Software Engineering 2 A practical course in software engineering

2 Conclusion, Outlook, Discussion

3 Motivation 3

4 4

5 1. What did you learn? Objectives of this course: Basic skills in software engineering! 5

6 Software Engineering is much more than programming! listening and understanding! analytic and conceptual work! communication! a social process! acquiring new technologies! a discipline with proven concepts, methods, notations, and tools! and ever new technologies emerging! 6

7 Experience Software Engineering requires much experience! This experience can not be taught theoretically! will be provided in this course! tutorial project and (only) backed by the lectures 7

8 Issues How to make useful UML models Domain model OOA Implementation OOD Learn to use new technologies YOURSELF! Eclipse / Android / openhab / Jenkins / 8

9 Issues Get requirements straight Write a systems specification 9

10 Specifying Software Project Definition Requirements Specification rough detailed Systems specification Complete Models Implementation, Documentation Handbook what how 10

11 Specifying Software Project Definition Requirements Specification rough detailed Systems specification Complete Models Implementation, Documentation Handbook rough detailed 11

12 Specifying Software Project Definition Requirements Specification rough detailed Systems specification Complete Models Implementation, Documentation Handbook low cost high cost 12

13 Issues writing, talking, communicating, and organizing yourself work together version management (other/better tools) 13

14 Issues Quality Management Testing Reviews Many practical issues on programming and solving problems 14

15 Issues Integration and extension Integrating features in existing software (PlugIn Mechanisms, ) Developing parts in parallel (based on a common model) Separating concerns Stepwise extension (prototyping, agile) 15

16 Topics Software Specifications (incl. writing) Modelling & Meta modelling Quality mangament (incl. testing) Code generation Working together Management 16

17 Agile manifesto We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more. Kent Beck et al

18 Agile Values Communication Simplicity Feedback Courage 18

19 Agile (fundamental) Principals Rapid feedback Assume Simplicity Incremental change Embracing change Quality work 19

20 Agile Practices (overview) On-site customer Small/short releases 2-3 week Planning game Coding standards Testing Continuous integration Pair programming Simple design Refactoring Collective ownership... 20

21 2. What did you not learn? 21

22 Technology issues MOF (Meta Object Facility) Software without Programming (EMF and more) / code generation technologies Other technology: other application servers, cloud, IoT, databases, service technologies, Analyse, validate, verify software, Other programming and modelling paradigms: e.g. Aspect Oriented Modelling... 22

23 Advanced Topics Just to give you some idea

24 Future technologies Modelling dynamic behaviour (and generating code from that) Get completely rid of programming?! Defining transformations 24

25 More details & experience Master courses Requirements Engineering (H.S) Systems integration (H.B.) Web Services (H.B.) Formal methods (A.H.) Advanced topics in SE (B.W.) Bachelor and master projects (last slides) 25

26 Coordinating Interactions The Event Coordination Notation

27 From lecture 1: Example 27

28 From lecture 1: Example From this (EMF) model for Petri nets: Generation of (Java) code for all classes methods for changing the Petri net loading and saving the Petri net as XML files ( XMI) PetriNet * Object 1 source Node 1 target Transition Place Arc * Token With this and some more GMF information: Generation of the Java code of a graphical complete editor (with many fancy features). No programming at all. Transition Place Arc Token 28

29 From lecture 1 PetriNet * Object 1 source Node 1 target Transition Place Arc * Token Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %pluginname package PetriNets.impl; Bundle-SymbolicName: APetriNetEditorIn15Minutes.diagr Bundle-Version: qualifier public class PetriNetImpl extends EObjectImpl implements PetriNet { Bundle-ClassPath:. protected EList<PetriNets.Object> object; Bundle-Activator: PetriNets.diagram.part.PetriNetDiagr Bundle-Vendor: %providername protected PetriNetImpl() { Bundle-Localization: plugin super(); Export-Package: PetriNets.diagram.edit.parts, } PetriNets.diagram.part, PetriNets.diagram.providers protected EClass estaticclass() { Require-Bundle: org.eclipse.core.runtime, return PetriNetsPackage.Literals.PETRI_NET; org.eclipse.core.resources, } org.eclipse.core.expressions, org.eclipse.jface, public EList<PetriNets.Object> getobject() { org.eclipse.ui.ide, if (object == null) { org.eclipse.ui.views, object = new EObjectContainmentEList<PetriNets.Object>(Petri org.eclipse.ui.navigator, } org.eclipse.ui.navigator.resources, return object; org.eclipse.emf.ecore, } org.eclipse.emf.ecore.xmi, org.eclipse.emf.edit.ui, public NotificationChain einverseremove(internaleobject otherend, int org.eclipse.gmf.runtime.emf.core, switch (featureid) { org.eclipse.gmf.runtime.emf.commands.core, case PetriNetsPackage.PETRI_NET OBJECT: org.eclipse.gmf.runtime.emf.ui.properties, return ((InternalEList<?>)getObject()).basicRemove(otherEn org.eclipse.gmf.runtime.diagram.ui, } org.eclipse.gmf.runtime.diagram.ui.properties, return super.einverseremove(otherend, featureid, msgs); org.eclipse.gmf.runtime.diagram.ui.providers, } org.eclipse.gmf.runtime.diagram.ui.providers.ide, org.eclipse.gmf.runtime.diagram.ui.render, public Object eget(int featureid, boolean resolve, boolean coretype) { org.eclipse.gmf.runtime.diagram.ui.resources.ed switch (featureid) { org.eclipse.gmf.runtime.diagram.ui.resources.e case PetriNetsPackage.PETRI_NET OBJECT: APetriNetEditorIn15Minutes;visibility:=reexpor return getobject(); } return super.eget(featureid, resolve, coretype); Analysis Design Implementation Coding 29

30 e.g. a Petri net simulator? 30

31 2. The Event Coordination Notation Motivation Given some object oriented software with (or without) explicit domain model Model behaviour on top of it and make these models executable Model behaviour on a high level of abstraction (domain): coordination of behaviour Integrate behaviour models with structural models Integrate different structural models and manually written code (or code generated by different technologies) 31

32 2.1 Example: Vending machine Coin * * Slot Brewer Safe 1 * Control * * Output Panel * Coffee Tea 32

33 Instance: Object Diagram :Coin :Coin : Slot :Coffee :Coin : Safe :Control :Coffee :Output :Panel :Tea 33

34 Coordination Diagram GUI Coin insert GUI pass return_ Safe pass return_: ALL pass: 1 * * insert: 1 1 pass: 1 Slot insert return_ pass reset Panel GUI coffee GUI tea GUI cancel GUI reset: ALL pass: 1 * * coffee: 1 tea: 1 cancel: ALL Control coffee tea cancel pass reset coffee: 1 tea: 1 reset: ALL * Coffee Brewer coffee tea reset cup_in cup_in: 1 * Tea Output GUI cup_in GUI cup_out GUI 34

35 ... + Event declaration GUI Coin insert GUI pass return_ Safe pass return_: ALL pass: 1 * * insert: 1 1 pass: 1 Slot insert return_ pass reset Panel GUI coffee GUI tea GUI cancel GUI reset: ALL pass: 1 * * coffee: 1 tea: 1 cancel: ALL Control coffee tea cancel pass reset insert(coin coin, Slot slot) pass(coin coin, Slot slot) return(slot slot) reset_() coffee: 1 tea: 1 reset: ALL * Coffee Brewer coffee tea reset cup_in cup_in: 1 * Tea coffee() tea() cancel() cup_in() cup_out() Output GUI cup_in GUI cup_out GUI 35

36 Interactions :Coin :Coin :Coin pass : Safe pass pass: 1 pass: 1 : Slot pass :Panel coffee pass: 1 coffee: 1 :Control pass coffee coffee: 1 coffee: 1 :Coffee :Coffee coffee :Tea :Output 36

37 Interactions :Coin :Coin :Coin pass : Safe pass pass: 1 pass: 1 : Slot pass :Panel coffee pass: 1 coffee: 1 :Control pass coffee coffee: 1 :Coffee :Coffee coffee :Tea :Output 37

38 Another Interaction :Coin return :Coin :Coin return : Safe return: ALL return: ALL : Slot return reset :Panel cancel reset: ALL cancel: ALL :Control reset cancel reset: ALL reset: ALL reset: ALL :Coffee reset :Coffee reset :Tea reset :Output 38

39 Local behaviour: Coffee 39

40 Local behaviour: Coin 40

41 Local behaviour: Control pass coffee reset cancel 41

42 Local behaviour: Slot return reset 42

43 Interactions :Coin return :Coin :Coin return : Safe return: ALL return: ALL : Slot return reset :Panel cancel reset: ALL cancel: ALL :Control reset cancel reset: ALL reset: ALL reset: ALL :Coffee reset :Coffee reset :Tea reset :Output 43

44 2.2 ECNO: Basic Concepts ElementTypes (Classes) EventTypes with parameters insert(coin coin, Slot slot) Global Behaviour: Coordination annotations for references Event type Quantification (1 or ALL) Local behaviour: ECNO nets (or something else) Event binding (with parameter assignment) Condition Action Control coffee tea cancel pass reset coffee: 1 tea: 1 Brewer reset: ALL coffee tea reset cup_in 44

45 2.3 Extensions ECNO with its basic concepts has some limitations, which makes modelling things in an adequate way a bit painful. Sometimes, we want to extend event types later 45

46 Event Extension tea tea_blend tea_temp 46

47 2.4 Example2: Petri nets t remove add Transition t enabled: for ALL incoming Arcs a: for ONE source Place p of Arc a: find a token Fire Transition t: for ALL incoming Arcs a: for ONE source Place p of Arc a: find a token and remove it for ALL outgoing arcs a: for ONE target Place p of Arc a: add a new Token 47

48 Petri net: Abstract Syntax 48

49 Example2: Petri nets t remove add Transition t enabled: for ALL incoming Arcs a: for ONE source Place p of Arc a: find a token Fire Transition t: for ALL incoming Arcs a: for ONE source Place p of Arc a: find a token and remove it for ALL outgoing arcs a: for ONE target Place p of Arc a: add a new Token 49

50 ECNO Semantics of PN 50

51 Result t4 t1 t3 t2 51

52 Petri net simulator 52

53 3. Conclusion 53

54 Next Steps 54

55 MSc and BSc Projects

56 Topics / areas OpenHAB & CITIES equipping an experimental room at DTU with devices controlled by openhab equipping a school with devices for well-being collecting, analysing and visualizing data Flexible, configurable and generic data collection from all kinds of devices (e.g. Fitbit) health care energy science (SE-research) CITIES 56

57 ECNO Behaviour modelling: ECNO :Coin return :Coin :Coin return : Safe return: ALL return: ALL : Slot return reset :Panel cancel reset: ALL cancel: ALL :Control reset cancel reset: ALL reset: ALL reset: ALL :Coffee reset :Coffee reset :Tea reset :Output 57

58 ECNO Tool 58

59 ECNO Projects Improved IDE Integration & debugging Smooth database integration (cntd.) Case studies / larger examples (e.g. games) Semantics of ECNO in ECNO 59

60 epnk 60

61 Define a Petri Net Type Defining a new PN by a model? 61

62 Projects Usability, IDE integration and visualization A generic simulator and state space analysis tool... 62

63 Other topics Analysis and design of lighting in buildings Model-based Software Engineering Domain Specific Languages (DSL) Automating the SE process Tools support for development process 63

64 Internet of Things Lab: Setting up the smart home of the future Build a home automation system for heating, cooling and ventilation control

65 Goal of this Thesis Set up a smart home IoT lab Compare different monitoring technologies Compare actuators from different brands Integrate sensors and actuators into openhab Install and run: A gateway (Raspberry Pi) A Time Series Data Base (InfluxDB) A Data Analysis and Visualization software (Grafana) Providing an interface for model predictive control algorithms (Python, R) Providing an interface for building energy performance simulation software (Modelica, Dymola, IDA ice) 65

66 Set up of the IoT Lab Set up a IoT Lab, including (at least): Indoor Air Sensors: Temperature Relative Humidity CO2 Noise A Weather Station: Temperature Relative Humidity Actuators Smart Thermostatic Valves A Gateway 66

Software Engineering 2 A practical course in software engineering. Ekkart Kindler

Software Engineering 2 A practical course in software engineering. Ekkart Kindler Software Engineering 2 A practical course in software engineering Conclusion, Outlook, Discussion Motivation 3 4 1. What did you learn? Objectives of this course: Basic skills in software engineering!

More information

Model-based Software Engineering (02341, spring 2017) Ekkart Kindler

Model-based Software Engineering (02341, spring 2017) Ekkart Kindler Model-based Software Engineering (02341, spring 2017) Why, What, and How: Documents in the Software Development Process During the software development process many documents are produced! When should

More information

Model-based Software Engineering (02341, Spring 2017) Ekkart Kindler

Model-based Software Engineering (02341, Spring 2017) Ekkart Kindler Model-based Software Engineering (02341, Spring 2017) I. Introduction 1. Motivation What is software engineering? What is software? software = program software engineering = programming 3 Program vs. Software

More information

Model-based Software Engineering (02341, spring 2017) Ekkart Kindler

Model-based Software Engineering (02341, spring 2017) Ekkart Kindler Model-based Software Engineering (02341, spring 2017) Lecture 8: Overview (cntd.) Some hints for the implementation Auxiliary datatypes and functions Helpful epnk functions Marking algorithm (OR-join:

More information

Advanced Topics in Software Engineering (02265) Ekkart Kindler

Advanced Topics in Software Engineering (02265) Ekkart Kindler Advanced Topics in Software Engineering (02265) I. Introduction and Motivation 2 1. Vision 3 Today Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %pluginname package PetriNets.impl; Bundle-SymbolicName:

More information

Advanced Topics in Software Engineering (02265) Ekkart Kindler

Advanced Topics in Software Engineering (02265) Ekkart Kindler Advanced Topics in Software Engineering (02265) V. Transformations 2 Motivation (cf. Vision) PetriNet * Object 1 source Node 1 target Transition Place Arc * Token Manifest-Version: 1.0 Bundle-ManifestVersion:

More information

Software Engineering 2 A practical course in software engineering. Ekkart Kindler

Software Engineering 2 A practical course in software engineering. Ekkart Kindler Software Engineering 2 A practical course in software engineering I. Introduction Introduction Motivation: Software engineering & management Agile development The role of models in software engineering

More information

Software Engineering 2 A practical course in software engineering. Ekkart Kindler

Software Engineering 2 A practical course in software engineering. Ekkart Kindler Software Engineering 2 A practical course in software engineering VI. Modelling Software 1. Motivation Which models are there? What are software models? What are they good for? Why do WE need them? What

More information

Software Engineering 2 A practical course in software engineering. Ekkart Kindler

Software Engineering 2 A practical course in software engineering. Ekkart Kindler Software Engineering 2 A practical course in software engineering I. Introduction Introduction Motivation The role of models in software engineering Software engineering & management Organisation of this

More information

Software Engineering 2 A practical course in software engineering. Ekkart Kindler

Software Engineering 2 A practical course in software engineering. Ekkart Kindler Software Engineering 2 A practical course in software engineering II. Agile Development 1. Motivation Conceive Design Implement Operate Why What How 3 Co-evolution What should the software do? WHAT HOW

More information

Advanced Topics in Software Engineering (02265) Ekkart Kindler

Advanced Topics in Software Engineering (02265) Ekkart Kindler Advanced Topics in Software Engineering (02265) IV. (Meta-) Modelling Frameworks 2 1. Motivation & Overview With MOF, we have: Modelling notation (EMOF / CMOF) Java API (JMI, EMF, etc) Instance model /

More information

Software Engineering 2 A practical course in software engineering. Ekkart Kindler

Software Engineering 2 A practical course in software engineering. Ekkart Kindler Software Engineering 2 A practical course in software engineering II. Modelling Software Modelling Software Model based software engineering (taking models a bit more seriously than we did traditionally)

More information

Model-based Software Engineering (02341, spring 2017) Ekkart Kindler

Model-based Software Engineering (02341, spring 2017) Ekkart Kindler Model-based Software Engineering (02341, spring 2017) Meta-modelling and Domain Specific Languages (DSLs) and Summary and Outlook Meta-modelling (and MOF) 3 Class Diagrams are models too PetriNet Object

More information

Advanced Topics in Software Engineering (02265) Ekkart Kindler

Advanced Topics in Software Engineering (02265) Ekkart Kindler Advanced Topics in Software Engineering (02265) Recapitulation (I. Introduction ) 2 Levels of models ClassDiagram is an instance of PetriNet * Object * Class 1 start 1 end * Association concrete syntax

More information

Compositional Model Based Software Development

Compositional Model Based Software Development Compositional Model Based Software Development Prof. Dr. Bernhard Rumpe http://www.se-rwth.de/ Seite 2 Our Working Groups and Topics Automotive / Robotics Autonomous driving Functional architecture Variability

More information

CISC836: Models in Software Development: Methods, Techniques and Tools

CISC836: Models in Software Development: Methods, Techniques and Tools CISC836: Models in Software Development: Methods, Techniques and Tools Topic 4: Code Generation with EMF Meta modeling Languages for meta models: Ecore Using EMF and Ecoreto define a data model Using EMF

More information

Model-based Software Engineering (02341, spring 2016) Ekkart Kindler

Model-based Software Engineering (02341, spring 2016) Ekkart Kindler Model-based Software Engineering (02341, spring 2016) II. Modelling with a Purpose 1. Models to which end Understanding the world (conceptual models, domain models) Understanding what the software is supposed

More information

Software Engineering I (02161)

Software Engineering I (02161) Software Engineering I (02161) Week 1 Assoc. Prof. Hubert Baumeister DTU Compute Technical University of Denmark Spring 2013 Contents Course Introduction Introduction to Software Engineering Practical

More information

Technology Tutorial. - Details and Advanced Concepts - Patrick Könemann Software Engineering 2 (02162)

Technology Tutorial. - Details and Advanced Concepts - Patrick Könemann Software Engineering 2 (02162) Technology Tutorial Software Engineering 2 (02162) - Details and Advanced Concepts - Patrick Könemann (pk@imm.dtu.dk) Oct 19 th 2009 Previous Tutorials. 1. A view and a selection listener for file types

More information

02291: System Integration

02291: System Integration 02291: System Integration Hubert Baumeister hub@imm.dtu.dk Spring 2012 Contents 1 General Information 1 2 Overview 3 3 Introduction to UML 11 4 Summary 16 1 General Information System Integration Type

More information

Best Practices for Final Year Projects

Best Practices for Final Year Projects City University of Hong Kong Software Engineering Best Practices for Final Year Projects by Dr. Andy Chun, Hon Wai Subject Group Leader for SE Department of Computer Science Software Engineering Best Practices

More information

02291: System Integration

02291: System Integration 02291: System Integration Week 10 Hubert Baumeister huba@dtu.dk DTU Compute Technical University of Denmark Spring 2018 Last Week Principles of good design: layered architecture Software Development Processes

More information

Colored Petri Net Evaluation Tool. Stephen Rojcewicz CS 2310

Colored Petri Net Evaluation Tool. Stephen Rojcewicz CS 2310 Colored Petri Net Evaluation Tool Stephen Rojcewicz CS 2310 Motivating Example (Colored Petri Nets) Consider a gesture-driven application interface. The system must detect three kinds of gestures and respond

More information

Agile Manifesto & XP. Topics. Rapid software development. Agile methods. Chapter ) What is Agile trying to do?

Agile Manifesto & XP. Topics. Rapid software development. Agile methods. Chapter ) What is Agile trying to do? Topics 1) What is trying to do? Manifesto & XP Chapter 3.1-3.3 2) How to choose plan-driven vs? 3) What practices go into (XP) development? 4) How to write tests while writing new code? CMPT 276 Dr. B.

More information

Activities Common to Software Projects. Software Life Cycle. Activities Common to Software Projects. Activities Common to Software Projects

Activities Common to Software Projects. Software Life Cycle. Activities Common to Software Projects. Activities Common to Software Projects Activities Common to Software Projects Software Life Cycle Mark van den Brand Requirements and specification Domain analysis Defining the problem Requirements gathering Obtaining input from as many sources

More information

The etrice Eclipse Project Proposal

The etrice Eclipse Project Proposal The etrice Eclipse Project Proposal Dipl.-Ing. Thomas Schütz, Protos Software GmbH Eclipse Embedded Day 2010, Stuttgart Agenda Motivation Scope of etrice ROOM Language Codegenerators Middleware Realization

More information

SAP Edge Services, cloud edition Edge Services Predictive Analytics Service Guide Version 1803

SAP Edge Services, cloud edition Edge Services Predictive Analytics Service Guide Version 1803 SAP Edge Services, cloud edition Edge Services Predictive Analytics Service Guide Version 1803 Table of Contents MACHINE LEARNING AND PREDICTIVE ANALYTICS... 3 Model Trained with R and Exported as PMML...

More information

Model-based Software Engineering (02341, spring 2017) Ekkart Kindler

Model-based Software Engineering (02341, spring 2017) Ekkart Kindler Model-based Software Engineering (02341, spring 2017) Meta-modelling and Domain Specific Languages (DSLs) Idea for some Software 3 Example of a Petri net request 1 request 2 critical 1 critical 2 semaphor

More information

5 reasons I am excited about IoT and Cortana Analytics

5 reasons I am excited about IoT and Cortana Analytics 5 reasons I am excited about IoT and Cortana Analytics Iman Eftekhari b-imefte@microsoft.com i.e@agilebi.com.au Iman Eftekhari BI Consultant and Agile Coach Microsoft P-TSP Data Analytics MCSE (BI), MCITP

More information

Software Development Process Models

Software Development Process Models Software Development Process Models From classical notions to more agile approaches th@cs.toronto.edu, BA8134 Code & Fix or Cowboy Coding 1) Write program 2) Test and fix program Problems: program users

More information

Internet of Things: Demonstration. Mr. Bernard G. Cruz Lecturer

Internet of Things: Demonstration. Mr. Bernard G. Cruz Lecturer Internet of Things: Demonstration Mr. Bernard G. Cruz Lecturer I N T E R N E T a network of networks using a physical cable or wireless media for connection interconnection of all LANs and WANs across

More information

Model-based Software Engineering (02341, Spring 2017) Ekkart Kindler

Model-based Software Engineering (02341, Spring 2017) Ekkart Kindler Model-based Software Engineering (02341, Spring 2017) Code snippets (week 2) Ecore model from T01 3 Generated Code // All comments and imports deleted! package dk.dtu.compute.mbse.petrinet; Interface only

More information

Abstract. 1. Introduction. 2. AJAX overview

Abstract. 1. Introduction. 2. AJAX overview Asynchronous JavaScript Technology and XML (AJAX) Chrisina Draganova Department of Computing, Communication Technology and Mathematics London Metropolitan University 100 Minories, London EC3 1JY c.draganova@londonmet.ac.uk

More information

The epnk: An extensible Petri net tool for PNML. Ekkart Kindler

The epnk: An extensible Petri net tool for PNML. Ekkart Kindler The epnk: An extensible Petri net tool for PNML New Petri net type 2 Define a Petri Net Type What should it take to define this new Petri Net type conceptually? 3 Define a Petri Net Type ( self.source.ocliskindof(pnmlcoremodel::placenode)

More information

Modellierung operationaler Aspekte von Systemarchitekturen. Master Thesis presentation. October 2005 March Mirko Bleyh - Medieninformatik

Modellierung operationaler Aspekte von Systemarchitekturen. Master Thesis presentation. October 2005 March Mirko Bleyh - Medieninformatik Modellierung operationaler Aspekte von Systemarchitekturen Master Thesis presentation October 2005 March 2006 Agenda Goals Model-Driven Software Development Pro-active Infrastructure (PAI) Operational

More information

(Movement - Synthesis) Improve existing programming skills by developing much larger and more complex programs than in previous classes.

(Movement - Synthesis) Improve existing programming skills by developing much larger and more complex programs than in previous classes. Location MWF 1205-1255 Klaus 1443 Class Objective Purpose: CS2340 takes students who know an object-oriented language, and focuses on getting them to use that language in a true object-oriented style.

More information

DAT159 Refactoring (Introduction)

DAT159 Refactoring (Introduction) DAT159 Refactoring (Introduction) Volker Stolz 1, with contributions by: Larissa Braz 2, Anna M. Eilertsen 3, Fernando Macías 1, Rohit Gheyi 2 Western Norway University of Applied Sciences, Universidade

More information

Software Engineering I (02161)

Software Engineering I (02161) Software Engineering I (02161) Week 1 Assoc. Prof. Hubert Baumeister DTU Compute Technical University of Denmark Spring 2016 Contents Course Introduction Introduction to Software Engineering Practical

More information

Advanced Topics in Software Engineering (02265) Ekkart Kindler

Advanced Topics in Software Engineering (02265) Ekkart Kindler Advanced Topics in Software Engineering (02265) III. Meta-modelling 2 1. Background / Motivation Mid / end 90ties: CASE (Computer Aided Software Engineering) modelling tools become more popular code generation

More information

02291: System Integration

02291: System Integration 02291: System Integration Hubert Baumeister hub@imm.dtu.dk Spring 2011 Contents 1 Recap 1 2 More UML Diagrams 2 2.1 Object Diagrams........................................... 2 2.2 Communication Diagrams......................................

More information

Com S/Geron 415X Gerontechnology in Smart Home Environments Lecture 9 Intro to Service Computing. Dr. Hen-I Yang ComS Dept., ISU

Com S/Geron 415X Gerontechnology in Smart Home Environments Lecture 9 Intro to Service Computing. Dr. Hen-I Yang ComS Dept., ISU Com S/Geron 415X Gerontechnology in Smart Home Environments Lecture 9 Intro to Service Computing Dr. Hen-I Yang ComS Dept., ISU Feb. 22, 2011 Reflection Peeking Ahead Today (2/22) Introduction to Service

More information

Course Information

Course Information Course Information 2018-2020 Master of Information Systems: Digital Business System Institutt for teknologi / Department of Technology Index Index... i 1 s... 1 1.1 Content... 1 1.2 Name... 1 1.3 Programme

More information

Object-oriented development. Object-oriented Design. Objectives. Characteristics of OOD. Interacting objects. Topics covered

Object-oriented development. Object-oriented Design. Objectives. Characteristics of OOD. Interacting objects. Topics covered Object-oriented development Object-oriented Design Object-oriented analysis, design and programming are related but distinct. OOA is concerned with developing an object model of the application domain.

More information

Your Student s Head Start on Career Goals and College Aspirations

Your Student s Head Start on Career Goals and College Aspirations Your Student s Head Start on Career Goals and College Aspirations INFORMATION TECHNOLOGY (IT) NETWORKING PATHWAY The Destinations Networking Pathway prepares students to test and evaluate computer network

More information

Introduction to MDE and Model Transformation

Introduction to MDE and Model Transformation Vlad Acretoaie Department of Applied Mathematics and Computer Science Technical University of Denmark rvac@dtu.dk DTU Course 02291 System Integration Vlad Acretoaie Department of Applied Mathematics and

More information

Language engineering and Domain Specific Languages

Language engineering and Domain Specific Languages Language engineering and Domain Specific Languages Perdita Stevens School of Informatics University of Edinburgh Plan 1. Defining languages 2. General purpose languages vs domain specific languages 3.

More information

Reconciling TGGs with QVT

Reconciling TGGs with QVT Faculty for Computer Science Software Engineering Group Warburger Straße 100 33098 Paderborn Germany A Study of Model Transformation Technologies: Reconciling TGGs with QVT Diploma Thesis by Joel Greenyer

More information

Model-based Software Engineering (02341, spring 2016) Ekkart Kindler

Model-based Software Engineering (02341, spring 2016) Ekkart Kindler Model-based Software Engineering (02341, spring 2016) Meta-modelling and Domain Specific Languages (DSLs) Idea for some Software 3 Example of a Petri net request 1 request 2 critical 1 critical 2 semaphor

More information

(800) Toll Free (804) Fax Introduction to Java and Enterprise Java using Eclipse IDE Duration: 5 days

(800) Toll Free (804) Fax   Introduction to Java and Enterprise Java using Eclipse IDE Duration: 5 days Course Description This course introduces the Java programming language and how to develop Java applications using Eclipse 3.0. Students learn the syntax of the Java programming language, object-oriented

More information

Plan. Language engineering and Domain Specific Languages. Language designer defines syntax. How to define language

Plan. Language engineering and Domain Specific Languages. Language designer defines syntax. How to define language Plan Language engineering and Domain Specific Languages Perdita Stevens School of Informatics University of Edinburgh 1. Defining languages 2. General purpose languages vs domain specific languages 3.

More information

Testing. in A Large scale agile Development Environment

Testing. in A Large scale agile Development Environment Testing in A Large scale agile Development Environment Content/agenda 1. Introduction 2. Agile on a large scale 3. Testing in a large scale agile environment 4. Conclusion Testing in large scale Agile

More information

Our project was about the development of a platform IoT used by Terra Nostra house.

Our project was about the development of a platform IoT used by Terra Nostra house. 1 TABLE DES MATIERES I- General aspect... 3 1. Context... 3 2. Product description... 3 3. Product purpose... 4 II- Terra Nostra data recovery.... 4 1. Theory... 4 2. Implementation... 5 III- Data visualisation

More information

Introduction to Extreme Programming. Extreme Programming is... Benefits. References: William Wake, Capital One Steve Metsker, Capital One Kent Beck

Introduction to Extreme Programming. Extreme Programming is... Benefits. References: William Wake, Capital One Steve Metsker, Capital One Kent Beck Introduction to Extreme Programming References: William Wake, Capital One Steve Metsker, Capital One Kent Beck Extreme Programming is... Lightweight software development method used for small to medium-sized

More information

Computation Independent Model (CIM): Platform Independent Model (PIM): Platform Specific Model (PSM): Implementation Specific Model (ISM):

Computation Independent Model (CIM): Platform Independent Model (PIM): Platform Specific Model (PSM): Implementation Specific Model (ISM): viii Preface The software industry has evolved to tackle new approaches aligned with the Internet, object-orientation, distributed components and new platforms. However, the majority of the large information

More information

Chapter 3. Interactive Software Development Assistants Logic-based Software Representation. Logic-based Software Analysis

Chapter 3. Interactive Software Development Assistants Logic-based Software Representation. Logic-based Software Analysis Advanced Logic Programming Summer semester 2012 R O O T S Chapter 3. Logic-based Analysis Interactive Development Assistants Logic-based Representation Logic-based Analysis Logic-based Transformation Motivation

More information

Coral: A Metamodel Kernel for Transformation Engines

Coral: A Metamodel Kernel for Transformation Engines Coral: A Metamodel Kernel for Transformation Engines Marcus Alanen and Ivan Porres TUCS Turku Centre for Computer Science Department of Computer Science, Åbo Akademi University Lemminkäisenkatu 14, FIN-20520

More information

James Donahue Control Consultants, Inc.

James Donahue Control Consultants, Inc. James Donahue Control Consultants, Inc. Founded 1989 NE s premier distributor of Building Automation products Customer Base: Controls Contractors and Systems Integrators In-House Engineering Department

More information

Proseminar. (with Eclipse) Jun.-Prof. Dr.-Ing. Steffen Becker. Model-Driven Software Engineering. Software Engineering Group

Proseminar. (with Eclipse) Jun.-Prof. Dr.-Ing. Steffen Becker. Model-Driven Software Engineering. Software Engineering Group Proseminar Model-Driven Software Engineering (with Eclipse) Jun.-Prof. Dr.-Ing. Steffen Becker Model-Driven Software Engineering Software Engineering Group 1 Outline Basic Requirements Preliminary Dates

More information

INTERNET OF THINGS FOR SMART CITIES BY ZANELLA ET AL.

INTERNET OF THINGS FOR SMART CITIES BY ZANELLA ET AL. INTERNET OF THINGS FOR SMART CITIES BY ZANELLA ET AL. From IEEE INTERNET OF THINGS JOURNAL, VOL. 1, NO. 1, FEBRUARY 2014 Presented by: Abid Contents Objective Introduction Smart City Concept & Services

More information

Building Control GAMMA instabus

Building Control GAMMA instabus The worldwide standard for home and building control Building Control GAMMA instabus siemens.com/gamma The comprehensive GAMMA instabus product portfolio comprises intelligent devices and is your key to

More information

DESIGN, EVOLUTION AND USE

DESIGN, EVOLUTION AND USE DESIGN, EVOLUTION AND USE of KernelF voelter@acm.org www.voelter.de @markusvoelter Markus Völter Check out the paper! http://voelter.de/data /pub/kernelf-icmt.pdf EXAMPLE 1 Healthcare 1 Context Mobile

More information

Preserving Non-essential Information Related to the Presentation of a Language Instance. Terje Gjøsæter and Andreas Prinz

Preserving Non-essential Information Related to the Presentation of a Language Instance. Terje Gjøsæter and Andreas Prinz Preserving Non-essential Information Related to the Presentation of a Language Instance Terje Gjøsæter and Andreas Prinz Faculty of Engineering and Science, University of Agder Serviceboks 509, NO-4898

More information

Chair of Software. Engineering. Overview. School of Business Informatics and Mathematics. 1. Find out why software engineering is important

Chair of Software. Engineering. Overview. School of Business Informatics and Mathematics. 1. Find out why software engineering is important 1 Overview 1. Find out why software engineering is important Chair of Software see some software engineering failures Engineering 2. Get acquainted with the Chair of Software Engineering the research the

More information

Software Engineering I (02161)

Software Engineering I (02161) Software Engineering I (02161) Week 1 Assoc. Prof. Hubert Baumeister DTU Compute Technical University of Denmark Spring 2017 Contents Course Introduction Introduction to Software Engineering Practical

More information

A Visual Editor for Reconfigurable Object Nets based on the ECLIPSE Graphical Editor Framework

A Visual Editor for Reconfigurable Object Nets based on the ECLIPSE Graphical Editor Framework A Visual Editor for Reconfigurable Object Nets based on the ECLIPSE Graphical Editor Framework Enrico Biermann, Claudia Ermel, Frank Hermann and Tony Modica Technische Universität Berlin, Germany {enrico,lieske,frank,modica}@cs.tu-berlin.de

More information

School of Computer Science

School of Computer Science School of Computer Science Computer Science (CS) modules CS1002 Object-Oriented Programming Computer Science - 1000 & 2000 Level - 2016/7 - December 2016 SCOTCAT Credits: 20 SCQF Level 7 Semester: 1 3.00

More information

Automated Unit Testing A Practitioner's and Teacher's Perspective

Automated Unit Testing A Practitioner's and Teacher's Perspective Automated Unit Testing A Practitioner's and Teacher's Perspective Prof. Peter Sommerlad HSR - Hochschule für Technik Rapperswil Institute for Software Oberseestraße 10, CH-8640 Rapperswil peter.sommerlad@hsr.ch

More information

Frustrated by all the hype?

Frustrated by all the hype? Fundamentals of Software Architecture Looking beyond the hype Markus Völter (voelter@acm.org) Introduction Frustrated by all the hype? If so this presentation is for you. Otherwise you should leave People

More information

INF5120 and INF9120 Modelbased System development

INF5120 and INF9120 Modelbased System development INF5120 and INF9120 Modelbased System development Lecture 5: 13.02.2016 Arne-Jørgen Berre arneb@ifi.uio.no and Arne.J.Berre@sintef.no Telecom and Informatics 1 Course parts (16 lectures) - 2017 January

More information

XP Evolution Rachel Davies

XP Evolution Rachel Davies XP Evolution Rachel Davies Sept 10, 2005 2005 Agile Experience Ltd. 1 What is XP? 1.eXtreme Programming (XP) is so named because it raises practices that improve code quality to extreme levels 2. XP is

More information

No SVN checkout today. Object-Oriented Design

No SVN checkout today. Object-Oriented Design No SVN checkout today Object-Oriented Design Software development methods Object-oriented design with CRC cards LayoutManagers for Java GUIs BallWorlds work time Analysis Design Implementation Software

More information

Defining Domain-Specific Modeling Languages

Defining Domain-Specific Modeling Languages Defining Domain-Specific Modeling Languages 1 st Oct 2008 Juha-Pekka Tolvanen MetaCase 1 Relevant language classifications to start with General-Purpose / Domain-Specific Narrow area of interest Often

More information

Techniques for the unambiguous specification of software

Techniques for the unambiguous specification of software Formal Techniques for the unambiguous of software Objectives To explain why formal techniques help discover problems in system requirements To describe the use of algebraic techniques for interface To

More information

Introduction. Software Architecture VO/KU ( / ) Roman Kern. KTI, TU Graz

Introduction. Software Architecture VO/KU ( / ) Roman Kern. KTI, TU Graz Introduction Software Architecture VO/KU (707.023/707.024) Roman Kern KTI, TU Graz 2013-10-02 Roman Kern (KTI, TU Graz) Introduction 2013-10-02 1 / 32 Introduction Introduction Basic organisational information

More information

Lecture 7: Software Processes. Refresher: Software Always Evolves

Lecture 7: Software Processes. Refresher: Software Always Evolves Lecture 7: Software Processes What is a Software Development Process? The Lifecycle of a Software Project Agile vs. Disciplined Some common approaches: RUP, SCRUM, XP, ICONIX, Where UML fits in (next lecture)

More information

Model Driven Engineering (MDE)

Model Driven Engineering (MDE) Model Driven Engineering (MDE) Yngve Lamo 1 1 Faculty of Engineering, Bergen University College, Norway 26 April 2011 Ålesund Outline Background Software Engineering History, SE Model Driven Engineering

More information

Design and Prototypical Implementation of a Pivot Model as Exchange Format for Models and Metamodels in a QVT/OCL Development Environment

Design and Prototypical Implementation of a Pivot Model as Exchange Format for Models and Metamodels in a QVT/OCL Development Environment Faculty of Computer Science, Institute for Software- and Multimedia-Technology, Chair for Software Technology Matthias Bräuer Design and Prototypical Implementation of a Pivot Model as Exchange Format

More information

Topic 01. Software Engineering, Web Engineering, agile methodologies.

Topic 01. Software Engineering, Web Engineering, agile methodologies. Topic 01 Software Engineering, Web Engineering, agile methodologies. 1 What is Software Engineering? 2 1 Classic Software Engineering The IEEE definition: Software Engineering is the application of a disciplined,

More information

SYLLABUS. 1. Information regarding the programme 1.1 Higher education Babeş-Bolyai University of Cluj-Napoca

SYLLABUS. 1. Information regarding the programme 1.1 Higher education Babeş-Bolyai University of Cluj-Napoca SYLLABUS 1. Information regarding the programme 1.1 Higher education Babeş-Bolyai University of Cluj-Napoca institution 1.2 Faculty Faculty of Mathematics and Computer Science 1.3 Departament Departament

More information

ECLIPSE MODELING PROJECT

ECLIPSE MODELING PROJECT ECLIPSE MODELING PROJECT A Domain-Specific Language Toolkit Richard С. Gronback AAddison-Wesley Upper Saddle River, NJ Boston Indianapolis San Francisco New York Toronto Montreal London Munich Pans Madrid

More information

A Brief Introduction to Coloured Petri Nets

A Brief Introduction to Coloured Petri Nets A Brief Introduction to Coloured Petri Nets Kurt Jensen Computer Science Department, University of Aarhus NyMunkegade, Bldg. 540, DK-8000 AarhusC, Denmark E-mml: kjensen9 WWV~: http://www.daimi.aau.dk/~kjensen/

More information

Creating a Java Internet of Things Gateway. David Woodard, Eurotech

Creating a Java Internet of Things Gateway. David Woodard, Eurotech Creating a Java Internet of Things Gateway David Woodard, Eurotech Sometimes IoT Solutions look simple A single application to communicate with Business Application No connectivity options required Internet

More information

National Council for Higher Education. Minimum standards for the courses of Study in. Bachelor of Science in Software Engineering

National Council for Higher Education. Minimum standards for the courses of Study in. Bachelor of Science in Software Engineering National Council for Higher Education Minimum standards for the courses of Study in Bachelor of Science in Software Engineering 2011 1 1. INTRODUCTION 4 2. ANALYSIS OF THE COURSES THAT ARE TAUGHT AT MAKERERE

More information

A Simulator for high level Petri Nets: Model based design and implementation

A Simulator for high level Petri Nets: Model based design and implementation A Simulator for high level Petri Nets: Model based design and implementation Mindaugas Laganeckas Kongens Lyngby 2012 IMM-M.Sc.-2012-101 Technical University of Denmark Informatics and Mathematical Modelling

More information

Software Engineering Chap.7 - Design and Implementation

Software Engineering Chap.7 - Design and Implementation Software Engineering Chap.7 - Design and Implementation Simão Melo de Sousa RELEASE (UBI), LIACC (Porto), CCTC (Minho) Computer Science Department University of Beira Interior, Portugal Eng.Info./TSI,

More information

COP 1170 Introduction to Computer Programming using Visual Basic

COP 1170 Introduction to Computer Programming using Visual Basic Course Justification This course is the first computer programming course in the Computer Information Systems Associate in Arts degree program; is required in the Computer Programming and Analysis, Database

More information

Masters in Advanced Computer Science

Masters in Advanced Computer Science Masters in Advanced Computer Science Programme Requirements Taught Element, and PG Diploma in Advanced Computer Science: 120 credits: IS5101 CS5001 up to 30 credits from CS4100 - CS4450, subject to appropriate

More information

!MDA$based*Teaching*and* Research*in*Software*Engineering*!

!MDA$based*Teaching*and* Research*in*Software*Engineering*! Plan!MDA$based*Teaching*and* Research*in*Software*Engineering*! Ludwik!Kuźniarz! Blekinge*Institute*of*Technology* School*of*Computing* Sweden*! Myself! Driven Architecture! MDA based Reaserch! Sample

More information

Automation Systems Discrete Event Control Systems and Networked Automation Systems

Automation Systems Discrete Event Control Systems and Networked Automation Systems Automation Systems Discrete Event Control Systems and Networked Automation Systems 2 nd Lecture Control Design Process System theory or Software-Engineering? System Theory Starting point: mathematical

More information

Smart Homes and Cities

Smart Homes and Cities Smart Homes and Cities 1 Wireless Sensors at Smart Home Security sensors, cameras, thermostats, smart plugs, lights, Entertainment systems. Do-it-Yourself (DIY) sensors Actuators Smart plug Motion detector

More information

Solutions for office buildings

Solutions for office buildings Solutions for office buildings Office buildings are a mess! They use way too much energy They are very hard to monitor They are not flexible They generate dissatisfaction They have a strong negative impact

More information

CONTENTS. PART 1 Structured Programming 1. 1 Getting started 3. 2 Basic programming elements 17

CONTENTS. PART 1 Structured Programming 1. 1 Getting started 3. 2 Basic programming elements 17 List of Programs xxv List of Figures xxix List of Tables xxxiii Preface to second version xxxv PART 1 Structured Programming 1 1 Getting started 3 1.1 Programming 3 1.2 Editing source code 5 Source code

More information

Final Exam. Programming Assignment 3. University of British Columbia CPSC 111, Intro to Computation Alan J. Hu. Readings

Final Exam. Programming Assignment 3. University of British Columbia CPSC 111, Intro to Computation Alan J. Hu. Readings University of British Columbia CPSC 111, Intro to Computation Alan J. Hu Interfaces vs. Inheritance Abstract Classes Inner Classes Readings This Week: No new readings. Consolidate! (Reminder: Readings

More information

Model driven Engineering & Model driven Architecture

Model driven Engineering & Model driven Architecture Model driven Engineering & Model driven Architecture Prof. Dr. Mark van den Brand Software Engineering and Technology Faculteit Wiskunde en Informatica Technische Universiteit Eindhoven Model driven software

More information

byneuron A BUILDING MANAGEMENT SYSTEM CONTROLS YOUR BUILDING BUT WHO CONTROLS YOUR MANAGEMENT SYSTEM?

byneuron A BUILDING MANAGEMENT SYSTEM CONTROLS YOUR BUILDING BUT WHO CONTROLS YOUR MANAGEMENT SYSTEM? A BUILDING MANAGEMENT SYSTEM CONTROLS YOUR BUILDING BUT WHO CONTROLS YOUR MANAGEMENT SYSTEM? byneuron MASTER BUILDING MANAGEMENT SYSTEM For advanced analytics and smarter building energy management Buildings

More information

Object-oriented Design

Object-oriented Design Object-oriented Design Objectives To explain how a software design may be represented as a set of interacting objects that manage their own state and operations To describe the activities in the objectoriented

More information

CSSE 490 Model-Based Software Engineering: Introduction to Domain Engineering

CSSE 490 Model-Based Software Engineering: Introduction to Domain Engineering CSSE 490 Model-Based Software Engineering: Introduction to Domain Engineering Shawn Bohner Office: Moench Room F212 Phone: (812) 877-8685 Email: bohner@rose-hulman.edu Learning Outcomes: Metamodels Design

More information

How to Build an Appium Continuous Testing Pipeline

How to Build an Appium Continuous Testing Pipeline How to Build an Appium Continuous Testing Pipeline Step-by-Step Tutorial November, 2017 Today s speakers Guy Arieli, CTO, Experitest Ruth Zamir Marketing Director Experitest 01 Why do we need continuous

More information

the gamedesigninitiative at cornell university Lecture 12 Architecture Design

the gamedesigninitiative at cornell university Lecture 12 Architecture Design Lecture 12 Take Away for Today What should lead programmer do? How do CRC cards aid software design? What goes on each card? How do you lay m out? What properties should y have? How do activity diagrams

More information

the gamedesigninitiative at cornell university Lecture 13 Architecture Design

the gamedesigninitiative at cornell university Lecture 13 Architecture Design Lecture 13 Take Away for Today What should lead programmer do? How do CRC cards aid software design? What goes on each card? How do you lay m out? What properties should y have? How do activity diagrams

More information