LTAT.05.003 Software Engineering - ut · Software Engineering Lecture 01.2: Introduction to...
Transcript of LTAT.05.003 Software Engineering - ut · Software Engineering Lecture 01.2: Introduction to...
![Page 1: LTAT.05.003 Software Engineering - ut · Software Engineering Lecture 01.2: Introduction to Software Engineering Dietmar Pfahl ... Software Development Processes Process SYSTEM REQUIREMENTS](https://reader034.fdocuments.fr/reader034/viewer/2022042515/5f993590c47e590156189c85/html5/thumbnails/1.jpg)
LTAT.05.003 / Lecture 01.2 / © Dietmar Pfahl 2017
LTAT.05.003 Software Engineering
Lecture 01.2: Introduction to Software Engineering
Dietmar Pfahl email: [email protected]
Fall 2017
![Page 2: LTAT.05.003 Software Engineering - ut · Software Engineering Lecture 01.2: Introduction to Software Engineering Dietmar Pfahl ... Software Development Processes Process SYSTEM REQUIREMENTS](https://reader034.fdocuments.fr/reader034/viewer/2022042515/5f993590c47e590156189c85/html5/thumbnails/2.jpg)
LTAT.05.003 / Lecture 01.2 / © Dietmar Pfahl 2017
Schedule of Lectures (Tentative)
Week 01: Introduction to SE
Week 02: Requirements Engineering I
Week 03: Requirements Engineering II
Week 04: Analysis
Week 05: Development Infrastructure I
Week 06: Development Infrastructure II
Week 07: Architecture and Design
Week 08: Refactoring
Week 09: Verification and Validation I
Week 10: Crowdsourced Testing
Week 11: Continuous Development
and Integration
Week 12: Agile/Lean Methods
Week 13: Software Craftsmanship
Week 14: Course wrap-up, review and
exam preparation
Week 15: no lecture
![Page 3: LTAT.05.003 Software Engineering - ut · Software Engineering Lecture 01.2: Introduction to Software Engineering Dietmar Pfahl ... Software Development Processes Process SYSTEM REQUIREMENTS](https://reader034.fdocuments.fr/reader034/viewer/2022042515/5f993590c47e590156189c85/html5/thumbnails/3.jpg)
LTAT.05.003 / Lecture 01.2 / © Dietmar Pfahl 2017
Software Engineering
What? Why?
![Page 4: LTAT.05.003 Software Engineering - ut · Software Engineering Lecture 01.2: Introduction to Software Engineering Dietmar Pfahl ... Software Development Processes Process SYSTEM REQUIREMENTS](https://reader034.fdocuments.fr/reader034/viewer/2022042515/5f993590c47e590156189c85/html5/thumbnails/4.jpg)
LTAT.05.003 / Lecture 01.2 / © Dietmar Pfahl 2017
Software Development – Three Ps
• Software Development
Project or Iteration
P ?
P ?
P ?
![Page 5: LTAT.05.003 Software Engineering - ut · Software Engineering Lecture 01.2: Introduction to Software Engineering Dietmar Pfahl ... Software Development Processes Process SYSTEM REQUIREMENTS](https://reader034.fdocuments.fr/reader034/viewer/2022042515/5f993590c47e590156189c85/html5/thumbnails/5.jpg)
LTAT.05.003 / Lecture 01.2 / © Dietmar Pfahl 2017
Software Development – Three Ps • Software
Development
Project or Iteration
Products
People Processes
![Page 6: LTAT.05.003 Software Engineering - ut · Software Engineering Lecture 01.2: Introduction to Software Engineering Dietmar Pfahl ... Software Development Processes Process SYSTEM REQUIREMENTS](https://reader034.fdocuments.fr/reader034/viewer/2022042515/5f993590c47e590156189c85/html5/thumbnails/6.jpg)
LTAT.05.003 / Lecture 01.2 / © Dietmar Pfahl 2017
Software Engineering
Who has practiced SE? Who knows what SE is?
![Page 7: LTAT.05.003 Software Engineering - ut · Software Engineering Lecture 01.2: Introduction to Software Engineering Dietmar Pfahl ... Software Development Processes Process SYSTEM REQUIREMENTS](https://reader034.fdocuments.fr/reader034/viewer/2022042515/5f993590c47e590156189c85/html5/thumbnails/7.jpg)
LTAT.05.003 / Lecture 01.2 / © Dietmar Pfahl 2017
Software Development – Three Ps • Software
Development
Project or Iteration
Products
People Processes
![Page 8: LTAT.05.003 Software Engineering - ut · Software Engineering Lecture 01.2: Introduction to Software Engineering Dietmar Pfahl ... Software Development Processes Process SYSTEM REQUIREMENTS](https://reader034.fdocuments.fr/reader034/viewer/2022042515/5f993590c47e590156189c85/html5/thumbnails/8.jpg)
LTAT.05.003 / Lecture 01.2 / © Dietmar Pfahl 2017
Products in Software Development
Products Code: - Production code:
- Source code - Object code
- Non-production code: - Test code
Non-Code: - Requirements - Specifications - Architecture/Design docs - Issue reports - User manuals - Plans of all kinds - ...
Models
Types of Software: - Embedded/real-time - Information System - Web application - System software - ...
Properties of Software: - Functionality - Reliability - Usability - Efficiency - Maintainability - Portability
![Page 9: LTAT.05.003 Software Engineering - ut · Software Engineering Lecture 01.2: Introduction to Software Engineering Dietmar Pfahl ... Software Development Processes Process SYSTEM REQUIREMENTS](https://reader034.fdocuments.fr/reader034/viewer/2022042515/5f993590c47e590156189c85/html5/thumbnails/9.jpg)
LTAT.05.003 / Lecture 01.2 / © Dietmar Pfahl 2017
Software in a Car Products
ECU = Electronic Control Unit
![Page 10: LTAT.05.003 Software Engineering - ut · Software Engineering Lecture 01.2: Introduction to Software Engineering Dietmar Pfahl ... Software Development Processes Process SYSTEM REQUIREMENTS](https://reader034.fdocuments.fr/reader034/viewer/2022042515/5f993590c47e590156189c85/html5/thumbnails/10.jpg)
LTAT.05.003 / Lecture 01.2 / © Dietmar Pfahl 2017
Properties of Software The software should deliver the required functionality and performance to the user and should be maintainable, dependable and acceptable.
Maintainability Software must evolve to meet changing needs;
Dependability (Reliability) Software must be trustworthy;
Efficiency
Software should not make wasteful use of system resources;
Usability
Software must be accepted by the users for which it was designed. This means it must be understandable, usable and compatible with other systems.
Products
![Page 11: LTAT.05.003 Software Engineering - ut · Software Engineering Lecture 01.2: Introduction to Software Engineering Dietmar Pfahl ... Software Development Processes Process SYSTEM REQUIREMENTS](https://reader034.fdocuments.fr/reader034/viewer/2022042515/5f993590c47e590156189c85/html5/thumbnails/11.jpg)
LTAT.05.003 / Lecture 01.2 / © Dietmar Pfahl 2017
SW Product Modeling UML = Unified Modeling Language
Online information: http://www.uml.org
Products
![Page 12: LTAT.05.003 Software Engineering - ut · Software Engineering Lecture 01.2: Introduction to Software Engineering Dietmar Pfahl ... Software Development Processes Process SYSTEM REQUIREMENTS](https://reader034.fdocuments.fr/reader034/viewer/2022042515/5f993590c47e590156189c85/html5/thumbnails/12.jpg)
LTAT.05.003 / Lecture 01.2 / © Dietmar Pfahl 2017
Software Development – Three Ps • Software
Development
Project or Iteration
Products
People Processes
![Page 13: LTAT.05.003 Software Engineering - ut · Software Engineering Lecture 01.2: Introduction to Software Engineering Dietmar Pfahl ... Software Development Processes Process SYSTEM REQUIREMENTS](https://reader034.fdocuments.fr/reader034/viewer/2022042515/5f993590c47e590156189c85/html5/thumbnails/13.jpg)
LTAT.05.003 / Lecture 01.2 / © Dietmar Pfahl 2017
People in Software Development
People
Roles: - Project Manager - Product Manager - Architect/Analyst - Programmer - Tester - ...
Skills: - Must match roles Training: - Must fill skill-gaps Education: - Curricula (ACM/IEEE)
Teams: - Team building - Geographically distributed (international/global) - Mechanisms for collaboration/cooperation - Motivation, Personality, Values, Culture
User models
![Page 14: LTAT.05.003 Software Engineering - ut · Software Engineering Lecture 01.2: Introduction to Software Engineering Dietmar Pfahl ... Software Development Processes Process SYSTEM REQUIREMENTS](https://reader034.fdocuments.fr/reader034/viewer/2022042515/5f993590c47e590156189c85/html5/thumbnails/14.jpg)
LTAT.05.003 / Lecture 01.2 / © Dietmar Pfahl 2017
Software Development – Three Ps • Software
Development
Project or Iteration
Products
People Processes
![Page 15: LTAT.05.003 Software Engineering - ut · Software Engineering Lecture 01.2: Introduction to Software Engineering Dietmar Pfahl ... Software Development Processes Process SYSTEM REQUIREMENTS](https://reader034.fdocuments.fr/reader034/viewer/2022042515/5f993590c47e590156189c85/html5/thumbnails/15.jpg)
LTAT.05.003 / Lecture 01.2 / © Dietmar Pfahl 2017
Software Development Process
Coding
Deploying
Processes
![Page 16: LTAT.05.003 Software Engineering - ut · Software Engineering Lecture 01.2: Introduction to Software Engineering Dietmar Pfahl ... Software Development Processes Process SYSTEM REQUIREMENTS](https://reader034.fdocuments.fr/reader034/viewer/2022042515/5f993590c47e590156189c85/html5/thumbnails/16.jpg)
LTAT.05.003 / Lecture 01.2 / © Dietmar Pfahl 2017
Software Development Process
Find Requirements
Analysis / Designing
Coding
Testing
Deploying
Processes
![Page 17: LTAT.05.003 Software Engineering - ut · Software Engineering Lecture 01.2: Introduction to Software Engineering Dietmar Pfahl ... Software Development Processes Process SYSTEM REQUIREMENTS](https://reader034.fdocuments.fr/reader034/viewer/2022042515/5f993590c47e590156189c85/html5/thumbnails/17.jpg)
LTAT.05.003 / Lecture 01.2 / © Dietmar Pfahl 2017
Processes Software Development Process
SYSTEM REQUIREMENTS
TESTING
CODING
PROGRAM DESIGN
ANALYSIS
PRELIMINARY PROGRAM
DESIGN
SOFTWARE REQUIREMENTS
OPERATIONS
PRELIMINARY DESIGN
ANALYSIS
PROGRAM DESIGN
CODING
TESTING
USAGE
(Royce, 1970)
![Page 18: LTAT.05.003 Software Engineering - ut · Software Engineering Lecture 01.2: Introduction to Software Engineering Dietmar Pfahl ... Software Development Processes Process SYSTEM REQUIREMENTS](https://reader034.fdocuments.fr/reader034/viewer/2022042515/5f993590c47e590156189c85/html5/thumbnails/18.jpg)
LTAT.05.003 / Lecture 01.2 / © Dietmar Pfahl 2017
Processes in SW Development
Processes
Process (Model) Elements: - Activity - Input/Output Product(s) - Roles - Methods/Techniques/Tools
Process Taxonomy: - Non-engineering processes
- Business processes - Social processes
- Engineering processes - Product-engineering proc.
- Technical prod.-eng. proc. - Managerial prod.-eng. proc.
- Process-engineering proc.
Process Modeling: - Descriptive PMs - Prescriptive PMs
- Standards - Families
Process Types: - Heavy-weight (rich) - Light-weight
- Lean - Agile - Kanban
![Page 19: LTAT.05.003 Software Engineering - ut · Software Engineering Lecture 01.2: Introduction to Software Engineering Dietmar Pfahl ... Software Development Processes Process SYSTEM REQUIREMENTS](https://reader034.fdocuments.fr/reader034/viewer/2022042515/5f993590c47e590156189c85/html5/thumbnails/19.jpg)
LTAT.05.003 / Lecture 01.2 / © Dietmar Pfahl 2017
Agile Process Processes
![Page 20: LTAT.05.003 Software Engineering - ut · Software Engineering Lecture 01.2: Introduction to Software Engineering Dietmar Pfahl ... Software Development Processes Process SYSTEM REQUIREMENTS](https://reader034.fdocuments.fr/reader034/viewer/2022042515/5f993590c47e590156189c85/html5/thumbnails/20.jpg)
LTAT.05.003 / Lecture 01.2 / © Dietmar Pfahl 2017
Agile Process Processes
Scrum
eXtreme Programming (XP)
![Page 21: LTAT.05.003 Software Engineering - ut · Software Engineering Lecture 01.2: Introduction to Software Engineering Dietmar Pfahl ... Software Development Processes Process SYSTEM REQUIREMENTS](https://reader034.fdocuments.fr/reader034/viewer/2022042515/5f993590c47e590156189c85/html5/thumbnails/21.jpg)
LTAT.05.003 / Lecture 01.2 / © Dietmar Pfahl 2017
Scrum Elements – Process, Artifacts, Roles
http://www.scrumforteamsystem.com/processguidance/v1/Scrum/Scrum.html
Processes
![Page 22: LTAT.05.003 Software Engineering - ut · Software Engineering Lecture 01.2: Introduction to Software Engineering Dietmar Pfahl ... Software Development Processes Process SYSTEM REQUIREMENTS](https://reader034.fdocuments.fr/reader034/viewer/2022042515/5f993590c47e590156189c85/html5/thumbnails/22.jpg)
LTAT.05.003 / Lecture 01.2 / © Dietmar Pfahl 2017
Processes
![Page 23: LTAT.05.003 Software Engineering - ut · Software Engineering Lecture 01.2: Introduction to Software Engineering Dietmar Pfahl ... Software Development Processes Process SYSTEM REQUIREMENTS](https://reader034.fdocuments.fr/reader034/viewer/2022042515/5f993590c47e590156189c85/html5/thumbnails/23.jpg)
LTAT.05.003 / Lecture 01.2 / © Dietmar Pfahl 2017
Processes Comparison of Basic Process Types
RUP = Rational Unified Process XP = Extreme Programming
![Page 24: LTAT.05.003 Software Engineering - ut · Software Engineering Lecture 01.2: Introduction to Software Engineering Dietmar Pfahl ... Software Development Processes Process SYSTEM REQUIREMENTS](https://reader034.fdocuments.fr/reader034/viewer/2022042515/5f993590c47e590156189c85/html5/thumbnails/24.jpg)
LTAT.05.003 / Lecture 01.2 / © Dietmar Pfahl 2017
Processes Survey – Software Development Processes and Practices
RUP = Rational Unified Process XP = Extreme Programming
• 26 Countries
• 500+ Responses
• URL: https://helenastudy.wordpress.com
![Page 25: LTAT.05.003 Software Engineering - ut · Software Engineering Lecture 01.2: Introduction to Software Engineering Dietmar Pfahl ... Software Development Processes Process SYSTEM REQUIREMENTS](https://reader034.fdocuments.fr/reader034/viewer/2022042515/5f993590c47e590156189c85/html5/thumbnails/25.jpg)
LTAT.05.003 / Lecture 01.2 / © Dietmar Pfahl 2017
Processes Process Frameworks Used in Estonia
![Page 26: LTAT.05.003 Software Engineering - ut · Software Engineering Lecture 01.2: Introduction to Software Engineering Dietmar Pfahl ... Software Development Processes Process SYSTEM REQUIREMENTS](https://reader034.fdocuments.fr/reader034/viewer/2022042515/5f993590c47e590156189c85/html5/thumbnails/26.jpg)
LTAT.05.003 / Lecture 01.2 / © Dietmar Pfahl 2017
Processes Process Frameworks Used in Sweden
![Page 27: LTAT.05.003 Software Engineering - ut · Software Engineering Lecture 01.2: Introduction to Software Engineering Dietmar Pfahl ... Software Development Processes Process SYSTEM REQUIREMENTS](https://reader034.fdocuments.fr/reader034/viewer/2022042515/5f993590c47e590156189c85/html5/thumbnails/27.jpg)
LTAT.05.003 / Lecture 01.2 / © Dietmar Pfahl 2017
Processes Process Frameworks Used in 26 Countries
![Page 28: LTAT.05.003 Software Engineering - ut · Software Engineering Lecture 01.2: Introduction to Software Engineering Dietmar Pfahl ... Software Development Processes Process SYSTEM REQUIREMENTS](https://reader034.fdocuments.fr/reader034/viewer/2022042515/5f993590c47e590156189c85/html5/thumbnails/28.jpg)
LTAT.05.003 / Lecture 01.2 / © Dietmar Pfahl 2017
Processes Dev. Practices Used in Estonia
![Page 29: LTAT.05.003 Software Engineering - ut · Software Engineering Lecture 01.2: Introduction to Software Engineering Dietmar Pfahl ... Software Development Processes Process SYSTEM REQUIREMENTS](https://reader034.fdocuments.fr/reader034/viewer/2022042515/5f993590c47e590156189c85/html5/thumbnails/29.jpg)
LTAT.05.003 / Lecture 01.2 / © Dietmar Pfahl 2017
Processes Dev. Practices Used in Sweden
![Page 30: LTAT.05.003 Software Engineering - ut · Software Engineering Lecture 01.2: Introduction to Software Engineering Dietmar Pfahl ... Software Development Processes Process SYSTEM REQUIREMENTS](https://reader034.fdocuments.fr/reader034/viewer/2022042515/5f993590c47e590156189c85/html5/thumbnails/30.jpg)
LTAT.05.003 / Lecture 01.2 / © Dietmar Pfahl 2017
Processes Dev. Practives Used in 26 Countries
![Page 31: LTAT.05.003 Software Engineering - ut · Software Engineering Lecture 01.2: Introduction to Software Engineering Dietmar Pfahl ... Software Development Processes Process SYSTEM REQUIREMENTS](https://reader034.fdocuments.fr/reader034/viewer/2022042515/5f993590c47e590156189c85/html5/thumbnails/31.jpg)
LTAT.05.003 / Lecture 01.2 / © Dietmar Pfahl 2017
Processes Company Sizes of Respondents: Estonia vs. Sweden vs. 26 Countries
![Page 32: LTAT.05.003 Software Engineering - ut · Software Engineering Lecture 01.2: Introduction to Software Engineering Dietmar Pfahl ... Software Development Processes Process SYSTEM REQUIREMENTS](https://reader034.fdocuments.fr/reader034/viewer/2022042515/5f993590c47e590156189c85/html5/thumbnails/32.jpg)
LTAT.05.003 / Lecture 01.02 / © Dietmar Pfahl 2017
Software Engineering Management
Consistentapplica-onofengineeringprinciplesandmethodstothedevelopmentofso5ware(intensive)systems
Engineering:Applica-onofsystema-c(i.e.,predictable,repeatable,scalable)procedures-withwell-definedgoals(e.g.,quality,func-onality/scope,cost,-me)-withwell-defined/structuredproducts,processes,andorganiza-onAdherencetoexis-ngbodyofknowledgeObserva-onofconstraints(standards,-me/cost/qualityrequirements,etc.)Developmentanduseofmodels
Planning–decidingwhatistobedoneOrganizing–makingarrangementsStaffing–selec-ngtherightpeopleforthejobDirec-ng–givinginstruc-onsMonitoring–checkingonprogressControlling–takingac-ontoremedyhold-upsInnova-ng–findingsolu-onswhenproblemsemergeRepresen-ng–liaisingwithclients,users,developersandotherstakeholders
![Page 33: LTAT.05.003 Software Engineering - ut · Software Engineering Lecture 01.2: Introduction to Software Engineering Dietmar Pfahl ... Software Development Processes Process SYSTEM REQUIREMENTS](https://reader034.fdocuments.fr/reader034/viewer/2022042515/5f993590c47e590156189c85/html5/thumbnails/33.jpg)
LTAT.05.003 / Lecture 01.02 / © Dietmar Pfahl 2017
Magic Triangle of SE
![Page 34: LTAT.05.003 Software Engineering - ut · Software Engineering Lecture 01.2: Introduction to Software Engineering Dietmar Pfahl ... Software Development Processes Process SYSTEM REQUIREMENTS](https://reader034.fdocuments.fr/reader034/viewer/2022042515/5f993590c47e590156189c85/html5/thumbnails/34.jpg)
LTAT.05.003 / Lecture 01.02 / © Dietmar Pfahl 2017
Software Engineering
Software Product/ System
A bridge from customer/user needs to software product
Customer, User Needs Developer
(SW Engineer)
![Page 35: LTAT.05.003 Software Engineering - ut · Software Engineering Lecture 01.2: Introduction to Software Engineering Dietmar Pfahl ... Software Development Processes Process SYSTEM REQUIREMENTS](https://reader034.fdocuments.fr/reader034/viewer/2022042515/5f993590c47e590156189c85/html5/thumbnails/35.jpg)
LTAT.05.003 / Lecture 01.2 / © Dietmar Pfahl 2017
Next Lecture
• Date/Time: • Friday, 15-Sep, 10:15-12:00
• Topic: • Requirements Engineering I 1st Homework!
• For you to do: • Have a look at the course wiki • Make sure you know to which lab group you have
been enrolled + start forming project teams • MOST IMPORTANTLY: Go to the labs next week!