software development of large systemscs.lth.se/fileadmin/cs/etsn05/etsn05-lecture1_2017v2.pdf · my...

Post on 21-Aug-2020

1 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Software Development ofLarge SystemsETSN05: Lecture 1Alma Orucevic-Alagic, Fall 2017

Personnel

• Alma Orucevic-Alagic

– Course Responsible, Lectures, Labs

• Hussan Munir

– Exercises, Test Expert

• Rasmus Ross

– Labs, Requirements Expert, Design Expert

• Wawrzyn Chonewicz

– Labs

• Anders Bruce

– ePuss/Time Reporting

• Lena Ohlson

– Course Administrator

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

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.

Lecture 1 - Overview• Part 1:

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

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

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.

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

– 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

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.

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

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.

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

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.

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.

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

Lecture 1 – SCRUM

• Iterative and Incremental Agile Software Development Method

• Development Team Works as Unit Towards a Common Goal

• Quick Response to Changing Requirements

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

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

Lecture 1 – Other Perspectives, Critiques

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

• ”Gartner Hype Cycle”

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.”

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

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

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

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)

Lecture 1 – Lectures, Exercises, Labs, and Reviews

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 30.08 @ 12:15, E:2405

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

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

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

Testers/Quality Assurance (TG)

5 • 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 31.08 @12:15, E:2405

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

Lecture 1 – Development Overview

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

Lecture 1 – Project Roles

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

Lecture 1 – Project Documentation Reviewers

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

Lecture 1 – Development Process Overview

Lecture 1 – Development Project

Lecture 1 – The Product- IoT, MVD

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.

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

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

(28.08) @15:00-17:00

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

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

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

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

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

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 (28.08) at 23:59!

Alma@cs.lth.se

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

top related