!#" $ % & ' () * + + %, -!. / 0 1 2 3 / 4 5 7 8 9 3 / : 8 5 5 / 3 ; ; < 8 = ; > ;? @ A @ B C 8 1 7 / 3 : / 3 5 D 8 3? C ; @ A E F GH % ", ' H %JI ' "K () LM / 7 < N 5 O / 1 : / 3 P 8 N P / = 8 Q Q8 3 7 1 4 LSR < 8 3 5 7 D / < 8 3 5 8 1 3 N Q8 D / 1 5 8 T 8 3 U V WX : 3 N Y / D N Z Uttrykkskraft for konseptuelle modelleringsspråk Metamodellering, ontologi L F 3 N \ ] ^ _ 7 Q ` a b c \ ] ^ _ d M 8 N E = 7 MetaEdit+ A Fully Configurable Multi-user and Multi- Tool CASE and CAME Environment L > / P 8 1 8 5 T 8 5 7: 7 D D P / = 8 Q Q 8 3 7 1 4 P 8 = M 8 N E = 7 Visual Domain-Specific- Modeling: Benefits and Experiences of Using Metacase Tools Meta.ppt 1 2, H " e -Kf % () () * + + %, -! L ; 1 8 8 1 D 8 Q T 8 3 5 T 8 D 7< = 8 D D 8 3 N Q Q8 Y 8 0 / < LM g Q 74 8 Qh 5 1 7 1 4 8 3 1 Bruke flere språk i samme verktøy, begrenset integrasjon (tidl. CASE-verktøy, Visio, ) 2 Utvid og integrer eksisterende språk (UML, PPP) 3 Lag helt nye språk 4 Verktøy for språk- og meta-modellering (Metaedit, Conceptbase) (lar brukeren utvide / endre / redefinere modelleringsspråk etter behov) LM 8 N P / = 8 Q Q / 4 5 i Y N 5 7 5 : / 3 i 5 N P P 8 1 Q 7 4 1 8 g Q 7 D 8 5 T 3 i D j k - % + #' - " $ % LM 8 N l 1 7< i 8 3 m 7 0 0 7 Q N Y 5 3 N D 5 O / 1 8 1 n D QN 5 5 7: 7 5 8 3 7 1 4 o LM 8 N l 1 7< i 8 3 Y 3 g D 7 P / = 8 Q Q 8 3 7 1 4 Instans: Forelesning 8, SIF 800, Ulrik Modell: Forelesning gis_i Fag tatt_av Student Metamodell: Entitetsklasse, Relasjonsklasse Meta-meta modell: Node, kant mellom noder L C T 3 i D P / = 8 Q Q < 5 P 8 N P / = 8 Q Q Semantisk språkbeskrivelse vs. basis for modell repository 3 4 kp$ % & 'Sf % " $ % & '!q() () * + + %, -! L A r T 7 5 D Y 3 g D N < 5 3 g D g 3 8 Q T 8 3 5 T 8 D 7< ER Andre semantiske datamodelleringsspråk UML (klassediagram) GOPRR (Graph Object Property Role Relationship) Ls 8 4 8 Q5 T 3 i D / : 8 5 g T T Q8 P 8 1 L > r 1 N P 75 D 8 P / = 8 Q Q8 3 / 4 5 i 5 g T T Q W A 7 Q5 N 1 = 5 = 7 N 4 3 N P t N D 7< 7 8 5 = 7N 4 3 N P P 8 3 u v * H - *,!qi % w ' ' " ' % f, () * x " $ % & ' y Lz g 1 4 8 l { N 1 = l { 8 Y 8 3 m R 1 / Q/ 4 75 D 3 N P P 8 < 8 3 D L ; F ; 9 W } m Y N 5 8 3 T i 8 D 5 75 8 3 8 1 = 8 5 T 3 i D Lp~ P N = 8 g 5 m M 8 N P / = 8 Q Q : / 3 5 T 3 i D 7 1 8 4 3 N 5 O / 1 LS > s m > 8 5 74 1 3 8 T 3 8 5 8 1 N 5 O / 1 P5 N 1 1 7= 5 : / D g 5 Petri-nett semantikk Lp~ s ; E C m = 7< 7 1 8 3 3 8 QN 8 3 8 P / = W 5 T 3 i D? g < 7 D Q 8 3 < 8 Q4 8 3 : 3 7 L g Q Q / 4 2 7 1 4 m M 8 N P / = 8 Q Q : / 3 5 8 P N 1 7 5 D 8 = N N l P / = 8 Q Q8 3 7 1 4 5 5 T 3 i D 5 1 1
- * ƒ % # x ˆK() () * + 7 8 ŠS Š SŒ k ŽK p 9 10 Š J Œ k JI + +! J, -! 11 12 2 2
² ± k (#() - +,! -, -! p š œp ž ŸS SŸ œ Ÿ œ œ Ÿ S œ p ª «««S «p pÿ Ÿ œ œ Ÿ Ÿ «S S œ «Ÿ Ÿ Participant knowledge Social actor interpretation Modeling domain Model externalization Language extension Technical actor interpretation 13 14 Œ *, ³ µ I + + wk S - f,! I % ƒ + #ŠI +, I " % - * ŠI +, + J SkpŒ# - *# J KKŒ# - H, % - () - C 8 < 8 1 2 8 Q Qr? 2 N Q Q 8 r r 7 1 8 1? M N 7 s / 5 5 7 p - - " LS¹ ~ C E l < 8 3 D h r g < 7 D Q 7 1 4 U ¹ ~ C E l ¹ / P T g 8 3 ~ 7= 8 = C r 5 8 PŠE 1 4 7 1 8 8 3 7 1 4 Z LS¹ ~ M E U ¹ / P T g 8 3 l ~ 7 = 8 = M 8 0 / = E 1 4 7 1 8 8 3 7 1 4 Z 5 / P 8 N Q 8 3 1 N 7< LSR < 8 3 5 7 D / < 8 3 M 8 N E = 7 LS R 9 s s 5 / PP 8 N P / = 8 Q Q8 3 7 1 4 5 5 T 3 i D LM 8 / = 8 < 8 3 D h r 7 M 8 N E = 7 LSR T T 5 g P P 8 3 7 1 4 / P M 8 N E = 7 Meta.ppt 15 1 J SkSŒq p (q$ I %, * *#kjw " (ºŒ -!, - %, -! LS» C 7 Q < 8 3 z g Q Q8» ¼ l N Q Q 8 Bedre produktivitet og kvalitet LM / = 8 Q Q l / 3 78 1 8 3 8 U C ~ t C >? 7 Q5 N 1 = 5 P / = 8 Q Q8 3? R R ~ t R R > Z L U s 74 7 = ½ Z : / D g 5 T i P 8 / = 8? / T T 4 N < 8 N g / P N 7 5 8 3 7 1 4 L @ / 8 1 < 8 3 D h r P 8 = P 8 N P / = 8 Q QN 3 D 7 8 D g 3 normalt utilgjengelig for brukerne Lz 3 g D P 7 1 = 3 8 8 1 1 < 8 1 8 Dyre verktøy Manglende modenhet Lite fleksible for endret infrastruktur ¾ OS, DB, Middleware, GUI Lz 3 g D P 7 1 = 3 8 Q h 1 1 5 / P8 1 1 < 8 1 8 k H ' % H *# J SkSŒ L C < N D t 5 N 75 D 7 1 8 4 3 N 5 O / 1 N < 5 g Y P / = 8 Q Q8 3 L > i 3 Q 7 4 : Q8 3 Y 3 g D 8 3 5 h 8 L > i 3 Q 7 4 5 h 8 : / 3 g Q 7 D 8 3 8 T 3 8 5 8 1 N 5 O / 1 5 : / 3 P 8 3 Diagrammer, matriser, tabeller, hypertekst LM N 1 4 Q8 1 = 8 D / Y Q 7 1 4 8 3 LM N 1 4 Q8 1 = 8 5 h 8 : / 3 8 < / Q g 5 O / 1 MetaCase: ConceptBase, RAMATIC, MetaEdit, METIS... L N À D 7 1 4 5 g T T / 3 : / 3 < N 3 r 7 1 4 7 1 8 3 8 5 l 4 3 / g T 5 17 18 3 3
Œ *, ³ L F Q 8 3 Y 3 g D 8 3 m Repository kan aksesseres av mange samtidig L F Q 8 3 l < 8 3 D h r m Mange ulike synsvinkler på samme modellobjekt L F Q 8 3 l P 8 / = 8 m Metodeintegrasjon, konsistenssjekking L F Q 8 3 l : / 3 P N m Mange representasjonsformer for samme modellobjekt L F Q 8 3 l 1 7< i m Støtter både analyse (IS) og design-metoder % ', ' I % ÁSÂ Ã Ä Å Æ Ã Ç È ÉÇ Ã Modellering Diagram editor Matrix editor Table editor Modellgjenfinning (modeller, meta-modeller) Repository browser Query editor Report editor Model-lenking, annotering Hypertext tool Debate Browser Metodestyring Metamodeling tool Symbol editor Verktøy-styring ÁSÌ Ã Í Î Ï ÉÄ Î Ð Ñ 19 20 GK S J () * +, -!q+ -! I! ÒSÓ Ô Ó Õ Ö Ø Ù Ú noder i diagram ÒÜ Ô Ü Ý Þ ß Ý Ù à Ú egenskaper for noder, relasjoner eller roller Òá Ô á âã Ù ä Þ å æ ç ä ß æ Ú Kanter (forbindelser) i diagram Òá Ô á Þ â æ Ú Hvordan objekter deltar i relasjoner Òè ã Ý é ä å ã â äù Ù ÒSê é å Ù äë ä ì ã Ù Þ Ý Ý Òí î é ä å æ Ù ã å æ Þ ï Ù à ß Ô å ä ð î ŽGK J p J J H, * + " K HKGK LS l 3 N T 0 U P / = 8 Q Z m aggregering av modellobjekter LS O 8 1 Y 3 g D N < 5 g Y P / = 8 Q Q8 3 L 2 N 1 0 N P N 1 4 8 3 8 T 3 8 5 8 1 N 5 O / 1 5 4 3 N : 8 3 : / 3 8 1 D / 1 5 8 T g 8 Q Q 4 3 N : LS 8 1 8 3 N Q 75 8 3 7 1 4 L 9 / Qr P / 3 : 7 L 4 O 8 1 Y 3 g D 8 P / = 8 Q Q l / Y O 8 D 8 3 7 1 P N 1 4 8 P / = 8 Q Q 8 3 Ls 8 4 Q8 3 : / 3 7 1 8 4 3 7 8 5 D / 1 3 / Q Q L E D 5 8 P T 8 Q m F 74 V? 5 W } ñ 21 22 * " w %, -! " H % ' v w L F Q 8 D 5 7 Y 8 Q / T T 3 8 7 1 4? 8 5 7 1 4 / 4 5 r 3 7 1 4 N < 1 r 8 P / = 8 Q Q8 3 7 1 4 5 5 T 3 i D L B Q 7 D 8 : 3 8 P 4 N 1 4 5 P i 8 3 Fra scratch komponentbasert gjenbruksorientert * ƒ w!!, -! LM 8 N P / = 8 Q Q < 8 3 D h r U g < 7 D Q8 R 9 s s l P / = 8 Q Q 8 3 Z L C r P Y / Q8 = 7 / 3 L > 8 : 7 1 8 3 8 3 8 4 Q8 3 : / 3 D / 1 5 7 5 8 1 5 5 O 8 D D LM 8 3 7 D D 8 3 / 4 5 N 75 7 D D 8 3 : / 3 i 8 < N Q g 8 3 8 5 T 3 i D D < N Q 7 8 fokus på kompleksitet 23 24 4 4
Ž - % %, -! L O 8 Q T LM 8 / = 8 5 h 8 Ls N T T / 3 8 3? D / = 8 GK$ $ " I (#() %, -! ÒSò ó à å ä ð î ô Ù Þ é æ ß æ äë ä ì ã æ Ö Þ å Òpõ ß å ã Ý ì äù ì Ù ö Ý ÒS ã ô Ù ä é ä ï ë â Ý Õ Ý ö ì Ý ã ì æ æ æ ÒSø ã å ï ë Þ â é ä ï ð Ý ì Ù ó à æ æ Ù Ù Òù â ì æ äõ â ä å Ù ï Ý ã æ Ö Þ å ÒS à ô ô Ù Ý äæ ì Õ ç ã å é â ä å ï ã ð ô Þ é â â Ý Þ ï ô Ù ã ô Þ é â â Ý ÒSú ë Ý é ä ï Repository Samtidighetskontroll Integrasjon med andre verktøy 25 2 J, " ' I " e - "J$ $! H L < N 8 3 g Q8 P T 8 3 < 8 = i Y 8 1 r 8 M 8 N P / = 8 Q Q8 3 7 1 4 5 < 8 3 D h r U 5 N 4 T i 8 1 N 1 1 8 1 P i 8? 0 < N 8 3 : / 3 = 8 Q8 3 < 8 = Y 3 g D N < P 8 3 3 N = 75 O / 1 8 Q Q 8 P / = 8 Q Q8 3 7 1 4 5 < 8 3 D h r 5 / P5 h 8 3 : / 3 8 D 5 8 P T 8 Q 5 N 1 = N 3 = B M Z ½ ûp, " I + (), - ks$ ü, f, ü# * +, -! ý - f, "K - *# þ $ %, - ü "K f I ", -!q() ü " + " ÿ z N 5 8 3 T i 8 1 T 3 8 5 8 1 N 7/ 1 N < C 8 < 8 1 2 8 Q Qr M 8 N ¹ N 5 8 ¹ / 1 5 g Q 7 1 4 27 Meta.ppt 28 p - - " L ; 1 3 / = g À 7/ 1 L {J0 N 7 5 = / P N 7 1 l 5 T 8 À 7: 7À P / = 8 Q 7 1 4 U > C M Z ½ Lqz 8 1 8 : 7 5 / : > C M L > C M À N 5 8 5 g = 78 5 Lq / p / 7P T Q 8 P 8 1 = / P N 7 1 l 5 T 8 À 7: 7 À P 8 0 / = 5 L > 8 P / 1 5 3 N 7 / 1 / : 8 N P T Q8 5 L C g P P N 3 r, "K* (), - " $ ü, f, ü)() * +, -! Ò ã ß Ù ö Ý æ é Þ ô ã ä å ì å Þ â é ï ã æ Þ ß ß Þ æ é Ù Þ Ø Þ é Uses domain abstractions Applies domain concepts and rules as modeling constructs Ò â â Þ æ é ð â Þ ß Ý æ Ù Þ é æ ä ï å ß Ý Þ é ö Ø Ù æ äù ç é Þ ô ã äå Ù Ý ô æ Apply familiar terminology Solve the RIGHT problems! Solve problems only ONCE! 29 30 5 5
, -qƒ - f, "K fp kp kp p " KkJ I * w u ', Òù ö å é ã ô å Ù ã â! " # "! $ " % # & % & '! ( ) Ô * + Ù ä ô æ Shorter intervals Lower costs Fewer people needed Òù ã æ Ù Ý Ø ç ã å ï Ý æ ß Þ å æ ä ð å æ æ Manage changes in domain instead of code Ò-, ð Ý ã ï. ß Ý Ù äæ äå æ ä é Ù ç Ù ã ô Put your expert s knowledge in a tool Ò0/ ò äé 1 é Þ ô ã ä å Ø Þ ô ß â. äù à DSM includes domain rules L > C M N 1 = 3 8 QN 8 = À / = 8 4 8 1 8 3 N / 3 5 : / 3 P / Y 7 Q 8 T 0 / 1 8 2 LSR 3 = 8 3 / : P N 4 1 7 g = 8 T 3 / = g À 7< 7 r 4 N 7 1 5 U 3 4 5 Z "A module that was expected to take 2 weeks... took 1 day from the start of the design to the finished product" L F / À g 5 / 1 = 8 5 7 4 1 5 3 N 0 8 3 0 N 1 À / = 8 Domain-oriented method allows developers to concentrate on the required functionality L A 3 N 7 1 7 1 4 7P 8 N 5 3 8 = g À 8 = 5 74 1 7: 7À N 1 Qr Earlier it took months for a new worker to become productive. Now it takes 2 weeks * MetaCase, Nokia case study, 1999 31 32 kp p " KkJ I * w 7 I ü - kp p " KkJ I * w k Š Ò08 9 Ü ç Þ å äù Ø ç : ÒS ð Ý ã â ; ø æ ÒSÓ å ; ø Ø ã â â é á ; Ú æ ß Ø äë à ä å ï Ø Þ å ë ä ï ö Ý ã Ù ä Þ å Ø Þ å Ù Ý Þ â ö å äù æ ã å é Ý â ã Ù ä Þ å æ ç ä ß æ Õ Ù å Ù ç ô Translation to state machines Translation to C Òá ß Þ Ý Ù é ß Ý Þ é ö Ø Ù ä ð äù à ä ô ß Ý Þ ð ô å Ù æ Þ ë < =! >? @ A! " % & ( From several cases From several DSMs L > 8 < 8 Q/ T P 8 1 / : P 8 5 5 N 4 8 3 N 1 5 QN 7/ 1 N 1 = < N Q 7 = N 7/ 1 5 r 5 8 P U M A B Z 2 L > 8 À QN 3 N 7< 8 = / P N 7 1 l 5 T 8 À 7: 7 À QN 1 4 g N 4 8 L0C À / = 8 4 8 1 8 3 N / 3 5 N 1 = À g 5 / P 7 D N 7/ 1 / : À / P T / 1 8 1 5 ¹ / P T N 3 8 = > C M N 4 N 7 1 5 À / P T / 1 8 1 l Y N 5 8 = = 8 < 8 Q/ T P 8 1 m L > C M 7 5 E b F G a H I c H b a J 0 N 1 À / = 8 À / P T / 1 8 1 5 L > C M Q 8 N = 5 / I a K a J a J J L J H m N Y / g M ¼ NŠQ8 5 5 L > C M 4 7 < 8 5 n H O P a J F L J I Q a 5 F R F Q F b S 7 1 0 N 1 = Q 7 1 4 N 4 3 8 N 8 3 3 N 1 4 8 / : 5 T 8 À 7: 7 À N 7 / 1 5 o 0 N 1 À / P T / 1 8 1 5 * D. Weiss et al, Software Product-Line Engineering, Addison-Wesley * Kieburtz et al., A Software Engineering Experiment in Software Component Generation, ICSE 33 34 q, (q$ + () - J kp T U V W X Y m f i j n j k o g j l j f j ˆ X Y X ^ _ \ Z \ W ] ` a U b c d s t u v w x yz v { } ~ w y ƒ Easy! m f g n o i g j k n g f q j r m f g n o i p f q j r e f q j j i j n k o f i Generate calls to components e f g h f i j i k r o n Š e f g h f i j i k l q, (q$ + () - J kp Œ Ž ; 1 < 8 5 P 8 1 m L > 8 : 7 1 8 P 8 N P / = 8 Q : / 3 0 8 = / P N 7 1 About 1-2 man-weeks Lqz g 7 Q= / / Q 5 g T T / 3 1 man-day for building a modeling tool 9 N r Y N À D m L)~ T T Qr 7 1 5 / : N 3 8 T 3 / = g À 7/ 1 œ ž Ÿ š š œ Ÿ š 35 3
L Å Å Å Å L È Æ k $ "Šf %, (q$ + () -, -! kp Rules Generators 1 Concepts 2 3 Symbols 4 ˆ x ",! -)* (), -)ü - ü $ " LqM N T P / = 8 Q 7 1 4 À / 1 À 8 T 5 N À À g 3 N 8 Qr / = / P N 7 1 À / 1 À 8 T 5 L#¹ / 1 À 8 1 3 N 8 / 1 5 8 P N 1 7À 5 L)~ = = 8 8 1 5 7/ 1 5 : / 3 5 / : N 3 8 T 3 / = g À 7/ 1 Q N 8 3 Lqs 8 : Q8 À / / g T g U 8 W 4 W 4 8 1 8 3 N 8 = À / = 8 Z L 2 8 8 T 7 1 P 7 1 = 0 8 8 1 = l g 5 8 3 U g 5 8 3 l : 3 78 1 = Q 7 1 8 5 5 / : 0 8 > C M Z 37 38 () * + +, -!#ü - ü $ "K f ŽGK J p * + % ü, ü I % É ý w) k G GKŽ-Ì Concepts raph ª bject ` roperty «ole «elationship Rules, e.g. Max 1 Min 1 Unique, etc Links between models Reuse rules GOPRR Domain language Concepts Rules Symbols Reports Product specifications Metametamodel ¾µ º ¹ ± ¾³ º ¾±Ç ² µ± ³ ¹ º ² ³ Metamodel» ¼±±³ ½ µ ¾ Model InstanceOf  ³ à InstanceOf System in operation  ³ º à ¾ ¼±±³ Ä Sets InstanceOf InstanceOf À µ Á 39 40 Ž x f, - K* (), -#% I + " L > 8 : 7 1 8 5 8 P N 1 7À 5 N 1 = 3 g Q8 5 N 5 0 8 r 8 75 7 1 0 8 = / P N 7 1 Í x J% µ" w (qƒ + "É -, - Ì L > 8 : 7 1 8 5 r P Y / Q5 7 Q Q g 5 3 N 7 1 4 N 5 8 Q Q N 5 T / 5 5 7 Y Q 8 0 8 À / 3 3 8 5 T / 1 = 7 1 4 = / P N 7 1 À / 1 À 8 T 5» 1 N g 3 N Q o < 7 5 g N Q 7 D N 7/ 1 o e.g end-users notation, customers notation @ / N 7 / 1 5 / : = 7 N 4 3 N P 5? P N 3 7 8 5? N Y Q8 5? : / 3 P 5? 8 8 À W E N P T Q 8 5 / : 3 g Q8 r T 8 5 m Bindings between concepts Layering abstractions Reusing rules etc. 41 42 7 7
Î x (q$ + () -! - % % " L A 0 8 À / 5 / : = 8 < 8 Q/ T 7 1 4 0 8 À / = 8 4 8 1 8 3 N 7/ 1 7 5 = 8 : 3 N r 8 = / < 8 3 N : 8 g 5 8 3 5 L {J3 7 8 3 8 T / 3 = 8 : 7 1 7 7/ 1 5 Y N 5 8 = / 1 = / P N 7 1 À / 1 À 8 T 5 m Component use Code generation Configuration data Review etc. Š$ $ + w), -)" f Š % #$ % * I ü, - L > 8 < 8 Q/ T N T T Q 7À N 7/ 1 5 U = / P N 7 1 7 1 5 N 1 À 8 5 Z g 5 7 1 4 0 8 > C M 7 1 : 3 N 5 3 g À g 3 8 L 9 3 / / r T 8 r / g 3 = 8 5 74 1 Ï 3 8 : 7 1 8 N 1 = 7 8 3 N 8 43 44 Œ þ (q$ + f % ( ü *, -!#q() * +, -! f, -, -! () () * + 45 4 * +, -! K, )* (), -)ü - ü $ " kji (#() % w L > / P N 7 1 l 5 T 8 À 7: 7 À P / = 8 Q 7 1 4 3 N = 7À N Q Qr 7P T 3 / < 8 5 T 3 / = g À 7< 7 r U M l } ¼ Z L > C M Q 8 < 8 3 N 4 8 5 8 T 8 3 = 8 < 8 Q / T 8 3 5» N Y 7 Q 7 78 5 / 8 P T / 8 3 / 0 8 3 = 8 < 8 Q / T 8 3 5 7 1 N 8 N P LqM 8 N ¹ ~ C E / / Q 5 T 3 / < 7= 8 N À / 5 l 8 : : 8 À 7< 8 N r / À 3 8 N 8 > C M 7 1 : 3 N 5 3 g À g 3 8 Lqz g 7 Q= 7 1 4 > C M 75 4 3 8 N : g 1 : / 3 8 T 8 3 5 U Y g 7 5 N Q5 / 0 N 3 = Z Ð Ñ Ò 47 48 8 8