![Page 1: LTAT.05.003 Software Engineering · 2021. 7. 14. · Software must evolve to meet changing needs; Dependability (Reliability) Software must be trustworthy; Efficiency Software should](https://reader035.vdocument.in/reader035/viewer/2022071605/6140add92e263e64232a381a/html5/thumbnails/1.jpg)
LTAT.05.003 / Lecture 01.2 / © Dietmar Pfahl 2020
LTAT.05.003 Software Engineering
Lecture 01.2: Introduction to Software Engineering
Dietmar Pfahl
email: [email protected] 2020
![Page 2: LTAT.05.003 Software Engineering · 2021. 7. 14. · Software must evolve to meet changing needs; Dependability (Reliability) Software must be trustworthy; Efficiency Software should](https://reader035.vdocument.in/reader035/viewer/2022071605/6140add92e263e64232a381a/html5/thumbnails/2.jpg)
LTAT.05.003 / Lecture 01.2 / © Dietmar Pfahl 2020
Schedule of Lectures
Week 01: Introduction to SEWeek 02: Requirements Engineering I
Week 03: Requirements Engineering II
Week 04: Analysis
Week 05: Development Infrastructure
Week 06: Continuous Development
and Integration
Week 07: Project Estimation /
Architecture and Design I
Week 08: Architecture and Design II
Week 09: Verification and Validation I
Week 10: Verification and Validation II
Week 11: Refactoring (and TDD)
Week 12: Agile/Lean Methods
Week 13: Industry Guest Lecture
Week 14: Course wrap-up, review and
exam preparation
Week 15: Reserve time slot (no lecture
scheduled as of today)
![Page 3: LTAT.05.003 Software Engineering · 2021. 7. 14. · Software must evolve to meet changing needs; Dependability (Reliability) Software must be trustworthy; Efficiency Software should](https://reader035.vdocument.in/reader035/viewer/2022071605/6140add92e263e64232a381a/html5/thumbnails/3.jpg)
LTAT.05.003 / Lecture 01.2 / © Dietmar Pfahl 2020
Software Engineering
What?Why?
![Page 4: LTAT.05.003 Software Engineering · 2021. 7. 14. · Software must evolve to meet changing needs; Dependability (Reliability) Software must be trustworthy; Efficiency Software should](https://reader035.vdocument.in/reader035/viewer/2022071605/6140add92e263e64232a381a/html5/thumbnails/4.jpg)
LTAT.05.003 / Lecture 01.2 / © Dietmar Pfahl 2020
Software Development – Three Ps
• Software Development
Project orIteration
P ?
P ? P ?
![Page 5: LTAT.05.003 Software Engineering · 2021. 7. 14. · Software must evolve to meet changing needs; Dependability (Reliability) Software must be trustworthy; Efficiency Software should](https://reader035.vdocument.in/reader035/viewer/2022071605/6140add92e263e64232a381a/html5/thumbnails/5.jpg)
LTAT.05.003 / Lecture 01.2 / © Dietmar Pfahl 2020
Software Development – Three Ps• Software
Development
Project or Iteration
Products
People Processes
![Page 6: LTAT.05.003 Software Engineering · 2021. 7. 14. · Software must evolve to meet changing needs; Dependability (Reliability) Software must be trustworthy; Efficiency Software should](https://reader035.vdocument.in/reader035/viewer/2022071605/6140add92e263e64232a381a/html5/thumbnails/6.jpg)
LTAT.05.003 / Lecture 01.2 / © Dietmar Pfahl 2020
Software Development – Three Ps• Software
Development
Project or Iteration
Products
People Processes
![Page 7: LTAT.05.003 Software Engineering · 2021. 7. 14. · Software must evolve to meet changing needs; Dependability (Reliability) Software must be trustworthy; Efficiency Software should](https://reader035.vdocument.in/reader035/viewer/2022071605/6140add92e263e64232a381a/html5/thumbnails/7.jpg)
LTAT.05.003 / Lecture 01.2 / © Dietmar Pfahl 2020
Products in Software Development
?
![Page 8: LTAT.05.003 Software Engineering · 2021. 7. 14. · Software must evolve to meet changing needs; Dependability (Reliability) Software must be trustworthy; Efficiency Software should](https://reader035.vdocument.in/reader035/viewer/2022071605/6140add92e263e64232a381a/html5/thumbnails/8.jpg)
LTAT.05.003 / Lecture 01.2 / © Dietmar Pfahl 2020
Products in Software Development
![Page 9: LTAT.05.003 Software Engineering · 2021. 7. 14. · Software must evolve to meet changing needs; Dependability (Reliability) Software must be trustworthy; Efficiency Software should](https://reader035.vdocument.in/reader035/viewer/2022071605/6140add92e263e64232a381a/html5/thumbnails/9.jpg)
LTAT.05.003 / Lecture 01.2 / © Dietmar Pfahl 2020
Products in Software Development
ProductsCode:- 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- Mobile application- Systems of systems- ...
Properties of Software:- Functionality- Reliability- Usability- Efficiency- Maintainability- Portability
![Page 10: LTAT.05.003 Software Engineering · 2021. 7. 14. · Software must evolve to meet changing needs; Dependability (Reliability) Software must be trustworthy; Efficiency Software should](https://reader035.vdocument.in/reader035/viewer/2022071605/6140add92e263e64232a381a/html5/thumbnails/10.jpg)
LTAT.05.003 / Lecture 01.2 / © Dietmar Pfahl 2020
Software in a CarProducts
ECU = Electronic Control Unit +Autonomous driving
Secure cloud communication
![Page 11: LTAT.05.003 Software Engineering · 2021. 7. 14. · Software must evolve to meet changing needs; Dependability (Reliability) Software must be trustworthy; Efficiency Software should](https://reader035.vdocument.in/reader035/viewer/2022071605/6140add92e263e64232a381a/html5/thumbnails/11.jpg)
LTAT.05.003 / Lecture 01.2 / © Dietmar Pfahl 2020
Properties of SoftwareThe software should deliver the required functionality and performance to the user and should be maintainable, dependable and acceptable.
MaintainabilitySoftware must evolve to meet changing needs;
Dependability (Reliability)Software must be trustworthy;
EfficiencySoftware should not make wasteful use of system resources;
UsabilitySoftware 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 12: LTAT.05.003 Software Engineering · 2021. 7. 14. · Software must evolve to meet changing needs; Dependability (Reliability) Software must be trustworthy; Efficiency Software should](https://reader035.vdocument.in/reader035/viewer/2022071605/6140add92e263e64232a381a/html5/thumbnails/12.jpg)
LTAT.05.003 / Lecture 01.2 / © Dietmar Pfahl 2020
SW Product ModelingUML = Unified Modeling Language
Online information:http://www.uml.org
Products
![Page 13: LTAT.05.003 Software Engineering · 2021. 7. 14. · Software must evolve to meet changing needs; Dependability (Reliability) Software must be trustworthy; Efficiency Software should](https://reader035.vdocument.in/reader035/viewer/2022071605/6140add92e263e64232a381a/html5/thumbnails/13.jpg)
LTAT.05.003 / Lecture 01.2 / © Dietmar Pfahl 2020
Software Development – Three Ps• Software
Development
Project or Iteration
Products
People Processes
![Page 14: LTAT.05.003 Software Engineering · 2021. 7. 14. · Software must evolve to meet changing needs; Dependability (Reliability) Software must be trustworthy; Efficiency Software should](https://reader035.vdocument.in/reader035/viewer/2022071605/6140add92e263e64232a381a/html5/thumbnails/14.jpg)
LTAT.05.003 / Lecture 01.2 / © Dietmar Pfahl 2020
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 15: LTAT.05.003 Software Engineering · 2021. 7. 14. · Software must evolve to meet changing needs; Dependability (Reliability) Software must be trustworthy; Efficiency Software should](https://reader035.vdocument.in/reader035/viewer/2022071605/6140add92e263e64232a381a/html5/thumbnails/15.jpg)
LTAT.05.003 / Lecture 01.2 / © Dietmar Pfahl 2020
Software Development – Three Ps• Software
Development
Project or Iteration
Products
People Processes
![Page 16: LTAT.05.003 Software Engineering · 2021. 7. 14. · Software must evolve to meet changing needs; Dependability (Reliability) Software must be trustworthy; Efficiency Software should](https://reader035.vdocument.in/reader035/viewer/2022071605/6140add92e263e64232a381a/html5/thumbnails/16.jpg)
LTAT.05.003 / Lecture 01.2 / © Dietmar Pfahl 2020
Software DevelopmentProcess
Coding
Deploying
Processes
![Page 17: LTAT.05.003 Software Engineering · 2021. 7. 14. · Software must evolve to meet changing needs; Dependability (Reliability) Software must be trustworthy; Efficiency Software should](https://reader035.vdocument.in/reader035/viewer/2022071605/6140add92e263e64232a381a/html5/thumbnails/17.jpg)
LTAT.05.003 / Lecture 01.2 / © Dietmar Pfahl 2020
Software DevelopmentProcess
Find Requirements
Analysis / Designing
Coding
Testing
Deploying
Processes
![Page 18: LTAT.05.003 Software Engineering · 2021. 7. 14. · Software must evolve to meet changing needs; Dependability (Reliability) Software must be trustworthy; Efficiency Software should](https://reader035.vdocument.in/reader035/viewer/2022071605/6140add92e263e64232a381a/html5/thumbnails/18.jpg)
LTAT.05.003 / Lecture 01.2 / © Dietmar Pfahl 2020
ProcessesSoftware 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 19: LTAT.05.003 Software Engineering · 2021. 7. 14. · Software must evolve to meet changing needs; Dependability (Reliability) Software must be trustworthy; Efficiency Software should](https://reader035.vdocument.in/reader035/viewer/2022071605/6140add92e263e64232a381a/html5/thumbnails/19.jpg)
LTAT.05.003 / Lecture 01.2 / © Dietmar Pfahl 2020
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 20: LTAT.05.003 Software Engineering · 2021. 7. 14. · Software must evolve to meet changing needs; Dependability (Reliability) Software must be trustworthy; Efficiency Software should](https://reader035.vdocument.in/reader035/viewer/2022071605/6140add92e263e64232a381a/html5/thumbnails/20.jpg)
LTAT.05.003 / Lecture 01.2 / © Dietmar Pfahl 2020
Agile ProcessProcesses
![Page 21: LTAT.05.003 Software Engineering · 2021. 7. 14. · Software must evolve to meet changing needs; Dependability (Reliability) Software must be trustworthy; Efficiency Software should](https://reader035.vdocument.in/reader035/viewer/2022071605/6140add92e263e64232a381a/html5/thumbnails/21.jpg)
LTAT.05.003 / Lecture 01.2 / © Dietmar Pfahl 2020
Agile ProcessProcesses
Scrum
eXtreme Programming (XP)
![Page 22: LTAT.05.003 Software Engineering · 2021. 7. 14. · Software must evolve to meet changing needs; Dependability (Reliability) Software must be trustworthy; Efficiency Software should](https://reader035.vdocument.in/reader035/viewer/2022071605/6140add92e263e64232a381a/html5/thumbnails/22.jpg)
LTAT.05.003 / Lecture 01.2 / © Dietmar Pfahl 2020
Scrum Elements –Process, Artifacts, Roles
http://www.scrumforteamsystem.com/processguidance/v1/Scrum/Scrum.html
Processes
![Page 23: LTAT.05.003 Software Engineering · 2021. 7. 14. · Software must evolve to meet changing needs; Dependability (Reliability) Software must be trustworthy; Efficiency Software should](https://reader035.vdocument.in/reader035/viewer/2022071605/6140add92e263e64232a381a/html5/thumbnails/23.jpg)
LTAT.05.003 / Lecture 01.2 / © Dietmar Pfahl 2020
Processes
![Page 24: LTAT.05.003 Software Engineering · 2021. 7. 14. · Software must evolve to meet changing needs; Dependability (Reliability) Software must be trustworthy; Efficiency Software should](https://reader035.vdocument.in/reader035/viewer/2022071605/6140add92e263e64232a381a/html5/thumbnails/24.jpg)
LTAT.05.003 / Lecture 01.2 / © Dietmar Pfahl 2020
ProcessesComparison of Basic Process Types
RUP = Rational Unified ProcessXP = Extreme Programming
![Page 25: LTAT.05.003 Software Engineering · 2021. 7. 14. · Software must evolve to meet changing needs; Dependability (Reliability) Software must be trustworthy; Efficiency Software should](https://reader035.vdocument.in/reader035/viewer/2022071605/6140add92e263e64232a381a/html5/thumbnails/25.jpg)
LTAT.05.003 / Lecture 01.2 / © Dietmar Pfahl 2020
ProcessesSurvey – Software DevelopmentProcesses and Practices
RUP = Rational Unified ProcessXP = Extreme Programming
• 26 Countries
• 500+ Responses (from Industry!)
• URL: https://helenastudy.wordpress.com
![Page 26: LTAT.05.003 Software Engineering · 2021. 7. 14. · Software must evolve to meet changing needs; Dependability (Reliability) Software must be trustworthy; Efficiency Software should](https://reader035.vdocument.in/reader035/viewer/2022071605/6140add92e263e64232a381a/html5/thumbnails/26.jpg)
LTAT.05.003 / Lecture 01.2 / © Dietmar Pfahl 2020
ProcessesProcess Frameworks Used in 26 Countries always usedoften used
1. Scrum2. Iterative Development3. Kanban4. DevOps (CI/CD)5. Classic Waterfall
![Page 27: LTAT.05.003 Software Engineering · 2021. 7. 14. · Software must evolve to meet changing needs; Dependability (Reliability) Software must be trustworthy; Efficiency Software should](https://reader035.vdocument.in/reader035/viewer/2022071605/6140add92e263e64232a381a/html5/thumbnails/27.jpg)
LTAT.05.003 / Lecture 01.2 / © Dietmar Pfahl 2020
ProcessesProcess Frameworks Used in Estonia
1. Scrum2. DevOps (CI/CD)3. Iterative Development4. Kanban5. XP
always usedoften used
![Page 28: LTAT.05.003 Software Engineering · 2021. 7. 14. · Software must evolve to meet changing needs; Dependability (Reliability) Software must be trustworthy; Efficiency Software should](https://reader035.vdocument.in/reader035/viewer/2022071605/6140add92e263e64232a381a/html5/thumbnails/28.jpg)
LTAT.05.003 / Lecture 01.2 / © Dietmar Pfahl 2020
ProcessesProcess Frameworks Used in Swedenalways usedoften used
1. Scrum2. Iterative Development3. Kanban4. Classic Waterfall5. XP
![Page 29: LTAT.05.003 Software Engineering · 2021. 7. 14. · Software must evolve to meet changing needs; Dependability (Reliability) Software must be trustworthy; Efficiency Software should](https://reader035.vdocument.in/reader035/viewer/2022071605/6140add92e263e64232a381a/html5/thumbnails/29.jpg)
LTAT.05.003 / Lecture 01.2 / © Dietmar Pfahl 2020
ProcessesCompany Sizes of Respondents:Estonia vs. Sweden vs. 26 Countries
![Page 30: LTAT.05.003 Software Engineering · 2021. 7. 14. · Software must evolve to meet changing needs; Dependability (Reliability) Software must be trustworthy; Efficiency Software should](https://reader035.vdocument.in/reader035/viewer/2022071605/6140add92e263e64232a381a/html5/thumbnails/30.jpg)
LTAT.05.003 / Lecture 01.02 / © Dietmar Pfahl 2020
Software Engineering Management
Consistent application ofengineering principles and methods to the development of software (intensive) systems
Engineering:Application of systematic (i.e., predictable, repeatable, scalable) procedures- with well-defined goals (e.g., quality, functionality/scope, cost, time)- with well-defined/structured products, processes, and organizationAdherence to existing body of knowledgeObservation of constraints (standards, time/cost/quality requirements, etc.)Development and use of models
Planning – deciding what is to be doneOrganizing – making arrangementsStaffing – selecting the right people for the jobDirecting – giving instructionsMonitoring – checking on progressControlling – taking action to remedy hold-upsInnovating – finding solutions when problems emergeRepresenting – liaising with clients, users, developers and other stakeholders
![Page 31: LTAT.05.003 Software Engineering · 2021. 7. 14. · Software must evolve to meet changing needs; Dependability (Reliability) Software must be trustworthy; Efficiency Software should](https://reader035.vdocument.in/reader035/viewer/2022071605/6140add92e263e64232a381a/html5/thumbnails/31.jpg)
LTAT.05.003 / Lecture 01.02 / © Dietmar Pfahl 2020
Magic Triangle of SE
![Page 32: LTAT.05.003 Software Engineering · 2021. 7. 14. · Software must evolve to meet changing needs; Dependability (Reliability) Software must be trustworthy; Efficiency Software should](https://reader035.vdocument.in/reader035/viewer/2022071605/6140add92e263e64232a381a/html5/thumbnails/32.jpg)
LTAT.05.003 / Lecture 01.02 / © Dietmar Pfahl 2020
Software Engineering
SoftwareProduct/System
A bridge from customer/user needsto software product
Customer,UserNeeds Developer
(SW Engineer)
![Page 33: LTAT.05.003 Software Engineering · 2021. 7. 14. · Software must evolve to meet changing needs; Dependability (Reliability) Software must be trustworthy; Efficiency Software should](https://reader035.vdocument.in/reader035/viewer/2022071605/6140add92e263e64232a381a/html5/thumbnails/33.jpg)
LTAT.05.003 / Lecture 01.2 / © Dietmar Pfahl 2020
Next Lecture
• Date/Time:• Friday, 11-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!