Programvaruteknik vt11



Relevanta dokument
IEEE Computer Society

Goals for third cycle studies according to the Higher Education Ordinance of Sweden (Sw. "Högskoleförordningen")

Mönster. Ulf Cederling Växjö University Slide 1

Klicka här för att ändra format

Kursplan. AB1029 Introduktion till Professionell kommunikation - mer än bara samtal. 7,5 högskolepoäng, Grundnivå 1

Software Engineering. Agneta Nilsson, PhD MPA Software Engineering Master s Programme

Adding active and blended learning to an introductory mechanics course

Kursplan. AB1030 Att arbeta i projekt. 7,5 högskolepoäng, Grundnivå 1. Working in projects

Information technology Open Document Format for Office Applications (OpenDocument) v1.0 (ISO/IEC 26300:2006, IDT) SWEDISH STANDARDS INSTITUTE

FÖRBERED UNDERLAG FÖR BEDÖMNING SÅ HÄR

3rd September 2014 Sonali Raut, CA, CISA DGM-Internal Audit, Voltas Ltd.

Kursplan. MT1051 3D CAD Grundläggande. 7,5 högskolepoäng, Grundnivå 1. 3D-CAD Basic Course

ISO STATUS. Prof. dr Vidosav D. MAJSTOROVIĆ 1/14. Mašinski fakultet u Beogradu - PM. Tuesday, December 09,

Methods to increase work-related activities within the curricula. S Nyberg and Pr U Edlund KTH SoTL 2017

RUP är en omfattande process, ett processramverk. RUP bör införas stegvis. RUP måste anpassas. till organisationen till projektet

ISTQB Testarens ledstjärna

Förändrade förväntningar

Kursplan. EN1088 Engelsk språkdidaktik. 7,5 högskolepoäng, Grundnivå 1. English Language Learning and Teaching

Kandidatarbete. Kristian Sandahl IDA

Stad + Data = Makt. Kart/GIS-dag SamGIS Skåne 6 december 2017

Module 6: Integrals and applications

Design för användbarhet

CM FORUM. Introduktion till. Configuration Management (CM) / Konfigurationsledning. Tobias Ljungkvist

State Examinations Commission

Innovation in the health sector through public procurement and regulation

A metadata registry for Japanese construction field

The Algerian Law of Association. Hotel Rivoli Casablanca October 22-23, 2009

Health café. Self help groups. Learning café. Focus on support to people with chronic diseases and their families

FORSKNINGSKOMMUNIKATION OCH PUBLICERINGS- MÖNSTER INOM UTBILDNINGSVETENSKAP

School of Management and Economics Reg. No. EHV 2008/220/514 COURSE SYLLABUS. Fundamentals of Business Administration: Management Accounting

Hur arbetar vi praktiskt i SAG?

Professional Ethics. Professional Ethics in Computing. Gordana Dodig Crnkovic IDT, Mälardalen University, Sweden

Swedish adaptation of ISO TC 211 Quality principles. Erik Stenborg

Campuskurs Distanskurs Annan. Examinator Remigijus Gustas

Flervariabel Analys för Civilingenjörsutbildning i datateknik

Våra tjänster [Our services] UMS Group Inc., All Rights Reserved

Kursplan. NA1032 Makroekonomi, introduktion. 7,5 högskolepoäng, Grundnivå 1. Introductory Macroeconomics

SVENSK STANDARD SS :2010

Rosetta. Ido Peled. A Digital Preservation System. December Rosetta Product Manager

The Municipality of Ystad

District Application for Partnership

Hållbar utveckling i kurser lå 16-17

Kursplan. FÖ1038 Ledarskap och organisationsbeteende. 7,5 högskolepoäng, Grundnivå 1. Leadership and Organisational Behaviour

Configuration Management

Linköpings universitet 1 TDP029. Systemutveckling. Systemutveckling. Vanliga faser. Fler faser. Systemutvecklingsmetod

Surfaces for sports areas Determination of vertical deformation. Golvmaterial Sportbeläggningar Bestämning av vertikal deformation

Examensarbete Introduk)on - Slutsatser Anne Håkansson annehak@kth.se Studierektor Examensarbeten ICT-skolan, KTH

DE TRE UTMANINGARNA..

Kristina Säfsten. Kristina Säfsten JTH

Kursplan. NA3009 Ekonomi och ledarskap. 7,5 högskolepoäng, Avancerad nivå 1. Economics of Leadership

Biblioteket.se. A library project, not a web project. Daniel Andersson. Biblioteket.se. New Communication Channels in Libraries Budapest Nov 19, 2007

Civilingenjör Mjukvaruteknik Att designa en utbildning utifrån ACM CS Curriculum

The Swedish National Patient Overview (NPO)

Quality-Driven Process for Requirements Elicitation: The Case of Architecture Driving Requirements

Isolda Purchase - EDI

Kursplan. FÖ3032 Redovisning och styrning av internationellt verksamma företag. 15 högskolepoäng, Avancerad nivå 1

openbim Stockholm 22 april 2013 Kraven på BIM är här

SWESIAQ Swedish Chapter of International Society of Indoor Air Quality and Climate

Measuring child participation in immunization registries: two national surveys, 2001

Materialplanering och styrning på grundnivå. 7,5 högskolepoäng

ENTERPRISE WITHOUT BORDERS Stockholmsmässan, 17 maj 2016

Anders Persson Philosophy of Science (FOR001F) Response rate = 0 % Survey Results. Relative Frequencies of answers Std. Dev.

Programvaruintensiva system

Introduktion ICAO-EASA.


Why WE care? Anders Lundberg Fire Protection Engineer The Unit for Fire Protection & Flammables Swedish Civil Contingencies Agency

Kursplan. IK1004 Java - Grafiska användargränssnitt med Swing. 7,5 högskolepoäng, Grundnivå 1. Java - GUI Programming with Swing - Undergraduate Level

Skill-mix innovation in the Netherlands. dr. Marieke Kroezen Erasmus University Medical Centre, the Netherlands

The annual evaluation of the Individual Study Plan for PhD students at the Department of Biochemistry and Biophysics

Byggdokument Angivning av status. Construction documents Indication of status SWEDISH STANDARDS INSTITUTE

Nya möjligheter med M3 Technology. Björn Svensson, Björn Torold

Om oss DET PERFEKTA KOMPLEMENTET THE PERFECT COMPLETION 04 EN BINZ ÄR PRECIS SÅ BRA SOM DU FÖRVÄNTAR DIG A BINZ IS JUST AS GOOD AS YOU THINK 05

Urban Runoff in Denser Environments. Tom Richman, ASLA, AICP

Automation Region. Affärsdriven systemutveckling genom agila metoder. Stefan Paulsson Thomas Öberg

Skattejurist för en dag på Deloitte i Malmö! 26 april 2016

Collaborative Product Development:

Sammanfattning. Revisionsfråga Har kommunstyrelsen och tekniska nämnden en tillfredställande intern kontroll av att upphandlade ramavtal följs.

Sara Skärhem Martin Jansson Dalarna Science Park

EVALUATION OF ADVANCED BIOSTATISTICS COURSE, part I

Kursinformation. Metodik för programvaruutveckling. Utvecklingsprocessen för programvara. Innehåll. Processmodell. Exempel

Här kan du checka in. Check in here with a good conscience

.SE (Stiftelsen för Internetinfrastruktur) Presentation November 2009

Helping people learn. Martyn Sloman Carmel Kostos

Systemutveckling. Historiskt grundad introduktion

School of Management and Economics Reg. No. EHV 2008/245/514 COURSE SYLLABUS. Business and Market I. Business Administration.

Amir Rostami

Här kan du sova. Sleep here with a good conscience

GeoGebra in a School Development Project Mathematics Education as a Learning System

Byggritningar Ritsätt Fästelement. Construction drawings Representation of fasteners SWEDISH STANDARDS INSTITUTE

Course syllabus 1(7) School of Management and Economics. FEN305 Reg.No. EHVc 2005:6 Date of decision Course Code. Företag och Marknad I

Poäng. Start v. Programvaruteknik Institution Institutionen för datavetenskap. Antal registrerade (män/kvinnor) 25 (23/2)

Matthew Thurley Industriell bildanalys (E0005E) Response rate = 65 %

Bridging the gap - state-of-the-art testing research, Explanea, and why you should care

TNS SIFO Navigare Diabetes Patients Attitudes & Digital Habits

Kursplan. PR1017 Portugisiska: Muntlig språkfärdighet II. 7,5 högskolepoäng, Grundnivå 1. Portuguese: Oral Proficiency II

Transkript:

Umeå University Department of Computing Science Programvaruteknik vt11 Jonny Pettersson http://www.cs.umu.se/kurser/5dv087 Vad händer i dag? Kursplan Förra året Årets kurs Pedagogiska tankar Vad är Software Engineering? Kursplan Kursen ger en översikt över metoder, verktyg och språk för att understödja utvecklingen av stora programvarusystem. Särskild tonvikt läggs på kvalitetssäkring och kunskaper och färdigheter som direkt kan tillämpas i arbetslivet. 1

Kursplan (forts) Moment 1, teoridel, 6 högskolepoäng Utvecklingsmodeller och faser för iterativ och inkrementell utveckling (agile) Kravhantering och objektorienterad analys och design (scenario-driven utveckling, UML) Design heuristics, patterns och refactoring Systematisk testning (test-driven utveckling) Programvarukvalitet, mätetal, processförbättring, versionshantering och dokumentation Moment 2, laborationsdel, 9 högskolepoäng Delmomentet utgörs av ett antal obligatoriska projekt där olika aspekter från moment 1 tränas och fördjupas. Projekten genomförs i varierande grupper. Förväntade studieresultat Efter avslutad kurs ska studenten kunna: diskutera de tekniska och organisatoriska problem som är förknippade med gruppvis utveckling av stora och komplexa programvarusystem beskriva metoder och verktyg för programvaruutvecklingens olika faser definiera och konstruera lämpliga enhetstester utifrån en kravlista konstruera och tolka olika typer av UML-klassdiagram använda lämpliga mätetal och tolka/diskutera mätresultatens betydelse avseende programvarukvalitet och processförbättring Förväntade studieresultat (forts) Efter avslutad kurs ska studenten kunna: systematiskt använda verktyg för modellering, systematisk testning och versionshantering tillsammans i varierande grupper planera och genomföra programvaruutvecklingsprojekt på ett systematiskt sätt följa upp och presentera (muntligt och skriftligt) olika programvaruutvecklingsprojekt på ett strukturerat sätt visa ett professionellt förhållningssätt inklusive att förstå, styra och utveckla sig själv 2

Tidigare år Högst relevant kursinnehåll Kursuppläggningen fungerar bra Uppskattat med mycket feedback Problem med att jobba i grupp (men det är en del av kursen) En laboration och fyra uppgifter i projekt En medeltung kurs Allmänt en uppskattad kurs Årets kurs Lite mer fokus på projektarbete Kurslitteratur Uppläggning Föreläsningar Gästföreläsare Laboration Projekt Schema Examinering Rapport, tenta och projektredovisningar Laboration och projekt En fristående laboration Scrum och Lean Software Development Enskilt Projektet Större grupper Projektet genomförs i sex faser Olika typer av redovisningar, även blandat mellan gruppredovisningar och enskilda redovisningar 3

Pedagogik Pedagogisk tanke Val av presentationshjälpmedel OH-bilder Källa Innehåll Språk Vad bör man lära sig? Software Engineering: What, Why, and How...... developing large systems is different... and a lot of three-letter acronyms What is Software Engineering 1? The establishment and use of sound engineering principles in order to obtain economically software that is reliable and works efficiently on real machines. NATO conference 68 in Garmisch (1) The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software. (2) The study of approaches as in (1). IEEE std 610.12-1990, 1990; adopted in SWEBOK A broad field that touches upon all aspects of developing and supporting a software system: 1. Technical and business processes 2. Specific methodologies and techniques 3. Product characterization and metrics 4. People, skills and team work 5. Tools and training 6. Project coordination and management Tsui and Karam, 2011 4

What is Software Engineering 2? SWEBOK Knowledge Areas Software requirements Software design Software construction Software testing Software maintenance Software quality SWEBOK Related Disciplines Computer engineering Computer science Management Mathematics Software configuration management Software engineering management Software engineering process Software engineering tools and methods Project management Quality management Software ergonomics Systems engineering What is Software Engineering 3? Foundations Limited use Broad use IEEE Software 25 (6) What is Software Engineering 4? IEEE Software 25 (6) 5

Why Do We Need SE? Software is everywhere Software becomes more and more complex Software failures may do harm Software projects exceed budgets and schedules... Software must be engineered like any other product Classical Software Failures Therac-25 radiation overdoses (erroneous noncritical modules of previous Therac-20 software were reused in a safety-critical role) Ariane 5 launch failure (specification of the reused modules from Ariane 4 software was misunderstood) Loss of the Mars Climate Orbiter (navigation error due to incompatible measurement units) FBI s virtual case file system (scope creep, bad management) Check Risks Digest for more (and the details) To Engineer Software Means Fighting complexity and uncertainty Systematic, disciplined, and quantifiable work Based on proven principles and practices Professional practice 6

SE Principles and Practice 1 Apply and use quantitative measurements in decisionmaking Build with and for reuse Deal with different individual aspects of the problem by concentrating on each one separately Define software artefacts rigorously Establish a software process that provides flexibility Implement a disciplined process and improve it continuously Invest in the understanding of the problem Manage quality throughout the life cycle as formally as possible Journal of Systems and Software 62 (1) SE Principles and Practice 2 Minimize software components interaction Produce software in a step-wise fashion Set quality objectives for each deliverable product Since change is inherent to software, plan for it and manage it Since tradeoffs are inherent to software engineering, make them explicit and document them The requirements must be firm and fixed The tools, methods, and support systems must be designed and selected to support the software engineers Uncertainty is unavoidable in software engineering. Identify and manage it Journal of Systems and Software 62 (1) 16 Critical Software Practices TM 7

Software s Ten Essentials A product specification A detailed user interface prototype A realistic schedule Explicit priorities Active risk management A quality assurance plan Detailed activity lists Software configuration management Software architecture An integration plan IEEE Software 14(2), Mar/Apr 1997, 143-144 Software Engineering Code of Ethics and Professional Practice 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. ACM/IEEE-CS (V 5.2) A Question... How could that have helped in the classical failures described before? 8

Discussion The Fossbakk Case Norwegian customer lost ~ $100,000 Internet banking interface accepted only 11 digits for account numbers Superfluous digits are deleted Fossbakk inserted 715815555022 instead of 71581555022 (i.e., an extra 5 ) The UI deleted last digit 71581555502 Problem: This actually was a valid account number (In a similar case a bank stripped erroneous commas from the amount to pay, i.e., $1000,50 (thousand dollar and 50 cents) became $100050) Who is responsible? Source: IEEE Computer, Apr 2008 and Jun 2008, respectively The Message Software Engineering is software construction with a big E Elements of Software Engineering Methods How tos to support software development tasks Languages Notations to support methods Tools Support for (the usage of) methods and languages Processes Coordination and management of software development tasks supported by methods, languages, and tools Economically produce quality software 9

What is Software Engineering 5? IEEE Software 25 (6) What is Software Engineering 6? COMPUTER SCIENCE ENGINEERING PRINCIPLES CUSTOMER Theories Computer Functions Proven Techniques Problem SOFTWARE ENGINEERING Tools and Techniques to Solve Problems Davis s Early 15 principles (1994) 1. Make quality number 1 2. High quality software is possible 3. Give products to customers early 4. Determine the problem before writing the requirements 5. Evaluate design alternatives 6. Use an appropriate process model 7. Use different languages for different phases 8. Minimize intellectual distances 9. Put techniques before tools 10. Get it right before you make it faster 11. Inspect code 12. Good management is more important than good technology 13. People are the key to success 14. Follow with care 15. Take responsibility Are these consistent within themselves - - - How key is people is key to success What do you think? 10

Royce s More Modern Principles (1998) 1. Base the process on an architecture first approach 2. Establish iterative process --- address risk early 3. Emphasize component based development to reduce effort 4. Establish change management 5. Use round-trip engineering a form of iterative process 6. Use model-based and machine processable notations for design 7. Establish process for quality control and project assessment 8. Use approach that allows artifacts to be demonstrated early 9. Plan to have incremental releases 10. Establish a configurable process to suit the needs Agree with these? Why? Wasserman s Fundamental Concepts (1996) 1. Abstraction 2. Analysis and design methods and notation 3. User interface prototyping 4. Modularity and architecture 5. Reuse 6. Life cycle and process 7. Metrics 8. Tools and integrated environment Important concepts - - - how do they relate to earlier Listed principles from Davis or Royce? How about principles for Support? Is there a need to come up with some principles or rules for supporting and maintaining released software? What about: customer is always right problem resolution turn around time is key problem fix or resolution quality is vital Any others? Do resolution speed and quality conflict with each other? 11

Sammanfattning Kursplan Förra året Årets kurs Pedagogiska tankar Vad är Software Engineering? Next time Software Development Processes 12