38
Software Development for Large Systems ETSN05: Lecture 1 Alma Orucevic-Alagic, Fall 2016

Software Development for Large Systemscs.lth.se/fileadmin/cs/ETSN05/ETSN05-Lecture1_2016.pdf · • Incremental Development Model – A series of mini-Waterfall models • Rapid Application

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Software Development for Large Systemscs.lth.se/fileadmin/cs/ETSN05/ETSN05-Lecture1_2016.pdf · • Incremental Development Model – A series of mini-Waterfall models • Rapid Application

Software Development forLarge SystemsETSN05: Lecture 1Alma Orucevic-Alagic, Fall 2016

Page 2: Software Development for Large Systemscs.lth.se/fileadmin/cs/ETSN05/ETSN05-Lecture1_2016.pdf · • Incremental Development Model – A series of mini-Waterfall models • Rapid Application

Personnel

• Alma Orucevic-Alagic– Course Responsible, Lectures

• Hussan Munir– Exercises, Test Expert

• Rasmus Ross– Labs, Requirements Expert, Design Expert

• Anders Bruce– ePuss/Time Reporting, Design Expert

• Lena Ohlson– Course Administrator

Page 3: Software Development for Large Systemscs.lth.se/fileadmin/cs/ETSN05/ETSN05-Lecture1_2016.pdf · • Incremental Development Model – A series of mini-Waterfall models • Rapid Application

My Experience

Company Date DomainSecurian 1997-2002 Software EngineeringCA 2003-2004 Software EngineeringLRC Engineering 2004-2007 IT ManagerTech.Lic., LTH 2008-2011 Software EngineeringASR Technologies AB 2010-Present Company Owner (IT)PhD, LTH 2016 Software Engineering

Page 4: Software Development for Large Systemscs.lth.se/fileadmin/cs/ETSN05/ETSN05-Lecture1_2016.pdf · • Incremental Development Model – A series of mini-Waterfall models • Rapid Application

My Research Interests

• Application of Open Source Software development practices within a closed development setting (Inner Source)

• Development and source code analysis through application of network theory and times series modeling.

• Building of software products to support and monitor development process.

Page 5: Software Development for Large Systemscs.lth.se/fileadmin/cs/ETSN05/ETSN05-Lecture1_2016.pdf · • Incremental Development Model – A series of mini-Waterfall models • Rapid Application

Lecture 1 - Overview• Part 1:

– Introduction– Course/Project Objectives – Introduction to Development Methods

• Part 2:– The Product– The Task– Development Model

Page 6: Software Development for Large Systemscs.lth.se/fileadmin/cs/ETSN05/ETSN05-Lecture1_2016.pdf · • Incremental Development Model – A series of mini-Waterfall models • Rapid Application

Lecture 1 – Software Project Overruns• Study by Flyvbjerg and Budzier, 2011, Hardward

Business Review:– 1400+ projects Surveyed– Average overrun 27%– 16% of the projects with 200% cost over-run, and

70% late.– Levi Strauss, 2003 Initial Budget $5 mil., $192.5

Actual Cost– Sweden Police, Pust Siebel $85-124 mil.

Page 7: Software Development for Large Systemscs.lth.se/fileadmin/cs/ETSN05/ETSN05-Lecture1_2016.pdf · • Incremental Development Model – A series of mini-Waterfall models • Rapid Application

Lecture 1 – Software Project Failures• Swedish police system – PUST 123 million SEK:

– http://computersweden.idg.se/2.2683/1.547909/polisen-lagger-ner-pust

• 10 biggest ERP software failures of 2011:

– http://www.computerworld.com/article/2500604/technology-law-regulation/10-biggest-erp-software-failures-of-2011.html

• Only 3 of 10 IT projects are successful:

– http://computersweden.idg.se/2.2683/1.15441/stort-missnoje-med-it-projekt---bara-3-av-10-anses-lyckade

• How to recognize a failing IT project:

– http://chef.se/sa-kanner-du-igen-ett-misslyckat-it-projekt/

• Swedish failed IT projects:

– http://cio.idg.se/2.1782/1.326833/darfor-floppade-projektentre-svenska-it-fiaskon-under- lupp

Page 8: Software Development for Large Systemscs.lth.se/fileadmin/cs/ETSN05/ETSN05-Lecture1_2016.pdf · • Incremental Development Model – A series of mini-Waterfall models • Rapid Application

Lecture 1 – Course Goals

• To introduce students to software project management principles and development practices.

• To describe the key concepts within project-based large-scale software development context.

• To provide a perspective on the problems that arise in large-scale software projects with many stakeholders handling different, concurrent tasks.

Page 9: Software Development for Large Systemscs.lth.se/fileadmin/cs/ETSN05/ETSN05-Lecture1_2016.pdf · • Incremental Development Model – A series of mini-Waterfall models • Rapid Application

Lecture 1 – Waterfall Development Model

• Software project failures prompted a study on how to develop a high-quality software on time and within budget.

• Plan-and-document model: Waterfall model – W. W. Royce defined the Waterfall model in 1970 – Steps

» Requirements

» Design

» Implementation and integration

» Verification/Testing

» Operation and Maintenance

Page 10: Software Development for Large Systemscs.lth.se/fileadmin/cs/ETSN05/ETSN05-Lecture1_2016.pdf · • Incremental Development Model – A series of mini-Waterfall models • Rapid Application

Lecture 1 – Prototyping

• Break projects into smaller pieces, create a prototype early on, involve user.

• Incremental Development Model

– A series of mini-Waterfall models• Rapid Application Development (RAID)

– Reduce up-front planning, increase number of prototypes• Spiral Development Model

– 1988, Barry Boehm – Combines Waterfall model and Rapid prototyping– Reduce risk by breaking project into smaller pieces.

Page 11: Software Development for Large Systemscs.lth.se/fileadmin/cs/ETSN05/ETSN05-Lecture1_2016.pdf · • Incremental Development Model – A series of mini-Waterfall models • Rapid Application

Lecture 1 – Spiral Model

By Conny derivative work: Spiral_model_(Boehm,_1988).png: Marctroyderivative work: Conan (talk) -File:Spiralmodel_nach_Boehm.png, Spiral_model_(Boehm,_1988).png, Public Domain, https://commons.wikimedia.org/w/index.php?curid=9000950

Page 12: Software Development for Large Systemscs.lth.se/fileadmin/cs/ETSN05/ETSN05-Lecture1_2016.pdf · • Incremental Development Model – A series of mini-Waterfall models • Rapid Application

Lecture 1 – Rational Unified Process RUP (1997-2003)

• Rational Unified Process (RUP) developed as software product by Rational Software.

– ROP and UML– Inception: makes the business case for the software,

decides stakeholders and scopes the project to set the schedule and budget.

– Elaboration: works with stakeholders to identify use cases, designs a component based software architecture, sets the development plan, and builds an initial prototype.

– Construction: codes and tests the product, resulting in the first external release.

– Transition: moves the product from development to production in the real environment, including customer acceptance testing and user training.

Page 13: Software Development for Large Systemscs.lth.se/fileadmin/cs/ETSN05/ETSN05-Lecture1_2016.pdf · • Incremental Development Model – A series of mini-Waterfall models • Rapid Application

Lecture 1 – Agile Software Development

• A collection of software development methods in which solutions evolve through collaboration between self-organizing, cross-functional teams.

• Promotes adaptive planning, evolutionary development, early delivery, continuous improvement, and encourages rapid and flexible change response.

• The Manifesto for Agile Software Development, also known as the Agile Manifesto, first introduced the term agile in the context of software development in 2001.

Page 14: Software Development for Large Systemscs.lth.se/fileadmin/cs/ETSN05/ETSN05-Lecture1_2016.pdf · • Incremental Development Model – A series of mini-Waterfall models • Rapid Application

Lecture 1 – Agile Software Development Manifesto

• Individuals and interactions over processes and tools

• Working software over comprehensive documentation

• Customer collaboration over contract negotiation

• Responding to change over following a plan

Page 15: Software Development for Large Systemscs.lth.se/fileadmin/cs/ETSN05/ETSN05-Lecture1_2016.pdf · • Incremental Development Model – A series of mini-Waterfall models • Rapid Application

Lecture 1 – SCRUM

• Iterative and Incremental Agile Software Development Method

• Development Team Works as Unit Towards a Common Goal

• Quick Response to Changing Requirements

Page 16: Software Development for Large Systemscs.lth.se/fileadmin/cs/ETSN05/ETSN05-Lecture1_2016.pdf · • Incremental Development Model – A series of mini-Waterfall models • Rapid Application

Lecture 1 – Inner Source Project Management

• Modeled after the best practices observed in mature open source communities (e.g. Apache Software Foundation) and tailored for closed source development.

• Open Process and Closed Product

• Benefits

– Improved Reuse

– Improved Quality

– Rapid Developer Redeployment

– Increased Awareness on Ongoing Development Tasks and Issues

– Open Innovation

– Increased Development Speed

Page 17: Software Development for Large Systemscs.lth.se/fileadmin/cs/ETSN05/ETSN05-Lecture1_2016.pdf · • Incremental Development Model – A series of mini-Waterfall models • Rapid Application

Lecture 1 – Inner Source Project Management

Book Sofrware Project Management in Changing WorldChapter 14, Inner Source Project Management Martin Hö̈st, Klaas-Jan Stol, and Alma Orucevic-Alagic

Page 18: Software Development for Large Systemscs.lth.se/fileadmin/cs/ETSN05/ETSN05-Lecture1_2016.pdf · • Incremental Development Model – A series of mini-Waterfall models • Rapid Application

Lecture 1 – Other Perspectives, Critiques

• ”The Dark Side of Agile Software Development” by Andrea Janes, Giancarlo Succi

• ”Gartner Hype Cycle”

Page 19: Software Development for Large Systemscs.lth.se/fileadmin/cs/ETSN05/ETSN05-Lecture1_2016.pdf · • Incremental Development Model – A series of mini-Waterfall models • Rapid Application

Lecture 1 – Other Perspectives, Critiques

– Edsger W. Dijkstra» Winner of 1972 Turing Award

» Proponent of structured programming

» ” Testing shows the presence, not the absence of bugs”

– “Software Engineering has accepted as its character ”How to program if you can not”.

– ”The required techniques of effective reasoning are pretty formal, but as long as programming is done by people that don't master them, the software crisis will remain with us and will be considered an incurable disease. And you know what incurable diseases do: they invite the quacks and charlatans in, who in this case take the form of Software Engineering gurus.”

Page 20: Software Development for Large Systemscs.lth.se/fileadmin/cs/ETSN05/ETSN05-Lecture1_2016.pdf · • Incremental Development Model – A series of mini-Waterfall models • Rapid Application

Lecture 1 – Waterfall: Project Development Model

• This course teaches a waterfall development model that can be tailored to become more agile.

• Motivation Behind Using Waterfall:

– It is a good basis to understand other development methods.

– Its basic components are included in different ways in most other models

Page 21: Software Development for Large Systemscs.lth.se/fileadmin/cs/ETSN05/ETSN05-Lecture1_2016.pdf · • Incremental Development Model – A series of mini-Waterfall models • Rapid Application
Page 22: Software Development for Large Systemscs.lth.se/fileadmin/cs/ETSN05/ETSN05-Lecture1_2016.pdf · • Incremental Development Model – A series of mini-Waterfall models • Rapid Application

Lecture 1 – Course and Project Objectives

• Familiarize students with large-scale, industrial software development in teams within the following areas:

– Development Processes

– Project Management

– Large-scale Development Central Concepts

– Common Problems and Practices Applied to Hedge Against Development Risks

– Hands on Experience within a Designated Project Role

Page 23: Software Development for Large Systemscs.lth.se/fileadmin/cs/ETSN05/ETSN05-Lecture1_2016.pdf · • Incremental Development Model – A series of mini-Waterfall models • Rapid Application

Lecture 1 – Learning Goals

• After completing the course, the students should be well acquainted with:

– Development Models

– Requirements Engineering

– Configuration Management

– Test and Quality Management

– Project Management

– Planning and Follow-up

– Software Engineering Terminology

Page 24: Software Development for Large Systemscs.lth.se/fileadmin/cs/ETSN05/ETSN05-Lecture1_2016.pdf · • Incremental Development Model – A series of mini-Waterfall models • Rapid Application

Lecture 1 – Course Activities and Materials

• Compendia:

– Project Guide (PH) (web)

– Internet of Things, Minimum Viable Device User Guide (web)

– ScanApp, PublishApp

– Software Development Kit (Android Phone, Ultron Blue Tooth Light Bulb, Wiced Sensor)

• Activities:

– Lectures (4+1)

– Exercises (3)

– Labs (2)

– Reviews (2+1)

Page 25: Software Development for Large Systemscs.lth.se/fileadmin/cs/ETSN05/ETSN05-Lecture1_2016.pdf · • Incremental Development Model – A series of mini-Waterfall models • Rapid Application

Lecture 1 – Lectures, Exercises, Labs, and Reviews

Page 26: Software Development for Large Systemscs.lth.se/fileadmin/cs/ETSN05/ETSN05-Lecture1_2016.pdf · • Incremental Development Model – A series of mini-Waterfall models • Rapid Application

Lecture 1 – Project Groups

TO DO: Form Groups by the End of Tuesday, 30.08

Group Name No. Responsibilities

Project Managers (PG) 2 • Plan, put together groups, assign tasks • Identify configuration items • Collect and report metrics data • Report to the Section manager • Documents : Create SDP, SSD, PFR• Kick off, Wednesday 31.08 @ 17:00, E:2405

System Architects (SG) 4 • Coordinate technical work, the base system and interfaces

• Program library and change reports• Time Reporting• Documents: Create SRS, STLDD, SDD• Kick off, Friday 02.09 @12:15, E:2405

Developers (UG) 8 • Implement functionality • Documents: (Modify) SRS, STLDD, SDDD• Time reporting

Testers/Quality Assurance (TG)

6 • Build new versions of system before testing• Create test files and perform testing• Coordinate appendices• Time and error reporting• Test manager must be appointed!• Documents: SVVS, SVVI, SVVR• Kick off, Thursday 01.09 @12:15, E:2405

Page 27: Software Development for Large Systemscs.lth.se/fileadmin/cs/ETSN05/ETSN05-Lecture1_2016.pdf · • Incremental Development Model – A series of mini-Waterfall models • Rapid Application

Lecture 1 – Groups and Document Deliverables

Document Name Acronym Group Responsible

Software Development Plan SDP PG

Software Requirements Specification SRS SG, UG

Software Verification and Validation Specification

SVVS TG

Software Verification and Validation Instructions

SVVI TG

Software Top Level Design Document STLDD SG, UG

Software Detailed Design Document SDDD SG, UG

Software Verification and Validation Report SVVR TG

System Specification Document SSD PG

Project Final Report PFR PG

Individual Report ALL

Page 28: Software Development for Large Systemscs.lth.se/fileadmin/cs/ETSN05/ETSN05-Lecture1_2016.pdf · • Incremental Development Model – A series of mini-Waterfall models • Rapid Application

Lecture 1 – Development Overview

SSR – Software Specification ReviewPDR – Preliminary Design ReviewPR – Product Review

Page 29: Software Development for Large Systemscs.lth.se/fileadmin/cs/ETSN05/ETSN05-Lecture1_2016.pdf · • Incremental Development Model – A series of mini-Waterfall models • Rapid Application

Lecture 1 – Project Roles

Page 30: Software Development for Large Systemscs.lth.se/fileadmin/cs/ETSN05/ETSN05-Lecture1_2016.pdf · • Incremental Development Model – A series of mini-Waterfall models • Rapid Application

Lecture 1 – Meetings

Resources involved Meeting FrequencyProject Groups 2 times per weekProject Managers (PG) with Section Manager

1 time per week

System Group (SG) withRequirements Expert

Before Software Specification Review (SSR)

Test Group (TG) with Test Expert Before Preliminary Design Review (PDR)

System Group (SG) with Design Expert

Before Preliminary Design Review (PDR)

More detailed information on the meetings’ goals and agendas:PH Compendium, Chapter 5

Page 31: Software Development for Large Systemscs.lth.se/fileadmin/cs/ETSN05/ETSN05-Lecture1_2016.pdf · • Incremental Development Model – A series of mini-Waterfall models • Rapid Application

Lecture 1 – Project Documentation Reviewers

Role DocumentSection Manager SDP and PFRRequirements Expert SRSDesign Expert STLDD, SDDDTest Expert SVVS, SVVI, and SVVR

Page 32: Software Development for Large Systemscs.lth.se/fileadmin/cs/ETSN05/ETSN05-Lecture1_2016.pdf · • Incremental Development Model – A series of mini-Waterfall models • Rapid Application

Lecture 1 – Development Process Overview

Page 33: Software Development for Large Systemscs.lth.se/fileadmin/cs/ETSN05/ETSN05-Lecture1_2016.pdf · • Incremental Development Model – A series of mini-Waterfall models • Rapid Application

Lecture 1 – Development Project

Page 34: Software Development for Large Systemscs.lth.se/fileadmin/cs/ETSN05/ETSN05-Lecture1_2016.pdf · • Incremental Development Model – A series of mini-Waterfall models • Rapid Application

Lecture 1 – The Product- IoT, MVD

Page 35: Software Development for Large Systemscs.lth.se/fileadmin/cs/ETSN05/ETSN05-Lecture1_2016.pdf · • Incremental Development Model – A series of mini-Waterfall models • Rapid Application

Lecture 1 – Use Cases

• Turn on/off the lamp.

• Change the lamp color.

• Activate/deactivate sensor’s transmitting functionality.

• Get sensor data for different sensor types (humidity, temperature...) within chosen time intervals.

Page 36: Software Development for Large Systemscs.lth.se/fileadmin/cs/ETSN05/ETSN05-Lecture1_2016.pdf · • Incremental Development Model – A series of mini-Waterfall models • Rapid Application

Lecture 1 – AdministrationTask Instructions• Sign up for exercises no later than

today (29.08) @14:30• Obs.: Exercise 1, Occasion 1 is today

(29.08) @15:00-17:00

https://sam.cs.lth.se/LabsSelectSession?occasionId=446

• Sign up/choose group no later than Tuesday, 30.08 @ 23:59

https://sam.cs.lth.se/LabsSelectSession?occasionId=446

• Sing up for labs no later than Friday, 09.09. @ 23:59

https://sam.cs.lth.se/LabsSelectSession?occasionId=446

We are looking for project managers!

• The job requires: persistence, will to carry through, discipline.

• The jobs provides: experience, overview, satisfaction.

•Previous experience not required, but merits are appreciated. Email me no later than today (29.08) at 18:00!

[email protected]

Page 37: Software Development for Large Systemscs.lth.se/fileadmin/cs/ETSN05/ETSN05-Lecture1_2016.pdf · • Incremental Development Model – A series of mini-Waterfall models • Rapid Application

Lecture 1 – Recommended Work

• Read PH chap. 1 through 4.4 (before exercise 1) – study carefully the tasks of all roles (PH:3)

• Get an overview of the development model (PH:A)

• Check out the course home page:

– http://cs.lth.se/ETSN05

• Before your first project meeting:– check email often (project managers may call for meetings)

• Send comments on what you would like to discuss on lecture 5

Page 38: Software Development for Large Systemscs.lth.se/fileadmin/cs/ETSN05/ETSN05-Lecture1_2016.pdf · • Incremental Development Model – A series of mini-Waterfall models • Rapid Application