Helping a friend out Guidelines for better software

Slides:



Advertisements
Similar presentations
ICWM2009 > Arne Bachmann > Markus Kunde > Markus Litz > Slide 1 A dynamic data integration approach to build scientific workflow systems Markus.
Advertisements

Subject Based Information Gateways in The UK Coordinated Activities in The UK Within the UK Higher Education community, the JISC (Joint Information Systems.
28 March 2003e-MapScholar: content management system The e-MapScholar Content Management System (CMS) David Medyckyj-Scott Project Director.
Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department of Defense © 1998 by Carnegie Mellon.
1. Failure is when users do not feel they get what they paid for. 2. Failure is when the overall organization fails to adopt the solution.
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Introduction to Systems Analysis and Design
UML - Development Process 1 Software Development Process Using UML (2)
-Nikhil Bhatia 28 th October What is RUP? Central Elements of RUP Project Lifecycle Phases Six Engineering Disciplines Three Supporting Disciplines.
ETICS2 All Hands Meeting VEGA GmbH INFSOM-RI Uwe Mueller-Wilm Palermo, Oct ETICS Service Management Framework Business Objectives and “Best.
Software Requirements Engineering CSE 305 Lecture-2.
INTERNATIONAL LABOUR ORGANIZATION Conditions of Work and Employment Programme (TRAVAIL) 2012 Module 13: Assessing Maternity Protection in practice Maternity.
Requirements Engineering Requirements Elicitation Process Lecture-8.
Current and Future Applications of the Generic Statistical Business Process Model at Statistics Canada Laurie Reedman and Claude Julien May 5, 2010.
Introduction Complex and large SW. SW crises Expensive HW. Custom SW. Batch execution Structured programming Product SW.
Jenny Linnerud, 27/10/2011, Cologne1 ESSnet CORE Common Reference Environment ESSnet workshop in Cologne 27th and 28th of October 2011.
Rational Unified Process Fundamentals Module 5: Implementing RUP.
 RESPONSIBILITY: FP7 Co-ordination action  Aim: contribute to development of RRI Governance Framework for future European Commission (and eventually.
Process Description and Quality Guidelines – Two Birds with One Stone European Conference on Quality in Official Statistics Q2014 Rudi Seljak, Tina Steenvoorden.
Process Improvement. It is not necessary to change. Survival is not mandatory. »W. Edwards Deming.
1 Chapter 12 Configuration management This chapter is extracted from Sommerville’s slides. Text book chapter 29 1.
5. 2Object-Oriented Analysis and Design with the Unified Process Objectives  Describe the activities of the requirements discipline  Describe the difference.
Rational Unified Process Fundamentals Module 5: Implementing Rational Unified Process Rational Unified Process Fundamentals Module 5: Implementing Rational.
Chapter 1 Assuming the Role of the Systems Analyst.
Advanced Software Engineering Dr. Cheng
Stages of Research and Development
Open source development model and methodologies.
Tool Support for Testing
Systems Analysis and Design in a Changing World, Fifth Edition
Customer Support Strategic Pillars
Classifications of Software Requirements
The Five Secrets of Project Scheduling A PMO Approach
WHY? - Found initiative while case statement preparation
User-centred system design process
Software Verification and Validation
CSC 480 Software Engineering
Overview – SOE PatchTT November 2015.
Chapter 18 Maintaining Information Systems
Overview – SOE PatchTT December 2013.
Industrial Assessment Center Database
Connected Vehicle Technology
EOB Methodology Overview
One tool to rule them all? Integration or survival of the fittest
Maintaining software solutions
Verification and Validation
CMS HIPAA Transaction Implementation Status Checklist
#GoldenRules THEME-BASED CAMPAIGNS to ensure lasting awareness of the Golden Rules Accompanying deployment - July 2017.
Systems Analysis and Design: What is it?
CMMI – Staged Representation
Message in a bottle: how to communicate macro-regional strategies -
Systems Engineering Tool for Intelligent Transportation
HCI – DESIGN RATIONALE 20 November 2018.
Software Assurance Maturity Model
One tool to rule them all? Integration or survival of the fittest
Training & Development BBA & MBA
2. An overview of SDMX (What is SDMX? Part I)
SISAI STATISTICAL INFORMATION SYSTEMS ARCHITECTURE AND INTEGRATION
Contents subject to change.
Automated Analysis and Code Generation for Domain-Specific Models
Development of common training materials
European Institute of Public Administration (NL)
M. Kezunovic (P.I.) S. S. Luo D. Ristanovic Texas A&M University
Part B of CMF: Metadata, Standards Concepts and Models Jana Meliskova
Experiences in Developing Statistical Quality Frameworks
Software Development Process Using UML Recap
MPATE-GE 2626: Thesis in Music Technology
Software Architecture & Design
Cultivating Semantics for Data in Agriculture and Nutrition
Presentation transcript:

Helping a friend out Guidelines for better software > RSE Conference 2017 > Schlauch, Tobias • Helping a friend out - Guidelines for better software > 07.09.2017 Helping a friend out Guidelines for better software Tobias Schlauch German Aerospace Center (DLR) Department Intelligent and Distributed Systems Berlin / Braunschweig / Cologne Research Software Engineering Conference 2017

German Aerospace Center (DLR) > RSE Conference 2017 > Schlauch, Tobias • Helping a friend out - Guidelines for better software > 07.09.2017 German Aerospace Center (DLR) Approx. 8000 employees across 33 institutes and facilities at 20 sites. Offices in Brussels, Paris, Tokyo and Washington. The three pillars of DLR Space agency Project management agency Research institution

Observations concerning software development at DLR > RSE Conference 2017 > Schlauch, Tobias • Helping a friend out - Guidelines for better software > 07.09.2017 Observations concerning software development at DLR About 20% of DLR employees are involved in software development. Typical examples of developed software include simulation and modeling, flight control, signal and data processing, and others. Software maturity ranges from small research software, to large long-term maintained scientific frameworks, up to product-like software. A variety of programming languages is used including Python, R, Perl, C, C++, Fortran, IDL, Matlab, LabView, Ada, Java, and others. Typical development team sizes range from one up to 20 persons. But usually there is one main developer supported by students. Developers are mostly domain scientists without specific background in software engineering. We started a Software Engineering Initiative at DLR because we believe that our research results profit from better software.

Software engineering initiative of DLR > RSE Conference 2017 > Schlauch, Tobias • Helping a friend out - Guidelines for better software > 07.09.2017 Software engineering initiative of DLR Software Engineering Initiative of DLR Network Guidelines Tools Trainings Knowledge and Experience Exchange

Software engineering guidelines > RSE Conference 2017 > Schlauch, Tobias • Helping a friend out - Guidelines for better software > 07.09.2017 Software engineering guidelines Guidelines support research software developers to self-assess their software concerning good development practices. Joint development with focus on good practices, tools, and essential documentation 77 recommendations give advice in different fields of software engineering: Requirements Management Software Architecture Design & Implementation Change Management Software Testing Release Management Automation & Dependencies

Software engineering guidelines (cont.) > RSE Conference 2017 > Schlauch, Tobias • Helping a friend out - Guidelines for better software > 07.09.2017 Software engineering guidelines (cont.) Guidelines are tailored into three maturity level and are available as checklists in different formats (e.g., Markdown, Wiki, Word) to ease practical usage. Checklists for different maturity levels Reasoning and further advice

simplicity over perfectionism > RSE Conference 2017 > Schlauch, Tobias • Helping a friend out - Guidelines for better software > 07.09.2017 Tailoring scheme simplicity over perfectionism Application class 1 „small“, but other use it Application class 2 „medium – large“, other use it, long-term support Application class 3 „products“, critical for success of department or institute Application class 0 Personal „use“ (intentionally left blank) An application class provides an initial starting point. Recommendations can be added and removed to fit the context. Classification may change over time!

Example for application class 1 > RSE Conference 2017 > Schlauch, Tobias • Helping a friend out - Guidelines for better software > 07.09.2017 Example for application class 1 Python script for calculation of characteristics of a set of sample values Software is a small tool and used by other internally. Summary of the generic recommendations: Manage your code using a version control system Apply a basic coding style, strive for a modular design, avoid code duplication and over-engineering Automate creation of an executable, usable version Provide essential documentation: software purpose, user and developer information, constraints and central concepts, known problems and ideas Internal release: test your software and assign a proper release number Public release: check the open source guidelines The software fits well into the application class 1. Recommendations have to be mapped into the concrete development context.

Example for application class 1 Possible implementation > RSE Conference 2017 > Schlauch, Tobias • Helping a friend out - Guidelines for better software > 07.09.2017 Example for application class 1 Possible implementation Git repository which contains code, examples, build script, and documentation Releases correspond to tags Release package download Code is broken into small functions PEP8 coding style recommendations applied Examples provide reference input values and results Build script for packaging and installing Release numbers follow semantic versioning approach CHANGES.md explains user-understandably major changes

Example for application class 1 Possible implementation (cont.) > RSE Conference 2017 > Schlauch, Tobias • Helping a friend out - Guidelines for better software > 07.09.2017 Example for application class 1 Possible implementation (cont.) README.md: main documentation CONTRIBUTING.md: contributor information Explanation of the software purpose (what?, for whom?, why?) Overview of the main features Important usage constraints and conditions Basic installation and usage information Future plans and ideas

Summary and experiences > RSE Conference 2017 > Schlauch, Tobias • Helping a friend out - Guidelines for better software > 07.09.2017 Summary and experiences Current status: Initial version of the guidelines published in March 2016 at DLR Promotion activities on institute and DLR level Additional supporting material has been provided (e.g., checklist formats) Institutes begin applying guidelines as part of their quality policy Initial feedback from interviews with domain scientist is good but for certain topics more detailed solution approaches are demanded: Need for clearer indication and provision of solution approaches at DLR level (e.g., central software forge) Need for domain-specific solution approaches (e.g., testing approaches for real-time, embedded systems) which requires a stronger experience exchange

Summary and experiences (cont.) > RSE Conference 2017 > Schlauch, Tobias • Helping a friend out - Guidelines for better software > 07.09.2017 Summary and experiences (cont.) Factors that helped us so far: Establishment of a vital core community across the DLR institutes Joint development of practical guidelines Raising management awareness of the topic Upper management support Initiating group is part of DLR`s research institutes Guidelines are important but not sufficient for better research software: All activates of the initiative are equally important and build on each other Guidelines require regular updates on the basis of feedback from domain scientists