Seminar: Entwicklungsprozess von Software …...• Present your work (conference style) • Paper...

45
Seminar: Entwicklungsprozess von Software-Produktlinien Sandro Schulze

Transcript of Seminar: Entwicklungsprozess von Software …...• Present your work (conference style) • Paper...

Page 1: Seminar: Entwicklungsprozess von Software …...• Present your work (conference style) • Paper and presentation can be either German or English Sandro Schulze Seminar WiSe 2012/2013

Seminar: Entwicklungsprozess von

Software-Produktlinien

Sandro Schulze

Page 2: Seminar: Entwicklungsprozess von Software …...• Present your work (conference style) • Paper and presentation can be either German or English Sandro Schulze Seminar WiSe 2012/2013

Take a seat….buckle up…get started

Who I am? Computer science background (e.g., interests, programming skills, scientifc working) Why I am here (and not in the very cool Seminar of XXX)? What do I expect?

Page 3: Seminar: Entwicklungsprozess von Software …...• Present your work (conference style) • Paper and presentation can be either German or English Sandro Schulze Seminar WiSe 2012/2013

Sandro Schulze Seminar WiSe 2012/2013 Entwicklung von Software-Produktlinien

Introduction and Organization

Page 4: Seminar: Entwicklungsprozess von Software …...• Present your work (conference style) • Paper and presentation can be either German or English Sandro Schulze Seminar WiSe 2012/2013

Sandro Schulze Seminar WiSe 2012/2013 Entwicklung von Software-Produktlinien

Overview

•  (Under)-Graduate level course (Bachelor, Master) •  Topics

•  Academic Writing •  Presentation •  Literature review

•  Goal •  Sharpen your soft skills (presenting the unknown to the unfamiliar) •  Structured and goal-oriented working •  Extracting and comparing information •  Having fun ;)

Page 5: Seminar: Entwicklungsprozess von Software …...• Present your work (conference style) • Paper and presentation can be either German or English Sandro Schulze Seminar WiSe 2012/2013

Sandro Schulze Seminar WiSe 2012/2013 Entwicklung von Software-Produktlinien

Contents

•  Several lectures •  Write an academic paper... “Current state and future

challenges in X” (7-10 pages)‏ •  Submit the paper •  Participate in a review process •  Present your work (conference style) •  Paper and presentation can be either German or English

Page 6: Seminar: Entwicklungsprozess von Software …...• Present your work (conference style) • Paper and presentation can be either German or English Sandro Schulze Seminar WiSe 2012/2013

Sandro Schulze Seminar WiSe 2012/2013 Entwicklung von Software-Produktlinien

Warning

•  Take this course seriously! •  5 Credit Points = 150 h, all within the semester (~10h/week) •  Focus on reading and writing •  Paper (first version) is due in 5 weeks! •  Plenty feedback and opportunities for improvement: Use it by

starting with a good version •  Tough grading at the end

Page 7: Seminar: Entwicklungsprozess von Software …...• Present your work (conference style) • Paper and presentation can be either German or English Sandro Schulze Seminar WiSe 2012/2013

Sandro Schulze Seminar WiSe 2012/2013 Entwicklung von Software-Produktlinien

Deadlines (strict)

•  November 13 (in 3 weeks): 5min presentation of topic and relevant literature

•  November 16: Submission of outline •  November 30 (in 5 weeks): Submission of paper •  December 14 (within 2 weeks): paper reviews due (2x) •  January 18 (within 4 weeks): Submission of improved paper •  ???: Practice presentation; Edit: no practice presentation •  January/February: Final presentation

Page 8: Seminar: Entwicklungsprozess von Software …...• Present your work (conference style) • Paper and presentation can be either German or English Sandro Schulze Seminar WiSe 2012/2013

Sandro Schulze Seminar WiSe 2012/2013 Entwicklung von Software-Produktlinien

Grading

•  Grades based on quality of •  the final paper (50%), •  the reviews (20%), and •  the final presentation (30%)‏

•  Only the final paper and presentation are graded •  Focus on formal criteria (style, cohesion, adequate references)

instead of novel contribution •  Details in the corresponding lectures •  Participating in all lectures is mandatory; precondition for

grading

Page 9: Seminar: Entwicklungsprozess von Software …...• Present your work (conference style) • Paper and presentation can be either German or English Sandro Schulze Seminar WiSe 2012/2013

Sandro Schulze Seminar WiSe 2012/2013 Entwicklung von Software-Produktlinien

Topics

Page 10: Seminar: Entwicklungsprozess von Software …...• Present your work (conference style) • Paper and presentation can be either German or English Sandro Schulze Seminar WiSe 2012/2013

Sandro Schulze Seminar WiSe 2012/2013 Entwicklung von Software-Produktlinien

1.  Variabilität in Anforderungsspezifikationen 2.  Formale Ansätze zur Variabilitätsmodellierung 3.  Vergleich von konkreten Ansätze

zur Variabilitätsmodellierung 4.  Entwicklungsprozess von SPLs - vom Produkt zur

Produktlinie 5.  Kompositionale Ansätze zur Implementierung von

Produktlinien

Page 11: Seminar: Entwicklungsprozess von Software …...• Present your work (conference style) • Paper and presentation can be either German or English Sandro Schulze Seminar WiSe 2012/2013

Sandro Schulze Seminar WiSe 2012/2013 Entwicklung von Software-Produktlinien

6.  Annotative Ansätze zur Implementierung von Produktlinien 7.  Testen von Produktlinien bzw. Variablen Softwaresystemen 8.  Refactoring von Softwareproduktlinien 9.  Anwendung und Realisierung von SPLs in der Praxis 10. Der Linux Kernel als Software-Produktlinie

Page 12: Seminar: Entwicklungsprozess von Software …...• Present your work (conference style) • Paper and presentation can be either German or English Sandro Schulze Seminar WiSe 2012/2013

Sandro Schulze Seminar WiSe 2012/2013 Entwicklung von Software-Produktlinien

Software Product Lines

Page 13: Seminar: Entwicklungsprozess von Software …...• Present your work (conference style) • Paper and presentation can be either German or English Sandro Schulze Seminar WiSe 2012/2013

Sandro Schulze Seminar WiSe 2012/2013 Entwicklung von Software-Produktlinien

Do you know examples for (Software) Product Lines?

Why to use the product-line approach?

Advantages? Disadvantages?

Page 14: Seminar: Entwicklungsprozess von Software …...• Present your work (conference style) • Paper and presentation can be either German or English Sandro Schulze Seminar WiSe 2012/2013

Sandro Schulze Seminar WiSe 2012/2013 Entwicklung von Software-Produktlinien

Car  Product  Line  

Page 15: Seminar: Entwicklungsprozess von Software …...• Present your work (conference style) • Paper and presentation can be either German or English Sandro Schulze Seminar WiSe 2012/2013

Sandro Schulze Seminar WiSe 2012/2013 Entwicklung von Software-Produktlinien

Page 16: Seminar: Entwicklungsprozess von Software …...• Present your work (conference style) • Paper and presentation can be either German or English Sandro Schulze Seminar WiSe 2012/2013

Sandro Schulze Seminar WiSe 2012/2013 Entwicklung von Software-Produktlinien

Page 17: Seminar: Entwicklungsprozess von Software …...• Present your work (conference style) • Paper and presentation can be either German or English Sandro Schulze Seminar WiSe 2012/2013

Sandro Schulze Seminar WiSe 2012/2013 Entwicklung von Software-Produktlinien

Page 18: Seminar: Entwicklungsprozess von Software …...• Present your work (conference style) • Paper and presentation can be either German or English Sandro Schulze Seminar WiSe 2012/2013

Sandro Schulze Seminar WiSe 2012/2013 Entwicklung von Software-Produktlinien

Page 19: Seminar: Entwicklungsprozess von Software …...• Present your work (conference style) • Paper and presentation can be either German or English Sandro Schulze Seminar WiSe 2012/2013

Sandro Schulze Seminar WiSe 2012/2013 Entwicklung von Software-Produktlinien

Page 20: Seminar: Entwicklungsprozess von Software …...• Present your work (conference style) • Paper and presentation can be either German or English Sandro Schulze Seminar WiSe 2012/2013

Sandro Schulze Seminar WiSe 2012/2013 Entwicklung von Software-Produktlinien

2000 Features

10000

Features

Page 21: Seminar: Entwicklungsprozess von Software …...• Present your work (conference style) • Paper and presentation can be either German or English Sandro Schulze Seminar WiSe 2012/2013

Sandro Schulze Seminar WiSe 2012/2013 Entwicklung von Software-Produktlinien

So0ware  Product  Lines  

A software product line (SPL) is a set of software-intensive systems that share a common, managed set of features satisfying the specific needs of a particular market segment or mission and that are developed from a common set of core assets in a prescribed way.

Software Engineering Institute Carnegie Mellon University

21

Page 22: Seminar: Entwicklungsprozess von Software …...• Present your work (conference style) • Paper and presentation can be either German or English Sandro Schulze Seminar WiSe 2012/2013

Sandro Schulze Seminar WiSe 2012/2013 Entwicklung von Software-Produktlinien

So0ware  Product  Lines  A  set  of  program  variants  (so1ware  products),  ...tailored  to  a  common  market  segment  (domain)  

...with  the  goal  of  reuse  common  so1ware  artefacts    

e.g.,  database  product  line  fo  eembedded  system  

22

Page 23: Seminar: Entwicklungsprozess von Software …...• Present your work (conference style) • Paper and presentation can be either German or English Sandro Schulze Seminar WiSe 2012/2013

Sandro Schulze Seminar WiSe 2012/2013 Entwicklung von Software-Produktlinien

Domain  

• Programs  of  a  product  line  tailored  to  applica?on  area  • Applica?on  area  is  called  domain  

• Horizontal  domains  •  billing,  inventory  management,  flight  booking  

• Ver?cal  domains  •  Numeric  algorithm,  network  drivers,  GUIs,  databases  

23

Page 24: Seminar: Entwicklungsprozess von Software …...• Present your work (conference style) • Paper and presentation can be either German or English Sandro Schulze Seminar WiSe 2012/2013

Sandro Schulze Seminar WiSe 2012/2013 Entwicklung von Software-Produktlinien

What  is  a  feature?  (German:Merkmal)  

• Domain  abstrac?on  • Represents  requirements,  commonali?es,  variabili?es  amongst  program  variants  • Mean  for  communica?on  between  stakeholder  

• Specifica?on  of  variants  •  Feature  selec?on  as  input  for  program  genera?on  

• BUT:  there  are  concerns,  which  are  NO  features  

24

Page 25: Seminar: Entwicklungsprozess von Software …...• Present your work (conference style) • Paper and presentation can be either German or English Sandro Schulze Seminar WiSe 2012/2013

Sandro Schulze Seminar WiSe 2012/2013 Entwicklung von Software-Produktlinien

Concern  vs.  Feature  

• Concern  •  Every  problem  statement  of  interest  

• Feature  •  Problem  statement  with  specific  meaning  in  the  domain  

•  Configura?on  op?on  

concern feature

25

Page 26: Seminar: Entwicklungsprozess von Software …...• Present your work (conference style) • Paper and presentation can be either German or English Sandro Schulze Seminar WiSe 2012/2013

Sandro Schulze Seminar WiSe 2012/2013 Entwicklung von Software-Produktlinien

Features  in  Databases  

• Transac?on  management  • Log  &  Recovery  • Write  access  • Persistency  /  In-­‐Memory  

• Place  replace  strategiesLRU  /  LFU  /  Clock  /...  • Sor?ng  algorithms  • Records  with  variable  length  • Grouping,  aggrega?on  • Windows  /  Unix  /  NutOS  /  TinyOS  /  …  

26

Page 27: Seminar: Entwicklungsprozess von Software …...• Present your work (conference style) • Paper and presentation can be either German or English Sandro Schulze Seminar WiSe 2012/2013

Sandro Schulze Seminar WiSe 2012/2013 Entwicklung von Software-Produktlinien

Development  of  Product  Lines  

• Developing  a  product  line  instead  of  single  applica?ons  • Product  lines  covers  requirements  of  whole  domain  

• Deviates  from  tradi?onal  development  process  and  lifecycle  • Dis?nc?on  between  

•  Domain  Engineering  •  Applica?on  Engineering  

27

Page 28: Seminar: Entwicklungsprozess von Software …...• Present your work (conference style) • Paper and presentation can be either German or English Sandro Schulze Seminar WiSe 2012/2013

Sandro Schulze Seminar WiSe 2012/2013 Entwicklung von Software-Produktlinien

So0ware  Lifecycle  -­‐  typical  

28

Page 29: Seminar: Entwicklungsprozess von Software …...• Present your work (conference style) • Paper and presentation can be either German or English Sandro Schulze Seminar WiSe 2012/2013

Sandro Schulze Seminar WiSe 2012/2013 Entwicklung von Software-Produktlinien

Domain  Engineering  

[...] is the activity of collecting, organizing, and storing past experience in building systems [...] in a particular domain in the form of reusable assets [...], as well as providing an adequate means for reusing these assets (i.e., retrieval, qualification, dissemination, adaptation, assembly, and so on) when building new systems.

K. Czarnecki and U. Eisenecker

29

Page 30: Seminar: Entwicklungsprozess von Software …...• Present your work (conference style) • Paper and presentation can be either German or English Sandro Schulze Seminar WiSe 2012/2013

Sandro Schulze Seminar WiSe 2012/2013 Entwicklung von Software-Produktlinien

ApplicaJon  and  Domain  Engineering  

30

Page 31: Seminar: Entwicklungsprozess von Software …...• Present your work (conference style) • Paper and presentation can be either German or English Sandro Schulze Seminar WiSe 2012/2013

Sandro Schulze Seminar WiSe 2012/2013 Entwicklung von Software-Produktlinien

Development  Effort  

31

# Produkte

Aufwand/Kosten Konventionelle Entwicklung

Produktlinien- entwicklung

… 1 2 3 4

Page 32: Seminar: Entwicklungsprozess von Software …...• Present your work (conference style) • Paper and presentation can be either German or English Sandro Schulze Seminar WiSe 2012/2013

Sandro Schulze Seminar WiSe 2012/2013 Entwicklung von Software-Produktlinien

Literature on Software Product Lines

Krzysztof Czarnecki and Ulrich Eisenecker. Generative programming: methods, tools, and applications. ACM Press, New York, NY, USA, 2000.

K. Kang et al. Feature-Oriented Domain Analysis (FODA) Feasibility Study. Technical Report CMU/SEI-90-TR-21, Software Engineering Institute, Pittsburgh, PA, USA, November 1990.

Clements, P. & Northrop, L. Software Product Lines: Practices and Patterns. Boston, MA: Addison-Wesley, 2002.

Klaus Pohl, Günter Böckle, and Frank J. van der Linden. 2005. Software Product Line Engineering: Foundations, Principles and Techniques. Springer-Verlag New York, Inc., Secaucus, NJ, USA.

Page 33: Seminar: Entwicklungsprozess von Software …...• Present your work (conference style) • Paper and presentation can be either German or English Sandro Schulze Seminar WiSe 2012/2013

Sandro Schulze Seminar WiSe 2012/2013 Entwicklung von Software-Produktlinien

Page 34: Seminar: Entwicklungsprozess von Software …...• Present your work (conference style) • Paper and presentation can be either German or English Sandro Schulze Seminar WiSe 2012/2013

Sandro Schulze Seminar WiSe 2012/2013 Entwicklung von Software-Produktlinien

Survey Papers

•  Discuss different approaches/solutions for a problem •  Group/classify solutions, discuss commonalities and differences •  Try to be complete or at least select important representatives •  Aggregation and describing relationships is your contribution!

(instead of a new solution to the problem) •  Which problems are still open •  Are there initial ideas for that?

Page 35: Seminar: Entwicklungsprozess von Software …...• Present your work (conference style) • Paper and presentation can be either German or English Sandro Schulze Seminar WiSe 2012/2013

Sandro Schulze Seminar WiSe 2012/2013 Entwicklung von Software-Produktlinien

Our Requirements

•  Explain the problem (and its importance) to readers unfamiliar with the domain

•  Discuss different solutions (by different research groups) •  Give a benefit compared to reading all papers

•  Discussion, comparison, or additional context

•  Suggestions for future directions •  Keep it within 8 pages (IEEE CS 2 column format, including

references)

Page 36: Seminar: Entwicklungsprozess von Software …...• Present your work (conference style) • Paper and presentation can be either German or English Sandro Schulze Seminar WiSe 2012/2013

Sandro Schulze Seminar WiSe 2012/2013 Entwicklung von Software-Produktlinien

Finding literature

•  Library: Journals (online&print), also interlibrary lending (Fernleihe)

•  scholar.google.com (use also link “All x versions”) •  ACM Digital Library (within university network) •  dblp.uni-trier.de •  Related Work therein

Page 37: Seminar: Entwicklungsprozess von Software …...• Present your work (conference style) • Paper and presentation can be either German or English Sandro Schulze Seminar WiSe 2012/2013

Sandro Schulze Seminar WiSe 2012/2013 Entwicklung von Software-Produktlinien

Examples of Survey Papers

•  T. Mens. A State-of-the-Art Survey on Software Merging. IEEE Transactions on Software Engineering, 28:5, 449-462, 2002

•  T. Browning. Applying the Design Structure Matrix to System Decomposition and Integration Problems: A Review and New Directions. IEEE Transactions on Engineering Management, 48:3, 292-306, 2001

•  Muffy Calder, Mario Kolberg, Evan H. Magill, and Stephan Reiff-Marganiec. Feature interaction: a critical review and considered forecast. Computer Networks, 41:1, 115-141, 2003

Page 38: Seminar: Entwicklungsprozess von Software …...• Present your work (conference style) • Paper and presentation can be either German or English Sandro Schulze Seminar WiSe 2012/2013

Sandro Schulze Seminar WiSe 2012/2013 Entwicklung von Software-Produktlinien

Why to Publish

Page 39: Seminar: Entwicklungsprozess von Software …...• Present your work (conference style) • Paper and presentation can be either German or English Sandro Schulze Seminar WiSe 2012/2013

Sandro Schulze Seminar WiSe 2012/2013 Entwicklung von Software-Produktlinien

Research requires Writing

•  Writing is fundamental part of research (do not underestimate!) •  > 30% of time spent on writing •  Writing is work, a profession (not talent, inspiration, …) •  Writing can be learned •  Practice, practice, practice… •  Some publications are expected when submitting PhD thesis •  PhD students that never focus on writing within the first years,

hardly finish their PhD •  Scientists are often evaluated based on publications

Page 40: Seminar: Entwicklungsprozess von Software …...• Present your work (conference style) • Paper and presentation can be either German or English Sandro Schulze Seminar WiSe 2012/2013

Sandro Schulze Seminar WiSe 2012/2013 Entwicklung von Software-Produktlinien

Peer Review

•  Scientific quality control •  Experts in the field review submitted papers, recommend

acceptance/rejection and suggest improvements •  Quality reviews require high effort •  Only peer reviewed publications count

Page 41: Seminar: Entwicklungsprozess von Software …...• Present your work (conference style) • Paper and presentation can be either German or English Sandro Schulze Seminar WiSe 2012/2013

Sandro Schulze Seminar WiSe 2012/2013 Entwicklung von Software-Produktlinien

Conference vs. Journal

•  Journal •  More (long-term) impact •  Wider target audience •  Deeper reviews, long review

process •  More space (15-50 pages) •  Typically research results of

1-5 years

Conference Proceedings Faster process ca. 10 pages Direct contacts and discussion at

conferences; community Audience: 30-200

Workshop Discussions; Community Work in progress, ideas,

first results, 4-8 pages Audience: 10-20

Technical Report

Page 42: Seminar: Entwicklungsprozess von Software …...• Present your work (conference style) • Paper and presentation can be either German or English Sandro Schulze Seminar WiSe 2012/2013

Sandro Schulze Seminar WiSe 2012/2013 Entwicklung von Software-Produktlinien

Ranking

•  Different quality levels between conferences, workshop and journals

•  Top-Level conferences receive over 300 papers, tough peer review, select only best (often <20%), often considered equivalent to journals

•  Some local conferences and workshops accept almost everything, little quality control, some for money

One Example for Ranking: http://www.core.edu.au/rankings/alpha-conf-final2007.pdf http://www.core.edu.au/journal%20rankings/08ERA-final-sort%20Rank.pdf

Page 43: Seminar: Entwicklungsprozess von Software …...• Present your work (conference style) • Paper and presentation can be either German or English Sandro Schulze Seminar WiSe 2012/2013

Sandro Schulze Seminar WiSe 2012/2013 Entwicklung von Software-Produktlinien

Page 44: Seminar: Entwicklungsprozess von Software …...• Present your work (conference style) • Paper and presentation can be either German or English Sandro Schulze Seminar WiSe 2012/2013

Sandro Schulze Seminar WiSe 2012/2013 Entwicklung von Software-Produktlinien

Tools

•  Latex •  Word/Open Office with Bibliography-Tool such as Endnote or

Citavi (URZ!) •  Use a spell checker + grammar checker, e.g. in Word

•  Latex users: latex2rtf

•  SVN -> https://faracvs.cs.uni-magdeburg.de/svnadmin/

Page 45: Seminar: Entwicklungsprozess von Software …...• Present your work (conference style) • Paper and presentation can be either German or English Sandro Schulze Seminar WiSe 2012/2013

Sandro Schulze Seminar WiSe 2012/2013 Entwicklung von Software-Produktlinien

Literature

•  Mary Jean Harrold, Axel van Lamsweerde - New Software Engineering Faculty Symposium, ICSE 2006 (Slides)

•  Graham Horton – Schlüsselkompetenzen (Slides) •  William Cook – Academic Writing (Slides) •  Joseph M. Williams – Style: Toward Clarity and Grace, 1995 •  Lyn Dupre – Bugs in Writing, 1998 •  The Chicago Manual of Style