Modelbaseret softwareudvikling Lektion 1: Introduktion 02341-10 L… · 10 a : a type or design of...

16
Modelbaseret softwareudvikling Lektion 1: Introduktion Ole Rasmussen – Senior IT Arkitekt 5. Februar 2010 “Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live.” (Martin Golding)

Transcript of Modelbaseret softwareudvikling Lektion 1: Introduktion 02341-10 L… · 10 a : a type or design of...

Page 1: Modelbaseret softwareudvikling Lektion 1: Introduktion 02341-10 L… · 10 a : a type or design of clothing b : a type or design of product (as a car) 11 : a description or analogy

Modelbaseret softwareudvikling Lektion 1: Introduktion

Ole Rasmussen – Senior IT Arkitekt

5. Februar 2010

“Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live.” (Martin Golding)

Page 2: Modelbaseret softwareudvikling Lektion 1: Introduktion 02341-10 L… · 10 a : a type or design of clothing b : a type or design of product (as a car) 11 : a description or analogy

Ole Rasmussen 02341 Modelbaseret softwareudvikling2 Lektion 1: Introduktion2010-02-05

Kort indblik i min karriere

� 97-99: Developer–Lufthavne–TKE

� 98-…: Method Consultant

� 99-00: ”Architect” - e-Commerce–Several proposals–ToyCity, GiftAhoy

� 98-…: Teacher–SI-/ GSMethod–OTU2–Commerce Suite–Component Modeling–Architectural Thinking –SOA Bootcamp–SOMA Workshop

� 01-..: Architect–4PL vision–eCommerce at major shipping firm–Telco Service Platform–VIRK–Insurance core system development

method–Banking SOA Method Framework–Review: IKEA, MSL, PFA, YouSee,

many IBM TDA’s, …–Proposal and pre-sale: Skat,

Domstolsstyrelsen, TDC, ATP …–Leader of Nordic SOA Center of

Excellence–Service delivery for Novartis (very

different)–Currently:

• Architect at large delivery project• Application strategy @ Ministry of

Finance

� 03/12: Certified IT Architect (IBM and Open Group level 2)

–Application Architecture–Started the formal process in December

2002!–Submitted package ultimo October 2003–Recertified in 2006 and 2009

� 43 years, married, 4 children

� MS Computer Science w/ BS Mathematics, AalborgUniversity, 1993Thesis: "Patterns in design of object oriented IT systems"

� Employment– IBM, IT Architect, ’97 – now – DTU, Teacher, ’10 – now– Niels Brock – Advanced Computer Studies and

Bachelor, Teacher, ’96 – ’07– Kommunedata I/S, Developer, ’95 – ’97– SDC FinansSystem A/S, Developer, ’94 – ’95

Overblik IBM

Open group certification: http://www.opengroup.org/itac/

Page 3: Modelbaseret softwareudvikling Lektion 1: Introduktion 02341-10 L… · 10 a : a type or design of clothing b : a type or design of product (as a car) 11 : a description or analogy

Ole Rasmussen 02341 Modelbaseret softwareudvikling3 Lektion 1: Introduktion2010-02-05

Hvad vi leverer i IBM’s service forretning – og hvor jeg normalt passer ind …

ApplicationMaintenance

ApplicationBuild

Application Design

OngoingBusiness

Run

Business Transformation

Delivery

Business Transformation

Design

InfrastructureRun

Infrastructure Build

InfrastructureDesign

ProposalAnd

ContractNegotiation

Page 4: Modelbaseret softwareudvikling Lektion 1: Introduktion 02341-10 L… · 10 a : a type or design of clothing b : a type or design of product (as a car) 11 : a description or analogy

Ole Rasmussen 02341 Modelbaseret softwareudvikling4 Lektion 1: Introduktion2010-02-05

Hvad ser I her?Hvordan kan du beskrive det?

Page 5: Modelbaseret softwareudvikling Lektion 1: Introduktion 02341-10 L… · 10 a : a type or design of clothing b : a type or design of product (as a car) 11 : a description or analogy

Ole Rasmussen 02341 Modelbaseret softwareudvikling5 Lektion 1: Introduktion2010-02-05

Forskellige syn ind på ”systemet”

Tog Veje Distrikter

Page 6: Modelbaseret softwareudvikling Lektion 1: Introduktion 02341-10 L… · 10 a : a type or design of clothing b : a type or design of product (as a car) 11 : a description or analogy

Ole Rasmussen 02341 Modelbaseret softwareudvikling6 Lektion 1: Introduktion2010-02-05

”Modelbaseret softwareudvikling” - Hvad er ”software”?

Computer instructions or data. Anything that can be stored electronically is software. The storage devices and display devices are hardware.

The terms software and hardware are used as both nouns and adjectives. For example, you can say: "The problem lies in the software," meaning that there is a problem with the program or data, not with the computer itself. You can also say: "It's a software problem.“

The distinction between software and hardware is sometimes confusing because they are so integrally linked. Clearly, when you purchase a program, you are buying software. But to buy the software, you need to buy the disk (hardware) on which the software is recorded.

Software is often divided into two categories:

– systems software : Includes the operating system and all the utilities that enable the computer to function.

– applications software : Includes programs that do real work for users. For example, word processors, spreadsheets, and database management systems fall under the category of applications software.

http://www.webopedia.com/TERM/S/software.html

Vi fokuserer på ”applikations software” her i kurset.

Page 7: Modelbaseret softwareudvikling Lektion 1: Introduktion 02341-10 L… · 10 a : a type or design of clothing b : a type or design of product (as a car) 11 : a description or analogy

Ole Rasmussen 02341 Modelbaseret softwareudvikling7 Lektion 1: Introduktion2010-02-05

”Modelbaseret softwareudvikling” – hvad er modeller?

1 obsolete : a set of plans for a building2 dialect British : copy, image3 : structural design <a home on the model of an old farmhouse>4 : a usually miniature representation of something; also : a

pattern of something to be made5 : an example for imitation or emulation6 : a person or thing that serves as a pattern for an artist; especially :

one who poses for an artist7 : archetype8 : an organism whose appearance a mimic imitates9 : one who is employed to display clothes or other merchandise10 a : a type or design of clothing b : a type or design of product (as a

car)11 : a description or analogy used to help visualize something (as

an atom) that cannot be directly observed12 : a system of postulates, data, and inferences presented as a

mathematical description of an entity or state of affairs; also : a computer simulation based on such a system <climate models>

13 : version14 : animal model

http://www.merriam-webster.com/dictionary/model

A modeling language is any artificial language that can be used to express information or knowledge or systems in a structure that is defined by a consistent set of rules. The rules are used for interpretation of the meaning of components in the structure.

Unified Modeling Language (UML) is a standardized general-purpose modeling language in the field of software engineering. The standard is managed, and was created by, the Object Management Group.UML includes a set of graphical notation techniques to create visual models of software-intensive systems.

A model is a simplified representation of a system at some particular point in time or space intended to promote understanding of the real system.

Min foretrukne definition

Page 8: Modelbaseret softwareudvikling Lektion 1: Introduktion 02341-10 L… · 10 a : a type or design of clothing b : a type or design of product (as a car) 11 : a description or analogy

Ole Rasmussen 02341 Modelbaseret softwareudvikling8 Lektion 1: Introduktion2010-02-05

Det er ikke simpelt at lave softwareudvikling“No Silver Bullet - Essence and Accidents of Software Engineering” (Frederick P. Brooks, Jr.)

Essential Difficulties - the difficulties inherent in the nature of software – Complexity– Conformity– Changeability– Invisibility

Accidental Difficulties – only due to our (mis-) behavior

Er der håb med modelbaseret softwareudvikling?

Source: http://www.virtualschool.edu/mon/SoftwareEngineering/BrooksNoSilverBullet.html

Page 9: Modelbaseret softwareudvikling Lektion 1: Introduktion 02341-10 L… · 10 a : a type or design of clothing b : a type or design of product (as a car) 11 : a description or analogy

Ole Rasmussen 02341 Modelbaseret softwareudvikling9 Lektion 1: Introduktion2010-02-05

Hvorfor laver vi modeller?

For at

� Tænke

� Forstå

� Lære

� Beskrive

� Dokumentere

� Kommunikere

� Visualisere

� Abstrahere

� Håndtere kompleksitet ved at separere aspekter i forskellige ”views” (separation of concerns)

Modeling is not an all-or-nothing proposition. Models canplay a part in the software development process in manyways.

Gary Cernosek: ”The Value of Modeling”ftp://ftp.software.ibm.com/software/rational/web/whitepapers/ValueOfModeling.pdf

Vigtigheden afat modellere

Mere

Mindre

Page 10: Modelbaseret softwareudvikling Lektion 1: Introduktion 02341-10 L… · 10 a : a type or design of clothing b : a type or design of product (as a car) 11 : a description or analogy

Ole Rasmussen 02341 Modelbaseret softwareudvikling10 Lektion 1: Introduktion2010-02-05

ARC318 ParametricCosts

ARC320 TechnicalTransaction Map

Hvad er udfordringen med de modellerog tools vi anvender i dag?

ARC108 ComponentModel

APP130 UseCase Model

ARC310 Standards

ARC111 DeploymentUnits

APP110 LogicalData Model

APP011 SystemContext

APP146 UIConceptual Model

APP147 UIDesign Guidelines

ARC119 NonFunctional RequirementsARC108 Architecture

Overview Diagram

ARC102 Ref. ArchitectureFit/Gap Analysis

ARC107 ArchitecturalTemplate

ARC100 ArchitecturalDecision

ARC113 OperationalModel

ARC115 SoftwareDist. Plan

ARC319 PerformanceModel

ARC118 ChangeCases

ARC117 ViabilityAssessment

ARC103 TechnicalPrototype

ARC114 Service LevelChar. Analysis

ARC301 CurrentIT Envionment

OPS308 ITServices Strategy

Dependencies to/from most other work products

MS Visio MS Word

MS Visio

MS PowerPoint

Rational

Rose

MS Excel

MS Word

MS WordMS Excel

MS Word

CA ERwinMS Word

Word of

mouth

IBM Academy of Technology Report: Analysis of Resources for Architectural Work

“Most architects use tools that are no better than those their kids use for doing their homework”

Page 11: Modelbaseret softwareudvikling Lektion 1: Introduktion 02341-10 L… · 10 a : a type or design of clothing b : a type or design of product (as a car) 11 : a description or analogy

Ole Rasmussen 02341 Modelbaseret softwareudvikling11 Lektion 1: Introduktion2010-02-05

Hvor langt kan vi drive modeller?

� Se også http://www.version2.dk/artikel/11499-dtu-vi-skal-op-ad-abstraktions-stigen-og-vaek-fra-synlig-kildekode

� Mange firmaer, som leverer værktøjer til software udvikling har modelbaseret udvikling meget tæt inde i visionen

For almost 40 years, people have been anticipating and writing about "automatic programming, ”…

One can find exceptions. The technique of [[sterling]] building generators is very powerful, and it is routinely used to good advantage in programs for sorting. Some systems for integrating differential equations have also permitted direct specification of the problem, and the systems have assessed the parameters, chosen from a library of methods of solution, and generated the programs

These Applications have very favorable properties:

• The problems are readily characterized by relatively few parameters.• There are many known methods of solution to provide a library of alternatives.• Extensive analysis has led to explicit rules for selecting solution techniques, given problem parameters.

It is hard to see how such techniques generalize to the wider world of the ordinary software system, where cases with such neat properties are the exception. It is hard even to imagine how this breakthrough in generalization could occur.

Frederick P. Brooks, Jr. , 1987 in “No silver bullet”

Page 12: Modelbaseret softwareudvikling Lektion 1: Introduktion 02341-10 L… · 10 a : a type or design of clothing b : a type or design of product (as a car) 11 : a description or analogy

Ole Rasmussen 02341 Modelbaseret softwareudvikling12 Lektion 1: Introduktion2010-02-05

Illustration af en ”blå” vision

Page 13: Modelbaseret softwareudvikling Lektion 1: Introduktion 02341-10 L… · 10 a : a type or design of clothing b : a type or design of product (as a car) 11 : a description or analogy

Ole Rasmussen 02341 Modelbaseret softwareudvikling13 Lektion 1: Introduktion2010-02-05

Vi vil her i kurset arbejde med at få en forståelse for, hvad det vil sige at lave modelbaseret softwareudvikling, hvor det er ”model only”.Men du vil også komme til at supplere med noget kode….

Code Code Code Code

Model Model Model Model

“What’s aModel?”

“The code isthe model”

“Code and model coexist”

“The model is the code”

“Let’s talkmodels”

Code onlyCode

visualizationRoundtrip

engineering Model-centric Model only

Page 14: Modelbaseret softwareudvikling Lektion 1: Introduktion 02341-10 L… · 10 a : a type or design of clothing b : a type or design of product (as a car) 11 : a description or analogy

Ole Rasmussen 02341 Modelbaseret softwareudvikling14 Lektion 1: Introduktion2010-02-05

Page 15: Modelbaseret softwareudvikling Lektion 1: Introduktion 02341-10 L… · 10 a : a type or design of clothing b : a type or design of product (as a car) 11 : a description or analogy

Ole Rasmussen 02341 Modelbaseret softwareudvikling15 Lektion 1: Introduktion2010-02-05

Om kurset

Overordnede kursusmål

Kursets mål er at sætte den studerende i stand til at bruge modelbaseret udviklingsmetoder til udvikling af softwaresystemer. Dette omfatter anvendelse af modeller til beskrivelse af systemer samt principper for transformering af modeller baseret på forskellige metamodeller. Der fokuseres på praktisk og passende brug af modeller samt disses anvendelser til automatisk kodegenerering.

Læringsmål

En studerende, der fuldt ud har opfyldt kursets mål, vil kunne:– Have en basal forståelse for modeller og deres brug i moderne Software Engineering– Designe robuste modeller– Analysere modeller– Forstå relationen mellem modeller og den færdige kode, herunder alternative repræsentationer som

f.eks. XSD– Forstår og anvende automatiske kodegenerering fra modeller– Programmere kode manuelt fra modeller– Dokumentere software og dens design ved modeller

Page 16: Modelbaseret softwareudvikling Lektion 1: Introduktion 02341-10 L… · 10 a : a type or design of clothing b : a type or design of product (as a car) 11 : a description or analogy

Ole Rasmussen 02341 Modelbaseret softwareudvikling16 Lektion 1: Introduktion2010-02-05

Kurset består at forelæsninger, øvelser, opgaver og et projekt.Projektet er grundlaget for kursusevalueringen (din karakter)

Her ebar Hjemme