51
TIE-21100 Ohjelmistotuotannon menetelmät TIE-21106 Software Engineering Methodology Kari Systä 2015 2015-01-12 TIE-21100/21106 1

TIE-21100 Ohjelmistotuotannon menetelmät TIE-21106 Software Engineering … · 2015. 1. 13. · TIE-21106 Software Engineering Methodology Kari Systä 2015 2015-01-12 TIE-21100/21106

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: TIE-21100 Ohjelmistotuotannon menetelmät TIE-21106 Software Engineering … · 2015. 1. 13. · TIE-21106 Software Engineering Methodology Kari Systä 2015 2015-01-12 TIE-21100/21106

TIE-21100 Ohjelmistotuotannon menetelmät

TIE-21106 Software Engineering Methodology

Kari Systä

2015

2015-01-12 TIE-21100/21106 1

Page 2: TIE-21100 Ohjelmistotuotannon menetelmät TIE-21106 Software Engineering … · 2015. 1. 13. · TIE-21106 Software Engineering Methodology Kari Systä 2015 2015-01-12 TIE-21100/21106

Is this TIE-21100 or TIE-21106?

• Sorry for the confusion !

• Officially, there are two codes 21100 and 21106 but the content and implementation is the same.

• We tried to optimize by directing all students to same course in POP – But then we found out that this cannot be done

due admin and other reasons.

2015-01-12 TIE-21100/21106 2

Page 3: TIE-21100 Ohjelmistotuotannon menetelmät TIE-21106 Software Engineering … · 2015. 1. 13. · TIE-21106 Software Engineering Methodology Kari Systä 2015 2015-01-12 TIE-21100/21106

Lecture 1 - introduction

Course

• Learning goals, requirements, assumed background of students

• Practical arrangements

• Material

• Position of the course in our curriculum

Software engineering

• What is Software engineering anyways?

2015-01-12 TIE-21100/21106 3

Page 4: TIE-21100 Ohjelmistotuotannon menetelmät TIE-21106 Software Engineering … · 2015. 1. 13. · TIE-21106 Software Engineering Methodology Kari Systä 2015 2015-01-12 TIE-21100/21106

Content of the course

• Lectures (on Mondays 14-16)

• Weekly exercises

– Practical view to topics from the lectures

– Useful skills for the project

– Bonus points through active participation

• Project

– A small and managed software project

• End Gala

2015-01-12 TIE-21100/21106 4

Page 5: TIE-21100 Ohjelmistotuotannon menetelmät TIE-21106 Software Engineering … · 2015. 1. 13. · TIE-21106 Software Engineering Methodology Kari Systä 2015 2015-01-12 TIE-21100/21106

Passing and grading

• Lectures

– Not compulsory but will be useful for exam

• Exam

– 24 points

• Weekly exercises

– 6 points

• Project

– 6 points

2015-01-12 TIE-21100/21106 5

Page 6: TIE-21100 Ohjelmistotuotannon menetelmät TIE-21106 Software Engineering … · 2015. 1. 13. · TIE-21106 Software Engineering Methodology Kari Systä 2015 2015-01-12 TIE-21100/21106

Our software (we are also helping some other activities)

• POP & ROCK – All ”standard” information, calendar – Announcements

• Course Web (http://www.cs.tut.fi/kurssit/TIE-21100/)

• Canvas (https://mooc.tut.fi/courses/9) – Potential future option to ”Moodle” – Replaces Idle – You will get invitations when you need to act (no polling of this

tool needed)

• Celkee Insight – Kaiku provides valuable information, but only after the course – Celkee Insight can provide real-time information – Participation voluntary, but of you do please be use regularly

2015-01-12 TIE-21100/21106 6

Page 7: TIE-21100 Ohjelmistotuotannon menetelmät TIE-21106 Software Engineering … · 2015. 1. 13. · TIE-21106 Software Engineering Methodology Kari Systä 2015 2015-01-12 TIE-21100/21106

Weekly exercises

Times • TUE 10:15 - 12:00, TC131, Tensu. • TUE 12:15 - 14:00, TC131, Tensu. • WED 10:15 - 12:00, TC103, Farshad. • WED 12:15 - 14:00, TC103, Farshad. • WED 14:15 - 16:00, TC103, Farshad. • THU 10:15 - 12:00, TC131, Marko. • THU 12:15 - 14:00, TC133, Marko. Please sign-up if you haven’t already!

2015-01-12 TIE-21100/21106 7

Page 8: TIE-21100 Ohjelmistotuotannon menetelmät TIE-21106 Software Engineering … · 2015. 1. 13. · TIE-21106 Software Engineering Methodology Kari Systä 2015 2015-01-12 TIE-21100/21106

The Project

A simple SW project is – Planned

– Requirements are defined and prioritized

– Executed in 3 or 4 ”sprints”

The work includes effort estimation, tracking and reporting

At the end we will have an “end gala” where

• Teams represent their project and end result

• Winner(s) is/are selected

2015-01-12 TIE-21100/21106 8

Page 9: TIE-21100 Ohjelmistotuotannon menetelmät TIE-21106 Software Engineering … · 2015. 1. 13. · TIE-21106 Software Engineering Methodology Kari Systä 2015 2015-01-12 TIE-21100/21106

The staff

• Kari Systä, lectures [email protected]

• Tero Ahtee coordination of weekly exercises [email protected]

• Marko Leppänen, coordination of project [email protected]

• Hadaytullah, guidance and tracking of the project [email protected]

• Ahmadighohandizi Farshad, weekly exercises [email protected]

2015-01-12 TIE-21100/21106 9

Page 10: TIE-21100 Ohjelmistotuotannon menetelmät TIE-21106 Software Engineering … · 2015. 1. 13. · TIE-21106 Software Engineering Methodology Kari Systä 2015 2015-01-12 TIE-21100/21106

Learning goals (1/2)

2015-01-12 TIE-21100/21106 10

Core content

Complementary knowledge Specialist knowledge

Know principles and general issues of SW projects - including effort estimation and tracking techniques.

Can set-up a project team. Can plan a SW project. Can track and steer a SW project.

Can be an efficient manager/PO for a non-trivial project. Can act in process improvement roles.

Know their backgrounds and general principles of life-cycle models. Can be a project member in a Scrum team without additional training

Knows benefits and drawbacks of different models Can be a Scrum master without additional training

Can select and adapt life-cycle models for the organization.

Know common quality assurance techniques Basic knowledge of quality systems and standards

Can select required quality assurance practices for a team. Can ensure that practices are applied in an efficient manner

Understands what is expected from organization when preparing for quality audits

Page 11: TIE-21100 Ohjelmistotuotannon menetelmät TIE-21106 Software Engineering … · 2015. 1. 13. · TIE-21106 Software Engineering Methodology Kari Systä 2015 2015-01-12 TIE-21100/21106

…Learning goals (2/2)

2015-01-12 TIE-21100/21106 11

Core content

Complementary knowledge Specialist knowledge

Know principles of requirements management Know how to handle requirements in Scrum

Can be responsible of requirement management in an organization Can act a product owner in a project

Know principles of configuration and version management Know how to apply CM in practical projects

Can independently apply In practice, can set up a repository

Can create and communicate guidelines

Page 12: TIE-21100 Ohjelmistotuotannon menetelmät TIE-21106 Software Engineering … · 2015. 1. 13. · TIE-21106 Software Engineering Methodology Kari Systä 2015 2015-01-12 TIE-21100/21106

This is not a programming course

• But understanding of challenges in programming and basic programming skills are needed

– The project require simple programming

• Programming and SW design skills are appreciated, but we have different courses for that.

2015-01-12 TIE-21100/21106 12

Page 13: TIE-21100 Ohjelmistotuotannon menetelmät TIE-21106 Software Engineering … · 2015. 1. 13. · TIE-21106 Software Engineering Methodology Kari Systä 2015 2015-01-12 TIE-21100/21106

Customers, business

Positioning of this course

2015-01-12 TIE-21100/21106 13

Bachelor level Masters level

Intro to SE 21100/

21106 Project work

Page 14: TIE-21100 Ohjelmistotuotannon menetelmät TIE-21106 Software Engineering … · 2015. 1. 13. · TIE-21106 Software Engineering Methodology Kari Systä 2015 2015-01-12 TIE-21100/21106

A bit of history of this course

2015-01-12 TIE-21100/21106 14

Johdanto (Intro to SE)

21100/ 21106

Project work

Ohjelmistotuo- tannon menetelmät

Software engineering methodology

Software evolution & maintenance

Page 15: TIE-21100 Ohjelmistotuotannon menetelmät TIE-21106 Software Engineering … · 2015. 1. 13. · TIE-21106 Software Engineering Methodology Kari Systä 2015 2015-01-12 TIE-21100/21106

Position in study modules

• Pervasive Computing – Especially for Software Engineering specialization

(4th year)

• Ohjelmistotuotannon menetelmät/ Software Engineering – Compulsory (3rd year)

• Ohjelmistotekniikka/ Software Systems – Complementary course

2015-01-12 TIE-21100/21106 15

Page 16: TIE-21100 Ohjelmistotuotannon menetelmät TIE-21106 Software Engineering … · 2015. 1. 13. · TIE-21106 Software Engineering Methodology Kari Systä 2015 2015-01-12 TIE-21100/21106

A quick background survey

• SW has been your major in Bachelor?

• How many have programmed for salary?

• Who has been member of a programming team of more than 3 persons?

• Who has used version management tools?

– SVN?

– GIT?

– Other?

2015-01-12 TIE-21100/21106 16

Page 17: TIE-21100 Ohjelmistotuotannon menetelmät TIE-21106 Software Engineering … · 2015. 1. 13. · TIE-21106 Software Engineering Methodology Kari Systä 2015 2015-01-12 TIE-21100/21106

Learning goals rephrased i.e. the relevance

• Organization of the SW development – Why important, why difficult?

– Learn to plan and organize

• What (in addition to how) – Make SW that clients and users need and want?

• Quality – What it is and how to achieve it?

• Business – How much SW development costs – and why

2015-01-12 TIE-21100/21106 17

Page 18: TIE-21100 Ohjelmistotuotannon menetelmät TIE-21106 Software Engineering … · 2015. 1. 13. · TIE-21106 Software Engineering Methodology Kari Systä 2015 2015-01-12 TIE-21100/21106

Buzz works

Agile, Scrum, Requirements, Waterfall, Quality Systems, COCOMO, CMM, UML, RUP, XP, 2015-01-12 TIE-21100/21106 18

Page 19: TIE-21100 Ohjelmistotuotannon menetelmät TIE-21106 Software Engineering … · 2015. 1. 13. · TIE-21106 Software Engineering Methodology Kari Systä 2015 2015-01-12 TIE-21100/21106

Initial plan of the lectures

2015-01-12 TIE-21100/21106 19

12.01 Introduction to the course and software engineering

19.01 Life-cycle/process models Project planning (part 1)

26.01 Scrum (part 1)

02.02 Requirement management

09.02 Version and configuration management

16.02 Scrum part 2. Roles of Scrum master, product owner. How to be use backlog as a RM tool.

23.02 Project planning (part 2): effort estimation

02.03 Modern practices Continuous Integration, Continuous Deployment, DevOps,..

9.03. No lectures - exam week

17.3

Improving Quality: review practices, testing and quality assurance Quality in general; Quality management systems

23.3 Dependable and safety-critical systems

30.3 Other methods; Lean; Kanban .

6.4 Easter - no lectures

13.4 Role of software architecture; software maintenance; software evolution

20.4 Software business, software start-ups

27.4 Guest lecture 1

4.5 Guest lecture 2

Page 20: TIE-21100 Ohjelmistotuotannon menetelmät TIE-21106 Software Engineering … · 2015. 1. 13. · TIE-21106 Software Engineering Methodology Kari Systä 2015 2015-01-12 TIE-21100/21106

Material

• Slides from lectures • Haikala, Mikkonen: Ohjelmistotuotannon käytännöt • Sommerville: Software engineering, 9th edition

– http://ifs.host.cs.st-andrews.ac.uk/Books/SE9/ – http://iansommerville.com/software-engineering-book/

• The Guide to the Software Engineering Body of Knowledge (SWEBOK Guide) – http://www.computer.org/portal/web/swebok

• Scrum guide in many languages – https://www.scrum.org/Resources

• More links will be collected to the web page. 2015-01-12 TIE-21100/21106 20

Page 21: TIE-21100 Ohjelmistotuotannon menetelmät TIE-21106 Software Engineering … · 2015. 1. 13. · TIE-21106 Software Engineering Methodology Kari Systä 2015 2015-01-12 TIE-21100/21106

What is Software Engineering

2015-01-12 TIE-21100/21106 21

Page 22: TIE-21100 Ohjelmistotuotannon menetelmät TIE-21106 Software Engineering … · 2015. 1. 13. · TIE-21106 Software Engineering Methodology Kari Systä 2015 2015-01-12 TIE-21100/21106

A few definitions

• ” Software engineering may be defined as the systematic design and development of software products and the management of the software process”

– Mills, H.D. , IBM Systems Journal Vol19 , Issue: 4, 1980

• “Software Engineering is the study and application of engineering to the design, development, and maintenance of software.”

– http://en.wikipedia.org/wiki/Software_engineering

2015-01-12 TIE-21100/21106 22

Page 23: TIE-21100 Ohjelmistotuotannon menetelmät TIE-21106 Software Engineering … · 2015. 1. 13. · TIE-21106 Software Engineering Methodology Kari Systä 2015 2015-01-12 TIE-21100/21106

Ohjelmistokriisi (Software Crisis)

• Term was invented at the first NATO Software Engineering Conference in 1968

• Symptoms (then and still) – Projects running over-budget. – Projects running over-time. – Software was very inefficient. – Software was of low quality. – Software often did not meet requirements. – Projects were unmanageable and code difficult to

maintain. – Software was never delivered.

23 2015-01-12 TIE-21100/21106

Page 24: TIE-21100 Ohjelmistotuotannon menetelmät TIE-21106 Software Engineering … · 2015. 1. 13. · TIE-21106 Software Engineering Methodology Kari Systä 2015 2015-01-12 TIE-21100/21106

A quote

• “The major cause of the software crisis is that the machines have become several orders of magnitude more powerful! To put it quite bluntly: as long as there were no machines, programming was no problem at all; when we had a few weak computers, programming became a mild problem, and now we have gigantic computers, programming has become an equally gigantic problem.“

-- E. Dijkstra, 1972 Turing Award Lecture

24 2015-01-12 TIE-21100/21106

Page 25: TIE-21100 Ohjelmistotuotannon menetelmät TIE-21106 Software Engineering … · 2015. 1. 13. · TIE-21106 Software Engineering Methodology Kari Systä 2015 2015-01-12 TIE-21100/21106

Three SW crisis • 60-70’s

– Problem: Assembly programming

– Solution: High-level programming languages (Fortran, C, Cobol)

• 80-90’s – Problem: Development and maintenance of complex

programs (millions of lines, many developer)

– Solution: Libraries, object-oriented programming, architecture, testing, review practices

– Solution: Good advanced design; extensive documentation

• 2000-- – Problem: software does not meet real needs of the users

– Solution: Agile methods

25 2015-01-12 TIE-21100/21106

Page 26: TIE-21100 Ohjelmistotuotannon menetelmät TIE-21106 Software Engineering … · 2015. 1. 13. · TIE-21106 Software Engineering Methodology Kari Systä 2015 2015-01-12 TIE-21100/21106

”Silver bullet”

• “There is no single development, in either technology or in management technique, that by itself promises even one order-of-magnitude improvement in productivity, in reliability, in simplicity.”

• "No Silver Bullet — Essence and Accidents of Software Engineering" is a widely discussed paper on software

engineering written by Fred Brooks in 1986.

2015-01-12 TIE-21100/21106 26

Page 27: TIE-21100 Ohjelmistotuotannon menetelmät TIE-21106 Software Engineering … · 2015. 1. 13. · TIE-21106 Software Engineering Methodology Kari Systä 2015 2015-01-12 TIE-21100/21106

Figure 1.6 in Haikala,Mikkonen translated by Kari

2015-01-12 TIE-21100/21106

27

Ad-hoc methods

Folklore/ tradition

Crystallization

Models, theories

Application to practice

New problems

Education & research

Page 28: TIE-21100 Ohjelmistotuotannon menetelmät TIE-21106 Software Engineering … · 2015. 1. 13. · TIE-21106 Software Engineering Methodology Kari Systä 2015 2015-01-12 TIE-21100/21106

2015-01-12 TIE-21100/21106 28

http://www.hs.fi/muistot/a1364358999646

Page 29: TIE-21100 Ohjelmistotuotannon menetelmät TIE-21106 Software Engineering … · 2015. 1. 13. · TIE-21106 Software Engineering Methodology Kari Systä 2015 2015-01-12 TIE-21100/21106

2015-01-12 29

Need/idea Prestudy

Forget Develop Order project

Tailor

Requirements

Buy

Design

Implement.

Test

Deployment Maintenance Closure

Select supplier

TIE-21100/21106

From needs to software

Page 30: TIE-21100 Ohjelmistotuotannon menetelmät TIE-21106 Software Engineering … · 2015. 1. 13. · TIE-21106 Software Engineering Methodology Kari Systä 2015 2015-01-12 TIE-21100/21106

Problems – for customer point of view

2015-01-12 30

0 5 10 15 20 25 30 35 40 45 50

Changes in company…

No crisis

Problems in inter-personal…

Problems in pricing model

Problems in contracts

Communication problems

Changing personel in…

Quality problems

Disagreement in project…

Buldget does not hold

Timetable does not hold

Lähde: tietotekniikan liiton, ohjelmistoyrittäjien ja Celkee OY:n tutkimus TIE-21100/21106

Page 31: TIE-21100 Ohjelmistotuotannon menetelmät TIE-21106 Software Engineering … · 2015. 1. 13. · TIE-21106 Software Engineering Methodology Kari Systä 2015 2015-01-12 TIE-21100/21106

Problems – provider view

2015-01-12 31

0 5 10 15 20 25

Changes in company structure

Problems in contract

Problems in pricing model

Inter-personal problems

No crisis

Budget does not hold

Quality does not hold

Changes in personel

Timetable does not hold

Disagreement of project content

Communication problems

Lähde: tietotekniikan liiton, ohjelmistoyrittäjien ja Celkee OY:n tutkimus TIE-21100/21106

Page 32: TIE-21100 Ohjelmistotuotannon menetelmät TIE-21106 Software Engineering … · 2015. 1. 13. · TIE-21106 Software Engineering Methodology Kari Systä 2015 2015-01-12 TIE-21100/21106

Some definitions by Sommerville (p.6) • Good software should deliver the required functionality and

performance to the user and should be maintainable, dependable, and usable

• Software engineering is an engineering discipline that is concerned with all aspects of software production

• Fundamentals of software engineering are software specification, software development, software validation, and software evolution

• Computer science focuses on theory and fundamentals; software engineering is concerned with practicalities of developing and delivering useful software

• System engineering is concerned with all aspects of computer-based systems development … software, hardware, ….

• Roughly 60% of the cost are development and 40% about validation. For custom software evolution costs often exceed development cost

2015-01-12 TIE-21100/21106 32

Page 33: TIE-21100 Ohjelmistotuotannon menetelmät TIE-21106 Software Engineering … · 2015. 1. 13. · TIE-21106 Software Engineering Methodology Kari Systä 2015 2015-01-12 TIE-21100/21106

Software Engineering Ethics

2015-01-12 TIE-21100/21106 33

Page 34: TIE-21100 Ohjelmistotuotannon menetelmät TIE-21106 Software Engineering … · 2015. 1. 13. · TIE-21106 Software Engineering Methodology Kari Systä 2015 2015-01-12 TIE-21100/21106

Software Engineering Ethics

• Confidentiality

• Competence

• Intellectual Property Rights

• Computer Misuse

2015-01-12 TIE-21100/21106 34

Page 35: TIE-21100 Ohjelmistotuotannon menetelmät TIE-21106 Software Engineering … · 2015. 1. 13. · TIE-21106 Software Engineering Methodology Kari Systä 2015 2015-01-12 TIE-21100/21106

Software Engineering Code of Ethics and Professional Practice (Version 5.2) the ACM and the IEEE-CS as the standard for

teaching and practicing software engineering.

• See short and long verion at http://www.acm.org/about/se-code

2015-01-12 TIE-21100/21106 35

Page 36: TIE-21100 Ohjelmistotuotannon menetelmät TIE-21106 Software Engineering … · 2015. 1. 13. · TIE-21106 Software Engineering Methodology Kari Systä 2015 2015-01-12 TIE-21100/21106

• Software engineers shall commit themselves to making the analysis, specification, design, development, testing and maintenance of software a beneficial and respected profession. In accordance with their commitment to the health, safety and welfare of the public, software engineers shall adhere to the following Eight Principles:

• 1. PUBLIC - Software engineers shall act consistently with the public interest. • 2. CLIENT AND EMPLOYER - Software engineers shall act in a manner that is in

the best interests of their client and employer consistent with the public interest.

• 3. PRODUCT - Software engineers shall ensure that their products and related modifications meet the highest professional standards possible.

• 4. JUDGMENT - Software engineers shall maintain integrity and independence in their professional judgment.

• 5. MANAGEMENT - Software engineering managers and leaders shall subscribe to and promote an ethical approach to the management of software development and maintenance.

• 6. PROFESSION - Software engineers shall advance the integrity and reputation of the profession consistent with the public interest.

• 7. COLLEAGUES - Software engineers shall be fair to and supportive of their colleagues.

• 8. SELF - Software engineers shall participate in lifelong learning regarding the practice of their profession and shall promote an ethical approach to the practice of the profession.

2015-01-12 TIE-21100/21106 36

Page 37: TIE-21100 Ohjelmistotuotannon menetelmät TIE-21106 Software Engineering … · 2015. 1. 13. · TIE-21106 Software Engineering Methodology Kari Systä 2015 2015-01-12 TIE-21100/21106

Some ideas inspired by Alistair Cockburn

http://www.cs.tut.fi/tapahtumat/olio2008/

http://www.cs.tut.fi/tapahtumat/olio2008/esitykset/cockburn.pdf

2015-01-12 TIE-21100/21106 37

Page 38: TIE-21100 Ohjelmistotuotannon menetelmät TIE-21106 Software Engineering … · 2015. 1. 13. · TIE-21106 Software Engineering Methodology Kari Systä 2015 2015-01-12 TIE-21100/21106

Customer

What is software engineering

Skillful programming

Collaborative game

Lifecycle models

Requirements

Quality assurance

Testing Validation

Algoriths

Data structures

Progr. languages

Architectures

Project mgmt

Developer

2015-01-12 TIE-21100/21106 38

Page 39: TIE-21100 Ohjelmistotuotannon menetelmät TIE-21106 Software Engineering … · 2015. 1. 13. · TIE-21106 Software Engineering Methodology Kari Systä 2015 2015-01-12 TIE-21100/21106

Skillful programming

Collaborative game

Requirements

Quality assurance

Extended view

2015-01-12 TIE-21100/21106 39

Users Money

Developers Operation

Page 40: TIE-21100 Ohjelmistotuotannon menetelmät TIE-21106 Software Engineering … · 2015. 1. 13. · TIE-21106 Software Engineering Methodology Kari Systä 2015 2015-01-12 TIE-21100/21106

SWEBOK Guide V3.0 Topics http://www.computer.org/portal/web/swebok

• Chapter 1: Software Requirements • Chapter 2: Software Design • Chapter 3: Software Construction • Chapter 4: Software Testing • Chapter 5: Software Maintenance • Chapter 6: Software Configuration Management • Chapter 7: Software Engineering Management • Chapter 8: Software Engineering Process • Chapter 9: Software Engineering Models and Methods • Chapter 10: Software Quality • Chapter 11: Software Engineering Professional Practice • Chapter 12: Software Engineering Economics • Chapter 13: Computing Foundations • Chapter 14: Mathematical Foundations • Chapter 15: Engineering Foundations

2015-01-12 TIE-21100/21106 40

Page 41: TIE-21100 Ohjelmistotuotannon menetelmät TIE-21106 Software Engineering … · 2015. 1. 13. · TIE-21106 Software Engineering Methodology Kari Systä 2015 2015-01-12 TIE-21100/21106

Software requirements Key areas • Fundamentals and definition • Requirements Process and management • Requirements Elicitation; sources and techniques • Requirements Analysis • Requirements Specification and documentation • Requirements Validation • Practical Considerations, chance tracing etc • Software Requirements Tools Basics have been covered in introduction course, here we go a bit deeper and concentrate on bold topics According to initial plan lecture on 2.2 Sommerville Chapter 4, Haikala&Mikkonen Chapter 3

2015-01-12 TIE-21100/21106 41

Page 42: TIE-21100 Ohjelmistotuotannon menetelmät TIE-21106 Software Engineering … · 2015. 1. 13. · TIE-21106 Software Engineering Methodology Kari Systä 2015 2015-01-12 TIE-21100/21106

Software design and construction

• Examples of topics – Languages

– Concurrency

– Data bases

– Architectures

• We have plenty of other courses – not the focus in this course – we assume student to know quite a lot already

• Sommerville Chapters 6 and 7. Haikala & Mikkonen Chapter 14

2015-01-12 TIE-21100/21106 42

Page 43: TIE-21100 Ohjelmistotuotannon menetelmät TIE-21106 Software Engineering … · 2015. 1. 13. · TIE-21106 Software Engineering Methodology Kari Systä 2015 2015-01-12 TIE-21100/21106

Software Testing Topics • Software Testing Fundamentals • Test Levels, targets and objectives • Test Techniques • Test-Related Measures • Test Process • Software Testing Tools A separate course devoted, but in this course we discuss about process and connection to overall process. Sommerville Chapter 8, Haikala&Mikkonen Chapter 16

2015-01-12 TIE-21100/21106 43

Page 44: TIE-21100 Ohjelmistotuotannon menetelmät TIE-21106 Software Engineering … · 2015. 1. 13. · TIE-21106 Software Engineering Methodology Kari Systä 2015 2015-01-12 TIE-21100/21106

Software Maintenance Topics • Software Maintenance Fundamentals • Key Issues in Software Maintenance, technical,

management, cost, measurement • Maintenance Process and activities • Techniques for Maintenance, Program,

Comprehension, Reengineering, Reverse Engineering, Migration, Retirement

• Software Maintenance Tools Since evolution course was discontinued, we will basic cover maintenance and evolution in this course. Included in 13.4 lecture (according to current plan) Sommerville Chapter 9, Haikala&Mikkonen mentions in several places

2015-01-12 TIE-21100/21106 44

Page 45: TIE-21100 Ohjelmistotuotannon menetelmät TIE-21106 Software Engineering … · 2015. 1. 13. · TIE-21106 Software Engineering Methodology Kari Systä 2015 2015-01-12 TIE-21100/21106

Software Configuration Management Topics • Management of the SCM Process • Software Configuration Identification

– Identifying Items to Be Controlled – Software Library

• Software Configuration Control – Requesting, Evaluating, and Approving Software Changes – Implementing Software Changes – Deviations and Waivers

• Software Configuration Status Accounting • Software Configuration Auditing • Software Release Management and Delivery

– Software Building – Software Release Management

• Software Configuration Management Tools One lecture (9.2), Chapter 25 in Sommerville, Chapter 13 Haikala&Mikkonen

2015-01-12 TIE-21100/21106 45

Page 46: TIE-21100 Ohjelmistotuotannon menetelmät TIE-21106 Software Engineering … · 2015. 1. 13. · TIE-21106 Software Engineering Methodology Kari Systä 2015 2015-01-12 TIE-21100/21106

Software Engineering Management Topics, • Initiation and Scope Definition. Feasibility analysis …. • Software Project Planning • Software Project Enactment/implementation, monitoring • Review and Evaluation • Closure, Determining Closure, Activities • Software Engineering Measurement • Software Engineering Management Tools

For example lecture of 23.2, also discussed in other lectures. Sommerville Chapters (18,) 22-26. Haikala&Mikkonen: Chapter 12

2015-01-12 TIE-21100/21106 46

Page 47: TIE-21100 Ohjelmistotuotannon menetelmät TIE-21106 Software Engineering … · 2015. 1. 13. · TIE-21106 Software Engineering Methodology Kari Systä 2015 2015-01-12 TIE-21100/21106

Software Engineering Process Topics • Software Process Definition – management and

infrastructure • Software Life Cycles , Categories, Models,

Adaptation • Software Process Assessment and Improvement • Software Measurement • Software Engineering Process Tools Especially the life-cycle models are essential content for this course. (Lecture 19.1 etc) Sommerville chapters 2, 3 (and 18), Haikala&Mikkonen Chapter 2.

2015-01-12 TIE-21100/21106 47

Page 48: TIE-21100 Ohjelmistotuotannon menetelmät TIE-21106 Software Engineering … · 2015. 1. 13. · TIE-21106 Software Engineering Methodology Kari Systä 2015 2015-01-12 TIE-21100/21106

Software Engineering Models and Methods

Topics

• Modeling

• Types of Models

• Analysis of Models

• Software Engineering Methods

Many notations have been discussed in other courses, but general concepts will come in this course, too.

Sommerville Chapter 5, Haikala&Mikkonen Chapters 4-10 (with requirement view point)

2015-01-12 TIE-21100/21106 48

Page 49: TIE-21100 Ohjelmistotuotannon menetelmät TIE-21106 Software Engineering … · 2015. 1. 13. · TIE-21106 Software Engineering Methodology Kari Systä 2015 2015-01-12 TIE-21100/21106

Software Quality Topics • Software Quality Fundamentals, Culture, Ethics,

value and cost • Software Quality Management Processes • Practical Considerations • Software Quality Tools According to initial the plan: 17.3: Improving Quality: review practices, testing and quality assurance Quality in general; Quality management systems Sommerville Chapter 24, Haikala&Mikkonen Chapter 11

2015-01-12 TIE-21100/21106 49

Page 50: TIE-21100 Ohjelmistotuotannon menetelmät TIE-21106 Software Engineering … · 2015. 1. 13. · TIE-21106 Software Engineering Methodology Kari Systä 2015 2015-01-12 TIE-21100/21106

Remaining topics • Software Engineering Professional Practice

(ethics, legal, communication,….)

– Some elements will be included

• Software Engineering Economics • Some elements will be included

• Computing Foundations, Mathematical Foundations, Engineering Foundations

– Not in this course – there are other courses

2015-01-12 TIE-21100/21106 50

Page 51: TIE-21100 Ohjelmistotuotannon menetelmät TIE-21106 Software Engineering … · 2015. 1. 13. · TIE-21106 Software Engineering Methodology Kari Systä 2015 2015-01-12 TIE-21100/21106

Goals of this lecture

• This course

– What to expect

– Am I in right course

– How to pass

• Software Engineering

– What is Software Engineering

– Chapters 1 in both books

2015-01-12 TIE-21100/21106 51