Software Design Introduction

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

FORSKNINGSKOMMUNIKATION OCH PUBLICERINGS- MÖNSTER INOM UTBILDNINGSVETENSKAP

Design. Vad lärde jag mig förra lekfonen? Hur bidrog jag Fll lärandet? Kravhantering sammanfa0ning 13/04/14

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

Service och bemötande. Torbjörn Johansson, GAF Pär Magnusson, Öjestrand GC

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

Kursutvärderare: IT-kansliet/Christina Waller. General opinions: 1. What is your general feeling about the course? Antal svar: 17 Medelvärde: 2.

Isometries of the plane

A metadata registry for Japanese construction field

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

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

Design för användbarhet

Robust och energieffektiv styrning av tågtrafik

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

The Finite Element Method, FHL064

Scaled Agile Framework

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

Erfarenheter från Hazop användning på programvara i Arte740. Presentation för SESAM Claes Norelöv 4Real AB

Swedish adaptation of ISO TC 211 Quality principles. Erik Stenborg

Adding active and blended learning to an introductory mechanics course

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

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

Företagsekonomi, allmän kurs. Business Administration, General Course. Business Administration until further notice

Förändrade förväntningar

Föreläsning 8. Designmönster


Isolda Purchase - EDI

Ett hållbart boende A sustainable living. Mikael Hassel. Handledare/ Supervisor. Examiner. Katarina Lundeberg/Fredric Benesch

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

Preschool Kindergarten

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

Senaste trenderna inom redovisning, rapportering och bolagsstyrning Lars-Olle Larsson, Swedfund International AB

Semantic and Physical Modeling and Simulation of Multi-Domain Energy Systems: Gas Turbines and Electrical Power Networks

Klicka här för att ändra format

Kursplan. JP1040 Japanska III: Språkfärdighet. 15 högskolepoäng, Grundnivå 1. Japanese III: Language Proficiency

Immigration Studying. Studying - University. Stating that you want to enroll. Stating that you want to apply for a course.

EVALUATION OF ADVANCED BIOSTATISTICS COURSE, part I

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

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

CVUSD Online Education. Summer School 2010

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

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

The Arctic boundary layer

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

Make a speech. How to make the perfect speech. söndag 6 oktober 13

Writing with context. Att skriva med sammanhang

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

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

Hållbar utveckling i kurser lå 16-17

Vässa kraven och förbättra samarbetet med hjälp av Behaviour Driven Development Anna Fallqvist Eriksson

Objektorienterad Systemutveckling Period 3

Authentication Context QC Statement. Stefan Santesson, 3xA Security AB

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

Kursplan. FR1050 Franska: Skriftlig språkfärdighet I. 7,5 högskolepoäng, Grundnivå 1. French Written Proficiency I

District Application for Partnership

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

Programvaruintensiva system

#minlandsbygd. Landsbygden lever på Instagram. Kul bild! I keep chickens too. They re brilliant.

Resultat av den utökade första planeringsövningen inför RRC september 2005

Resultatkonferens Välkommen!

Mer OOP. Variation i typ. Medlen repetition. Generiska klasser. Gränssnitt - Interface. Mer om klasser Några exempel UML

Solowheel. Namn: Jesper Edqvist. Klass: TE14A. Datum:

Gradientbaserad Optimering,

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

Module 1: Functions, Limits, Continuity

MÅLSTYRNING OCH LÄRANDE: En problematisering av målstyrda graderade betyg

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

Schenker Privpak AB Telefon VAT Nr. SE Schenker ABs ansvarsbestämmelser, identiska med Box 905 Faxnr Säte: Borås

Viktig information för transmittrar med option /A1 Gold-Plated Diaphragm

Från extern till intern på tre dagar Erfarenheter från externa lärares pedagogiska kompetensutveckling

BOENDEFORMENS BETYDELSE FÖR ASYLSÖKANDES INTEGRATION Lina Sandström

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

Strategic Research Area 1

Webbregistrering pa kurs och termin

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

Ökat personligt engagemang En studie om coachande förhållningssätt

Volvo Group Trucks Operations Gunnar Brunius, Fabrikschef Volvo Lastvagnar - Göteborg

Innovation in the health sector through public procurement and regulation

Sara Skärhem Martin Jansson Dalarna Science Park

Användning av Erasmus+ deltagarrapporter för uppföljning

Utvärdering SFI, ht -13

PRODUCT MANAGEMENT. Klicka här för att ändra format. Klicka här för att ändra format på underrubrik i bakgrunden

Testdriven utveckling. Magnus Jonsson Siemens Medical Solutions

Michael Q. Jones & Matt B. Pedersen University of Nevada Las Vegas

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

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

UML use cases. Mikael Söderström Institutionen för informatik Umeå universitet

När? Varför? För vem? Resultat? (Artefakter?)

Webbreg öppen: 26/ /

ISTQB Testarens ledstjärna

Datavetenskapligt program, N1COS

Testning som beslutsstöd

DVG C01 TENTAMEN I PROGRAMSPRÅK PROGRAMMING LANGUAGES EXAMINATION :15-13: 15

Alla Tiders Kalmar län, Create the good society in Kalmar county Contributions from the Heritage Sector and the Time Travel method

Supplemental Instruction (SI) - An effective tool to increase student success in your course

Course Contents. Objektorienterad programmering. Goals. Buzzwords. Course overview (1) Book. Objektorienterad programmering d2. DAT050, 16/17, lp 2 1

Föreläsning 1. Kursinformation

Att fastställa krav. Annakarin Nyberg

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

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

Transkript:

1/17 Software Design Introduction Mikael Svahnberg 1 2016-03-08 1 Mikael.Svahnberg@bth.se

www.bth.se About Me: Mikael Svahnberg Associate Professor, PhD in Software Engineering mailto:mikael.svahnberg@bth.se https://sites.google.com/site/mikaelsvahnberg/ Interests: Software Architectures, Software Architecture Evaluation, Software Architecture Evolution, Requirements Engineering, Large Scale Requirements Engineering, Market-Driven Requirements Engineering, Software Product Lines, Software Reuse, Empirical Research Methodology, Software Engineering Decision Support, Static Code Analysis, Software Architecture Reconstruction 2/17

3/17 Discuss: Course Charter: PA1415 Efter genomförd kurs skall studenten: på en grundläggande nivå i grupp kunna ta fram krav på en programvara och uttrycka dem i en kravspecifikation i grupp producera en översiktlig utvecklingsprojektplan baserat på en kravspecifikation i grupp kunna skapa en detaljerad objektorienterad design för ett mjukvaruprogram i grupp kunna implementera ett mjukvaruprogram inom rimlig tid, baserat på en kravspecifikation och en objektorienterad design på en grundläggande nivå i grupp kunna planera och genomföra testning av producerad programvara, baserat på en kravspecifikation skapa och analysera objektorienterade artefakter uttryckta i UML kunna motivera och använda designmönster i utvecklingen av mjukvarusystem

4/17 Discuss: Course Charter: PA1435 Kunskap och förståelse Efter genomförd kurs ska studenten: kunna visa förståelse för grundläggande principer i objektorienterad programvaruutveckling. kunna visa förståelse för UML som modelleringsspråk. kunna visa kunskap om grundläggande designprinciper. kunna visa kunskap om grundläggande designmönster. Färdigheter och förmåga Efter genomförd kurs ska studenten: kunna uttrycka strukturen och beteendet hos ett system i termer av objektorienterade koncept. kunna korrekt använda UML för att uttrycka struktur och beteende hos ett system. kunna korrekt transformera en objektorienterad design till källkod. kunna tillämpa designprinciper och designmönster i allmänhet och inom en särskild domän. Värderingsförmåga och förhållningssätt Efter genomförd kurs ska studenten: kunna analysera källkod för eventuella förbättringar. kunna analysera och kritiskt diskutera en design för eventuella förbättringar.

5/17 Discuss: Course Charter: PA1443 Kunskap och förståelse Efter genomförd kurs ska studenten: kunna visa förståelse för grundläggande principer i objektorienterad programvaruutveckling. kunna visa kunskap om grundläggande designprinciper. kunna visa kunskap om grundläggande designmönster. kunna visa kunskap om grundläggande mjukvaruarkitekturstilar Färdigheter och förmåga Efter genomförd kurs ska studenten: kunna uttrycka strukturen och beteendet hos ett system i termer av objektorienterade koncept. kunna tillämpa grundläggande designmönster i en objektorienterad design. kunna skapa en objektorienterad design för ett system enligt goda objektorienterade designprinciper kunna tillämpa grundläggande arkitekturstilar för ett mjukvarusystem kunna resonera om de kvalitetsegenskaper ett system med en viss arkitekturstil har eller bör ha kunna resonera om och skapa en grundläggande testplan för ett objektorienterat system Värderingsförmåga och förhållningssätt Efter genomförd kurs ska studenten: kunna analysera och kritiskt diskutera en design för eventuella förbättringar.

6/17 Course Structure https://mickesv.github.io/oodesign/ Sprints Lectures Video Lectures Classroom Lectures Seminars Assignments (Release Sprints) See Sprint 0: Course Introduction homepage on It s for deadlines etc.

7/17 Literature C. Larman, Applying UML and Patterns, Prentice Hall, 3rd Edition Also available as a softcover edition from 2015

7/17 Literature C. Larman, Applying UML and Patterns, Prentice Hall, 3rd Edition Also available as a softcover edition from 2015 Gamma, Helm, Johnson, Vlissides, Design Patterns, Elements of Reusable Object-Oriented Software, Addison-Wesley Professional

8/17 Tools Any UML Tool will work, except pen and paper. http://staruml.io/ https://www.visual-paradigm.com/ http://www.eclipse.org/papyrus/ http://argouml.tigris.org/ https://marketplace.eclipse.org/content/uml-designer http://plantuml.com/...

9/17 Discuss: Why Bother About Modelling T. Gorschek, E. Tempero, L. Angelis, On the use of software design models in software development practice: An empirical investigation, in Journal of Systems and Software 95(2014):176 193. TL;DR: Nearly 4000 industry practitioners were asked Do you model?. Answers ranged from no to hell no!.

9/17 Discuss: Why Bother About Modelling T. Gorschek, E. Tempero, L. Angelis, On the use of software design models in software development practice: An empirical investigation, in Journal of Systems and Software 95(2014):176 193. TL;DR: Nearly 4000 industry practitioners were asked Do you model?. Answers ranged from no to hell no!.... There is, of course, more to this story.

10/17 Why Bother About Modelling In the freetext answers a different story emerges: They do use sketches, informal models, casual diagrams, etc, but not formal UML. Common explanations: Only for very complex designs, sometimes Only use initially then start coding (diagrams not kept/updated)" Enables visualisation of the big picture/high level Other types of models but not UML Use models to communicate and coordinate with other developers Models are not used as researchers expect. Instead they are used for conceptual analysis and exploration, problem solving, visualisation, and communication.

11/17 So, why bother? conceptual analysis and exploration problem solving visualisation communication Also: This course trains you in a particular mindset, where you begin to analyse a problem in terms of its objects and their interactions. This problem solving mindset is difficult to reach when bogged down with all the implementation details. This is the only place where you are expected to use an all-out thermonuclear UML approach to analysis and design. Later on, you will cherry-pick models in order to understand/visualise/communicate a particular problem area better. Bear in mind that you throw out a few good things with the bath water too.

12/17 Development Phases Requirements Problem formulation Quality constraints of the system Planning and estimations Analysis / Domain Analysis Real World abstractions, mechanisms, relationships Design Convert domain analysis into a technical solution design patterns etc. Implementation Execution of the design Testing Maintenance

13/17 Object Oriented Analysis and Design Object Orientation Objects Attributes Relationships Collaborations Responsibilities OO Analysis Problem domain and requirements Objects in the problem domain OO Design Logical Software Objects (with attributes and methods, plus collaborations) OO Construction/Implementation

14/17 OO Modelling A traceable chain from requirements to code/test. Each model is transformed to a [more detailed] model that is closer to the end-product. Do this fully, and you have Model-Driven Development The overall idea is that models are cheaper than code. models are abstractions of code. models are more rigorous than code :barf.png: UML is one set of models. RUP is the process used to transform the system through the UML graphs from requirements to code.

15/17 RUP/UML Rational Unified Process Unified Modelling Language Process: 1 Use Case Diagrams / Use Cases 2 Conceptual Models / Domain Models 3 System Sequence Diagram 4 Class Diagrams 5 Sequence Diagrams / Interaction Diagrams 6 Goto (4)

16/17 Design Patterns Design patterns are reusable solutions to known problems With known consequences There is nothing that requires you to use design patterns; they are a convenience. Design patterns focus primarily on structure (class view), and interaction (sequence diagrams). Thus, we will come back to them later in the course.

17/17 Excercise Discussion Forum Design a Conceptual Model of a Discussion forum with categories, topics, posts, users, user profiles, and private messages. The system consists of a server park (including the database), a web client, and an android client.