Humboldt-Universität zu Berlin - Mathematisch-Naturwissenschaftliche Fakultät - Software Engineering

Konsistenzprüfung für Software-Qualitätsmodelle

 


 

Wann und Wo

Semesterprojekt: Montag, 13-17 Uhr, RUD 25, 4.113

Wer

Dozent: M.Sc. Sinem Getir / Prof. Grunske

Beschreibung und Aufbau der Lehrveranstaltung

Achtung: dieser Kurs wird in englischer Sprache gehalten.

 

Today’s large-scale software systems have to satisfy numerous functional and quality requirements. The satisfaction of these requirements should be checked at an abstract model level. Every quality requirement, especially probabilistic quality requirements need to be designed with different and complementary modelling languages (e.g Markov models).

However, abstract models needs validation mainly because of two issues: 1.The abstract model may produce a behaviour which cannot be produced by the software. 2: It does not include some behaviours of the software. Various methods like over-approximation, simulating or learning the event logs of the software systems are a way to create quality models, as well as validating models like conformance checking …etc.

The goals of this project are to design and implement:

  • A tool allowing to check the conformance between the software and the given probabilistic model
  • A tool which keeps consistent when there is a stimuli by the user (change in the usage profile…etc) or version change in the software.

Experiences gained by the participants will include:

  • Managing a software development project (e.g., agile process) in a group
  • Software quality modelling, learning to analyse software with probabilistic models
  • Learning new methods on testing and model checking
  • Using state-of-the-art software technologies and development tools
  • Getting in touch with real challenges from academia and common case studies

 

1st Meeting: 24.04.2017 @ 13:00 in Room 4.413

 

Registration for the Project

  • Send an e-mail to Sinem Getir, which includes your name and your student ID number (Matrikelnummer).

  • Register via AGNES

  • A binding decision for participation is due by April 27, 2017.

 

Timeline

The group is responsible for keeping track of upcoming milestones!

1. Preparation Phase (during lecture period, i.e., until July 21, 2017)

Mon, Apr. 24, 2017 @ 13:00–14:00
 

1st Meeting
(1 hour)

  • Supervisors present project
  • Selection of slot for bi-weekly regular meeting

Apr. 27, 2017 – June. 15, 2017
 

TBD by the group via Doodle or on the first meeting

(Bi-)weekly meetings with the supervisors

  • The group prepares a short summary of achievements, challenges, next steps

mid May 2017 [Tentative]

Seminar talks 1.Presentation
(1.5 hours)

  • Schedule of topics to be organized by the group (topics below)

3rd week of May 2017 [Tentative]

Seminar talks 2.Presentation
(1.5 hours)

  • Schedule of topics to be organized by the group (topics below)

mid June 2017 [Tentative]

Kick-Off Meeting
(25 minutes + discussion)

  • Students present topic, goals, development process, milestone definitions, envisioned approach/architecture, …
    The report includes initial contents (foundations, goals, ...)
2. Development Phase

June 15 - Sep 18, 2017

 

Development phase.
Regular presence/work in the project room is expected.

Weekly meeting with supervisors
TBD by the group

Sep 2017

Status presentation (45 minutes)

Oct 16, 2017 (due) @ 23:59

 

Delivery of artifacts (at time of presentation)

  1. Printout of Report
  2. CD/DVD
  • PDF of report
  • Software (includes experiment data)
  • Presentation slides (incl. all presentations)

Oct 19, 2017

 

Final presentation of results (45 minutes)

 

Deliverables

Presentations

The group should use a consistent template for all presentations!

Reports
  • Contents: Documentation of requirements, foundations, architecture, evaluation results (including experimental setting), development process, table of individual contributions to the group, …
  • The report is in continuous progress and intermediate statuses are to be provided to the advisor regularly
  • Information on authors should be added to chapters/sections/paragraphs (where appropriate)
  • Table mapping responsibilities of participants to topics/areas of work

Roles in the Group

Project Roles – e.g., leader, QA (code + document) – can rotate among the participants (does not refer to the areas of expertise listed before, which should remain fixed). To be organized by the group.

Seminar Topics/Areas of Specialization

The topics and areas of specialization are to be defined and assigned to the participants by the group.

Development processes (e.g., Agile/Scrum) [1 person]

Technical infrastructure and Code quality (Build tool, wiki, Eclipse coding guidelines) [1-2 persons]

System behavioural models and user activity profiles  [1 persons]

Probabilistic, statistical or stochastic models (Markov models, stochastic process models)  [1,2 persons]

Relationship between system behavioural  model and the probabilistic models [1 person]

Designing the trace model and the transformations between the software and the probabilistic models
Possible designs (Rule extraction via Java Modeling Language etc.)[2,3 persons]

Preparation on the Java code instrumentation tools (Soot https://sable.github.io/soot/,
ASM http://asm.ow2.org/) [2 persons]

User Interaction Interface [1 person]

Evaluation methods for the tool [1 person]

Case Study [1 person] tentative

<further topics to be defined by the group>

Technical Infrastructure

SVN/GitLab

Organized by group or provided by us

Jenkins (including FindBugs, PMD, JUnit … plug-ins)

Organized by group or provided by us

Java Development Constraints / Suggestions

Big emphasis will be put on code and product quality!

Build tool

Ant or Maven

To be decided by the group

IDE

Eclipse

(recommended)

Unit testing

JUnit

To be integrated into CI environment