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

Similar documents
MAVEN MOCK TEST MAVEN MOCK TEST IV

Selenium Testing Course Content

I Got My Mojo Workin'

MAVEN MOCK TEST MAVEN MOCK TEST I

Topics covered. Introduction to Maven Maven for Dependency Management Maven Lifecycles and Plugins Hands on session. Maven 2

Setting up a Maven Project

Maven. INF5750/ Lecture 2 (Part II)

Beware: Testing RCP Applications in Tycho can cause Serious Harm to your Brain. OSGi p2

AUTOMATION TESTING FRAMEWORK FOR LUMINOUS LMS

Sample Spark Web-App. Overview. Prerequisites

What is Maven? Apache Maven is a software project management and comprehension tool (build, test, packaging, reporting, site, deploy).

Maven POM project modelversion groupid artifactid packaging version name

The Actual Real World at EclipseCon/ALM

4. Check the site specified in previous step to work with, expand Maven osgi-bundles, and select slf4j.api,

Packaging, automation, Continuous Integration

Continuous Integration (CI) with Jenkins

Set up Maven plugins in Eclipse. Creating a new project

Introduction: Manual Testing :

Learning Objectives of CP-SAT v 1.3

Session 24. Spring Framework Introduction. Reading & Reference. dev.to/lechatthecat/how-to-use-spring-boot-java-web-framework-withintellij-idea-202p

Checking Out and Building Felix with NetBeans

Learning Objectives of CP-SAT v 1.31

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

MAVEN INTERVIEW QUESTIONS

SELENIUM. SELENIUM COMPONENTS Selenium IDE Selenium RC Selenium Web Driver Selenium Grid

Unable To The Artifact From Any Repository Maven-clean-plugin

Content. Development Tools 2(57)

Simplified Build Management with Maven

Info Error Deploying Artifact Failed To Transfer File Return Code Is 401

Produced by. Agile Software Development. Eamonn de Leastar

FROM NOTHING TO COMPLETE ENVIRONMENT WITH MAVEN, OOMPH & DOCKER. Max Bureck, 21. June 2017

Step 2. Creating and running a project(core)

Component based Development. Table of Contents. Notes. Notes. Notes. Web Application Development. Zsolt Tóth

Building Java with Plex Services for Eclipse

Introduction to Software Engineering: Tools and Environments. Session 10. Oded Lachish

FIRST STEPS WITH SOFIA2

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

Developing Android applications in Windows

Selenium Online Training Brochure

Create your own Carbon Component. Sameera Jayasoma Technical Lead and Product Manager of WSO2 Carbon

SilkTest Testing Flex Applications

OAuth2 Autoconfig. Copyright

9 Reasons To Use a Binary Repository for Front-End Development with Bower

Creating Custom Builder Components

Distributing JavaFX Applications with Java WebStart and Artifactory

Apache Maven: Best Practices

SELENIUM TRAINING COURSE CONTENT

Hello Maven. TestNG, Eclipse, IntelliJ IDEA. Óbuda University, Java Enterprise Edition John von Neumann Faculty of Informatics Lab 2.

Maven Introduction to Concepts: POM, Dependencies, Plugins, Phases

Turbo boost your digital app test automation with Jenkins

Q: Where can we see the past recorded webinars? A: Much content of this nature may be found online at:

Mend for Eclipse quick start guide local analysis

ONAP Developer Typical Setup 2017 July ONAP Virtual Developers Event

Overview of load testing with Taurus in Jenkins pipeline

STQA Mini Project No. 1

Eclipse Ignore Xml Schema Problems >>>CLICK HERE<<<

DITA Gradle and Git. DITA-OT day Rotterdam

Descartes Modeling Language Quick Start Guide

SECURE PRIVATE VAGRANT BOXES AND MORE WITH A BINARY REPOSITORY MANAGER. White Paper

Extension Kit for.net. SilkTest Testing Flex Applications

Maven 2 & Continuum. by Trygve Laugstøl

What s new in IBM Operational Decision Manager 8.9 Standard Edition

SOA-14: Continuous Integration in SOA Projects Andreas Gies

Class 1 Introduction to Selenium, Software Test Life Cycle.

Technology Background Development environment, Skeleton and Libraries

Sonatype CLM - IDE User Guide. Sonatype CLM - IDE User Guide

Administering Apache Geronimo With Custom Server Assemblies and Maven. David Jencks

PHP Composer 9 Benefits of Using a Binary Repository Manager

Selenium Training. Training Topics

Maven in the wild. An introduction to Maven

If you don t have the JDK, you will need to install it. 1. Go to

Apache Maven. Created by anova r&d bvba

#jenkinsconf. Jenkins user plugin. This time it's. Jenkins User Conference Israel. Shiran JFrog

Chrome if I want to. What that should do, is have my specifications run against four different instances of Chrome, in parallel.

Package Management and Build Tools

BlueMix Hands-On Workshop Lab A - Building and Deploying BlueMix Applications

DevOps and Maven. Eamonn de Leastar Dr. Siobhán Drohan Produced by:

Configure Eclipse with Selenium Webdriver

2 Apache Wink Building Blocks

Installing and Using Acrolinx for SonarQube

Red Hat Developer Tools

Anno Accademico Laboratorio di Tecnologie Web Introduzione ad Eclipse e Tomcat

The Mobile IDE provides Eclipse-based Perspectives, a menu, the mobile source code wizard, the mobile website template wizard, and others.

Application prerequisites

Skyway Builder 6.3 Reference

Inside JIRA scheme, everything can be configured, and it consists of. This section will guide you through JIRA Issue and it's types.

Camera integration with UPnP to openhab Blanc Antoine, Law Christopher RICM4

HP Operations Orchestration

Continuous Integration with Jenkins

TOP REASONS WHY YOU SHOULD SWITCH TO MAVEN 3

Overall Design of SSS Software

HBASE Performance test by YCSB

Running the ESPM Twitter Integration sample app on SAP Cloud Platform

Leveraging the OO Jenkins Plugin in DevOps scenarios

What s NetBeans? Like Eclipse:

Lab 5 Exercise Build and continuous integration tools

Architect your deployment using Chef

ERoom - Accessing the UCCnet Document Repository. Student Guide

RobertaLab: Configuration, Architecture, Frameworks, Design

Comparing graphical DSL editors

Transcription:

Software Engineering 2 A practical course in software engineering

Tutorial 1: Overview of Technologies and Tools

Topics Infrastructure (GitHub) Jenkins Maven Underlying platform/technology openhab Project 3

Jenkins (Integration Server) Tool for Continuous Integration (CI): Code analysis Compile, build and run tests the software on every checkin to the repository in a controlled and explicitly specified environment ( Maven POM files) revert if not successful Deploy software Many Plugins available: Maven 4

Jenkins Material Tutorial https://www.tutorialspoint.com/jenkins/ Homepage: https://jenkins.io/ 5

Maven Project management tool for (Java) applications: Define project dependencies Build projects in a uniform way Test projects Reporting Many plugins: e.g. Surefire (JUnit) Tycho (Eclipse plugin builder) 6

POM Files: Example <?xml version="1.0" encoding="utf-8"?> <project xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"... > <modelversion>4.0.0</modelversion> <parent> <groupid>org.eclipse.smarthome.binding</groupid> <artifactid>pom</artifactid> <version>0.9.0-snapshot</version> </parent> This would require the parent project to be physically located in the super folder! <groupid>org.eclipse.smarthome.binding</groupid> <artifactid>org.eclipse.smarthome.binding.hue</artifactid> <name>eclipse SmartHome hue Binding</name> <packaging>eclipse-plugin</packaging> </project> 7

... <parent> <groupid>org.openhab.binding</groupid> <artifactid>pom</artifactid> <version>2.2.0-snapshot</version> <relativepath></relativepath> </parent> <repositories> <!-- copied from toplevel pom of openhab projects --> <repository> <id>openhab-artifactory-release</id> <name>jfrog Artifactory Repository</name> <url>https://openhab.jfrog.io/openhab/libs-release</url>... Much more here In case, parent is located in a repository 8

Maven stages Maven has different stages: e.g. clean verify package... In Eclipse, a build can be started via Run as by right-clicking on the project s pom.xml file 9

openhab: Installation For installing openhab see: http://docs.openhab.org/developers/development/ide.html You can import existing openhab projects into your workspace (as examples and inspiration for your own): Select: File -> Import -> Oomph -> Projects into Workspace then select: openhab 1 Add-ons And similarly of OH2 projects: Select: File -> Import -> Oomph -> Projects into Workspace then select: openhab 2 Add-ons 10

Launch openhab You can start openhab from the launch project via a right-click on file openhab_runtime.launch You can access the running openhab application in your browser via the URL http://localhost:8080/start/index 11

Open HAB: Concepts Thing ThingType Channel ChannelType State Sometimes the documentation is a bit sloppy about these distinctions Configuration (properties of a thing in openhab) Property Bridge (BridgeType): A thing that can contain other things (often a gatway to access things) 12

Open HAB: Concepts More technical concepts Binding / Binding definitions ThingHandlers ThingHandlerFactories See http://docs.openhab.org/developers/development/ bindings.html and https://www.eclipse.org/smarthome/ documentation/development/bindings/how-to.html for details 13

Project: Group Meetings

User Stories & Tasks Overall (see project page): As a home owner, I want to be able to use NorthQ devices with openhab, so that I can use NorthQ devices together with other devices available in openhab As an inhabitant of some home, I want the openhab system to be aware of my location (even outside the home) so that the system can take actions based on this information (which, for example, could be turning on the heating in my room when I am on my way home from work). As a home owner, I want openhab to collect data from sensors and record events, which later can be visualized and analyzed for "some" purpose so that I can optimize my home (e.g. w.r.t energy consumption, well-being,...). As a home owner, I want that the openhab system and the involved NorthQ system cannot be "hacked" (in particular not through exploiting the extensions), so that I can trust the system.... 15

Release 0 Technical Tasks Set up repository Set up integration server Jenkins (including testing) User Stories: Standalone Java application for visualizing and controlling a light via a Q-Plug visualizing the state of Q-motion Option to turn on Q-plug (light) automatically, when motion is detected 16

Planning Game Discuss (& formulate) stories with project owner Developers estimate stories (how long do they take) If a story is too big, developers split it up in sub-stories and tasks Project owner prioritizes and chooses stories for next release (choose scope) During iteration: Developers, assign and do stories and adjust (if neede together with project owner) 17

Status Report Every Friday session (13-15) each group will give a status report (ca. 10 minutes): What did the group do What went well What did not go well What can you do about it What do you do in next week During the status report, we can do some code review; sometimes Ekkart will explicitly ask to show produced code. 18

Group Meeting Planning game (when Ekkart is visiting group); Report the chosen user stories tasks to Ekkart by email (ekki@dtu.dk) Decide on a group leader and deputy and report it to Ekkart by email after the meeting Assign/chose first tasks (remember: pair programming) Decide on regular group (sub-group) meetings Decide who will do the status report next week Decide how you document and trace your decisions from the meeting 19

Rooms for group meeting Group A: 210.002 Group B: 210.008 Group C: 210.012 Group D: 210.018 20