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

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

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

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

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

Advanced Topics in Software Engineering (02265) Ekkart Kindler

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

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

Advanced Topics in Software Engineering (02265) Ekkart Kindler

Advanced Topics in Software Engineering (02265) Ekkart Kindler

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

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

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

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

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

Compositional Model Based Software Development

Language engineering and Domain Specific Languages

Test Driven Development. René Barto SES Agile Development - Test Driven Development

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

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

Advanced Topics in Software Engineering (02265) Ekkart Kindler

Defining Domain-Specific Modeling Languages

CS 240 Fall 2015 Section 004. Alvin Chao, Professor

Programming for Engineers in Python

29-Jan-15. Faculty of Electrical Engineering and Computer Science. University of Maribor

Which is the Best Modeling Language? Sukriti Goel Tutorial BPM 2013 August 2013

Colored Petri Net Evaluation Tool. Stephen Rojcewicz CS 2310

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

Software Life Cycle. Main issues: Discussion of different life cycle models Maintenance or evolution

One and a half hours. Appendix A is located at the back of the exam UNIVERSITY OF MANCHESTER SCHOOL OF COMPUTER SCIENCE

CS2112 Fall Assignment 4 Parsing and Fault Injection. Due: March 18, 2014 Overview draft due: March 14, 2014

AGILE. Getting Started on Your Team. Davisbase. Copyright 2011 Davisbase LLC. Licensed for Classroom Use to ASPE for Webinar Use Only

Announcements. Course syllabus Tutorial/lab signup form (due 4pm today) Lecture 1 notes Homework 1 Initial assessment

Introduction to MDE and Model Transformation

02291: System Integration

A universal PNML Tool. Lukasz Zoglowek

CS 220: Introduction to Parallel Computing. Arrays. Lecture 4

Introduction to Software Engineering (2+1 SWS) Winter Term 2009 / 2010 Dr. Michael Eichberg Vertretungsprofessur Software Engineering Department of

Triple Graph Grammars: Concepts, Extensions, Implementations, and Application Scenarios

MTAT Software Engineering. Written Exam 17 January Start: 9:15 End: 11:45

It s all Done with Mirrors Patterns and OCL. KMF Kent Modelling Framework D.H.Akehurst and O.Patrascoiu

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

Object-Oriented Programming Fall Robert Grimm, New York University

CMPE/SE 135 Object-Oriented Analysis and Design

The Specifications Exchange Service of an RM-ODP Framework

Assignment Tutorial.

Chapter 4 Requirements Elicitation

USC Viterbi School of Engineering

Programming (ERIM) Lecture 1: Introduction to programming paradigms and typing systems. Tommi Tervonen

Static Program Analysis

Agile Methodologies via Kanban and GitHub

NOTE: This syllabus is subject to change during the semester. Please check this syllabus on a regular basis for any updates.

Programming (Econometrics)

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

BSc (Hons) Information Systems - IC 311

UML big picture. Perdita Stevens. School of Informatics University of Edinburgh

Reconciling TGGs with QVT

Introduction to the Semantic Web

Announcements. 1. Forms to return today after class:

Outline. A little history. Outline. The Unified Modeling Language Opportunities and Challenges for Formal Methods

A few more things about Agile and SE. Could help in interviews, but don t try to bluff your way through

OHJ-306x: Software Testing Introduction to the Course Project Part 1: General Information and Project phases 1 & 2: Unit testing

Introduction to Computing Systems: From Bits and Gates to C and Beyond 2 nd Edition

Today s Topic. Lecture 5. What is UML? Why Use UML. UML Diagrams. Introduction to UML. What is UML Why use UML? UML Diagrams

Horváth Ákos Bergmann Gábor Dániel Varró István Ráth

CS153: Compilers Lecture 1: Introduction

Introduction to Computation and Problem Solving

Lecture 34 SDLC Phases and UML Diagrams

Lecture 1: Overview

AMFIBIA: A Meta-Model for the Integration of Business Process Modelling Aspects

Best Practices for Final Year Projects

Agile vs Fragile. Susmit Bhattacharya, Solution Architect, Asia Pacific. - The need for Automation in Agile Tricentis GmbH. All Rights Reserved.

02291: System Integration

2011 Annual Ryan White HIV/AIDS Program Regional Data Training 9/27/2013

Software Architecture

Blackboard course design

Language Extension and Composition with Language Workbenches

A state-based 3-way batch merge algorithm for models serialized in XMI

Development Processes Agile Adaptive Planning. Stefan Sobek

Week - 01 Lecture - 04 Downloading and installing Python

COMP 388/441 HCI: Introduction. Human-Computer Interface Design

In previous episodes In next episodes

Experience-based Refactoring for Goal- oriented Software Quality Improvement

RECODER - The Architecture of a Refactoring System

Activity Nets: A UML profile for modeling workflow and business processes

COMP90015: Distributed Systems Assignment 1 Multi-threaded Dictionary Server (15 marks)

I Travel on mobile / FR

Design Patterns with Fujaba Intense Course, 5th-9th October Ruben Jubeh

Homework , Fall 2013 Software process Due Wednesday, September Automated location data on public transit vehicles (35%)

CS560: Formal Modelling and Implementation of Systems (Term II) Lecture: CASE A. O Riordan, 2009.

EMF Compare Galileo Simultaneous Release

Model Driven Engineering (MDE)

Lecture Notes on CASE-Tools: Together

of making things look better with CSS, and you have a much better platform for interface development.

Definition of Information Systems

NOTE: This syllabus is subject to change during the semester. Please check this syllabus on a regular basis for any updates.

Management. Software Quality. Dr. Stefan Wagner Technische Universität München. Garching 28 May 2010

Software Design and Analysis CSCI 2040

1 of :22

PragmaDev. change request. Emmanuel Gaudin. PragmaDev ITU-T SG17 change request Grimstad June 24,

ISO/IEC INTERNATIONAL STANDARD. Software and system engineering High-level Petri nets Part 1: Concepts, definitions and graphical notation

Transcription:

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 New this year! Organisation of this course Project (and tutorials) The task Organisation Forming the groups 3

Weekly Schedule (roughly) Mon Tue Wed Thu Fri 8-10 lecture 10-12 project 13-15 tutorial 15-17 project lecture tutorial project 4

1. Motivation Objectives of this course: Skills in software engineering! What is software engineering? What is software? software = program software engineering = programming 5

Program vs. Software is much more than Software >> Program Software Engineering >>> Programming is much much more than 6

Programming vs. SE Software Software Engineer Software Engineering Program Programmer Programming 7

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

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

Analogy revisited Effort per participant 10 ECTS = ca. 270h work ca. 20h/week The experience of a big project cannot be replaced by the experience of many small ones. 10

Objective Practice the concepts, methods, notations and tools for software engineering improve programming skills understanding of the software engineering process agile practices experiences with problems and concepts for solving them writing and creating documents and models use of methods and tools practice communication and presentation skills capability of teamwork and leadership acquire new technologies 11

Excursion: CDIO Conceive Design Implement Operate 12

Co-evolution What should the software do? WHAT HOW How is it realized? 13

Co-evolution WHAT HOW 14

Questions Why do so many software projects fail? Why is software development so hard (or at least harder as we believe)? BTW: What is software? 15

Software The sum of all programs, procedures and objects along with the associated data and documentation, which are necessary (or at least desirable) for running an application on a computer system. [free translation of the German Informatik DUDEN and Hesse s definition] 16

Software is becoming more and more complex! Exponential growth of software (in lines of code LOC) within the same product line: Apollo (NASA s Apollo programme) Cars (automotive software) 17

Software cannot be programmed by a single person anymore; a single person cannot fully comprehend all the details of software any more. Efforts of 10 to 100 person years (PYs) are quite standard in software development. 18

Software is intangible. You cannot touch, see or feel software. Humans lack a natural feeling of software and its complexity. 19

Software does not wear out, but becomes of age anyway (in relation to the environment it is running in and the expectations of the end user)! Software needs maintenance! But, this does not mean the same as in traditional engineering (e.g. in mechanical engineering, where systems physically wear out). 20

Software lives longer than its creators expected it to live. 21

Software is everywhere and many lifes depend on it. 22

Software Engineering is much more than programming! listening and understanding! analytic and conceptual work! communication! a social process! acquiring new technologies! 23

Problems imprecise requirements mistakable and unclear requirements inconsistent requirements changing requirements changing environments (software / hardware) different versions and configurations changing tools, notations, languages, methods, concepts, technologies collective knowledge only communication 24

Software engineering is the sum of all means, facilities, procedures, processes, notations, methods, concepts for developing, operating and maintaining a software system. 25

Software engineering Branches: Development: actual development of the software product Management: Manage (control and improve) the development process Quality management: Planning and implementing measures that guarantee that the software meets the required quality Software maintenance: Remove faults occurring in operation, adapt software to changing requirements and environments 26

Process models Process models (life cycle models) are the distilled experience of successful software projects. They define a functional procedure along with appropriate documents. What should be done when, by whom and how! document, notation phase role method 27

Process models Problem: Often process models are used very mechanical and in a meaningless way. documents just for the sake of the process (UML) diagrams just for the sake of UML comments just for the sake of comments 28

Rule of thumb When producing and compiling a document, ask yourself: What should the document be good for? Who should be addressed? Which information is expected? What is the common pragmatics? In short: What is reasonable? Here, document can also be code including comments. 29

2. Agile Development Since we use agile development from day 1, we discuss the motivation of agile development and the used practices already today. We will provide some details, the theoretical underpinning and justification later. 30

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. 2001 31

Agile Practices We will talk about the values, principles, and core concepts and activities of agile development later in this course (week 3) For now, we discuss the core agile practices used in this course 32

Agile Practices On-site customer (Ekkart and sometimes, staff from NorthQ) Small/short releases 2-3 week (see schedule) Planning game (for next release) 33

Agile Practices Coding standards (openhab comes with explicit coding standards anyway) Testing (automated unit test) Continuous integration (use of GitHub and Jenkins; in this course, each group will obtain a VM with Jenkins installed) 34

Agile Practices Pair programming (all code developed and checked in by two persons) Simple design Refactoring 35

Status reports In the tutorial/project session each Friday (13-15) status report by each group (10 minutes each) can include brief code reviews and demos of running software (CI) and retrospective: what went well what did not go well what can we do about it what s up next 36

3. Models in SE and a glimpse of how software can be developed by using models without doing any programming at all. 37

Modelling 38

A Model (Petri net) request 1 request 2 critical 1 critical 2 semaphor idle 1 idle 2 39

Stages Examples Taxonomy (done on blackboard) Glossary Model (see next slide) 40

Models and Meta Models PetriNet * Object context Arc inv: ( self.source.ocliskindof(place) and self.target.ocliskindof(transition) ) or ( self.source.ocliskindof(transition) and self.target.ocliskindof(place) ) Petri net model Node 1 source 1 target Arc Transition Place Model Meta model for Petri for nets Petri nets * Token 41

Don t think models as Java PetriNet * Object context Arc inv: ( self.source.ocliskindof(place) and self.target.ocliskindof(transition) ) or ( self.source.ocliskindof(transition) and self.target.ocliskindof(place) ) Petri net model Node 1 source 1 target Arc Transition Place * Token 42

Syntax (abstract and concrete) :Petrinet graphical / concrete syntax :Transition target source :Arc target :Place source :Arc abstract syntax (as an UML object diagram) :Arc :Token :Place source target :Arc source target :Transition 43

Overview PetriNet meta model build-time * Object Node 1 source 1 target Arc is an instance of Transition Place * Token :Petrinet :Transition source :Arc target :Place target source model runtime :Arc :Arc :Token :Place source target :Arc source target :Transition 44

Benefits of Modelling Better understanding Mapping of instances to XML syntax (XMI) Automatic code generation API for creating, deleting and modifying model Methods for loading and saving models (in XMI) Standard mechanisms for keeping track of changes (observers) Simple editor (tree editors) 45

Class Diagrams are Models too PetriNet * ClassDiagram Object 1 source Node 1 target Transition Place Arc * Token * Class 1 source 1 target * Association UML model Meta model for UML (class diagrams) The term meta model makes more sense now! 46

Different Meta-levels: MOF ClassDiagram * Class 1 source 1 target * Association PetriNet * Object :Class :Association :Class Node 1 source 1 target Arc :Association Transition Place * Token :Petrinet :Transition source :Arc target :Place target source :Arc :Arc :Token :Place source target :Arc source target :Transition 47

Answers: Program an editor Standard technology for mapping abstract to concrete syntax: EMF / GMF / EMFT 48

EMF/GMF Technology PetriNet meta model Transition * Object Place Arc Node 1 source 1 target Arc is instance of generate an editor Token Transition :Transition source Place :Arc Token * target :Petrinet :Place target source model :Arc :Arc :Token :Place source target :Arc source target :Transition concrete syntax abstract syntax 49

Benefits of Modelling (cntd.) Better Understanding Mapping of instances to XML syntax (XMI) Automatic Code Generation API for creating, deleting and modifying model Methods for loading and saving models (in XMI) Standard mechanisms for keeping track of changes (observers) Editors and GUIs 50

Other UML diagrams In this course, we will use many other kind of UML diagrams, for different purposes Use cases State machines Activity diagrams Sequence diagrams Component diagrams... 51

Models and Agile In agile development models are mostly used for informal discussions and communication! Anyway, in order to practice the effective use of models, you will be required to use models and submit models in the documentation. Documentation is required as part of some releases (and as part of the final submission). 52