MDA, Components and Software Reuse (IN0980) 2006.1
General information:
1. § Lecturer: Jacques Robin
2. § Teaching assistants: Luiz Lacerda, Marcos Aurélio
3. § Time
and hours: 5a
4. § Room: D222
5. § This page: www.cin.ufpe.br/~in0980/2006/
Bibliography:
6. § Component-based product line engineering with UML. Atkinson, C., Bayer, J., Bunse. C., Kamsties, E., Laitenberger, O., Laqua, R., Muthig, D; Paech, B. Wüst, J. and Zettel. J. Component Software Series. Addison-Wesley. 2002.
7. § MDA explained (The model-driven architecture: practice and promise). Kleppe, A., Warmer, J. and Bast, W. Object-Technology Series. Addison-Wesley. 2003.
8. § The Object Constraint Language 2nd Ed. (Getting your models ready for MDA). Warmer, J. and Kleppe, J. Object-Technology Series. Addison-Wesley 2003
9. § UML
2 Toolkit. Eriksson, H.E, Penker, M.,
10. § Pattern-Oriented Software Architecture: A System of Patterns. Buschmann, F., Meunier, R., Rohnert, H., Sommerlad. P. and Stal, M. Wiley. 1996.
11. § Programming .Net components. Juwal, L. O’Reilly. 2003.
12. § MDA en action (Ingénérie logicielle guidée par les modèles). Blanc, X. Eyrolles. 2005.
Evaluation:
1. § Oral seminar (individual): 25%
2. § Command & Understanding: 1 point
3. § Completeness Depth (Aprofundamento): 1 point
4. § Completeness Breadth (Abrangência): 1 point
5. § Correctness: 1 point
6. § Conciseness: 1 point
7. § Relevance: 1 point
8. § Clarity: 1 point
9. § Examples: 1 point
10. § Oral skills: 1 point
11. § Slides: 1 point
12. § Material not completely studied with question list ready for first advising meeting 3 weeks before seminar’s date: - 2 points
13. § Slides not completely ready for last advising meeting 1 week before seminar’s date: - 2 points
14. § Project (in teams): 45%
15. § Artifacts: 25%
16. § Scope width: 1 point
17. § Robustness, testing thoroughness: 2 points
18. § Extensibility to new requirements: 1 point
19. § Reusability in new domains: 1 point
20. § Reusability across platforms: 1 point
21. § Documentations, explanations, comments: 1 point
22. § Legibility, conciseness: 1 point
23. § For models, executability: 2 points
24. § For code, performance scalability: 2 points
25. § Written Report: 10%
26. § Project general goal, motivation and context: 1 point
27. § Explanations of artifacts: 1 point
28. § Motivation and discussion of choices among alternative possibilities: 1 point
29. § Limitations of work in terms of scope, robustness, extensibility, reusability : 1 point
30. § Examples: 1 point
31. § Figures: 1 point
32. § Writing clarity: 1 point
33. § Writing relevance and conciseness: 1 point
34. § Completeness depth: 1 point
35. § Correctness: 1 point
36. § Oral Presentation: 10%
37. § Command/understanding: 1 point
38. § Completeness Depth (Aprofundamento): 1 point
39. § Completeness Breadth (Abrangência): 1 point
40. § Correctness: 1 point
41. § Conciseness: 1 point
42. § Relevance: 1 point
43. § Clarity: 1 point
44. § Examples: 1 point
45. § Oral skills: 1 point
46. § Slides: 1 point
47. § Exams (individual) 30%
48. § All documents allowed, for each question get one point by picking the single correct answer out of the four proposed answers
Roster:
13. § Fabrício
Siqueira Teles (mailto:fts@cin.ufpe.br, fabricio.teles@gmail.com)
14. § Geovane Nogueira Lima (gnl@cin.ufpe.br, geovane@swquality.com)
15. § Heron Vieira Aguiar (hva@cin.ufpe.br, heron@swquality.com)
16. § Juliana (juliana@swquality.com)
17. § Luciana de Paiva Silva (lps@cin.ufpe.br)
18. § Marcos Aurelio Almeida da Silva (maas@cin.ufpe.br, maurelio1234@gmail.com)
19. § Renata Teles Moreira (rtm@cin.ufpe.br, renata@swquality.com)
20.§ Roberto Damiani Mendes (rdm@cin.ufpe.br, roberto@swquality.com)
21. § Rodrigo Teixeira Ramos (rtr@cin.ufpe.br)
22.§ Tatiana Ribeiro Hipólito (trh@cin.ufpe.br, tatiana@swquality.com)
Lecture 1: Course Overview 25/04
23.§ Jacques
24.§ Outline: this page
Lectures 2, 3: Overview of Software Reuse 27/04, 02/05 (@swquality 06/05, 13/05)
25.§ Jacques
26.§ Readings:
27. § Reusing software: issues and research directions: http://citeseer.ist.psu.edu/mili95reusing.html
28. § Software reuse: principles, patterns, prospects: http://citeseer.ist.psu.edu/357780.html
29.§ Outline:
30. § What is software reuse?
31. § Motivation for software reuse
32. § What artifacts to reuse?
33. § Consolidated software reuse concepts and techniques
34. § Subroutines and functions
35. § Modules, libraries and packages
36. § Meta-programming and generative programming
37. § Classes, objects and inheritance
38. § Object frameworks
39. § Cutting-edge software reuse concepts and techniques
40. § Interfaces and code components
41. § Component-based architectures
42. § Model-driven architecture and model transformations
43. § Separation of concerns and aspects
44. § Product lines
45. § Integration of software reuse concepts and techniques
46. § Reuse-oriented software processes
47. § Reuse-oriented CASE tools
48.§
Slides: Intro2Reuse.ppt
Lecture 4: Project Topics 04/05
49.§ Jacques
50.§ Outline:
51. § A MOF Meta-model of CMMI
52. § A SPEM Specification of an Updated KobrA 2.0 Process that Leverage UML2
53. § A Software House Personnel Automated Task Allocation Component Based on Object-Oriented Constraint Programming and IBM Portfolio Manager Data
Lecture 5: Overview of Model-Driven Architecture and
Development 09/05 (@swquality
20/05)
54.§ Jacques
55.§ Readings:
56. § Chapters 1 & 2 of Kleppe, Warmer & Bast
57. § Chapter 9 of Eriksson et al.
58. § Chapter 1 of Blanc
59.§ Outline:
60. § MDA key principles
61. § Motivation and historical roots of MDA
62. § CIM, PIM and PSM
63. § UML2 and OCL2: modeling languages for MDD
64. § Metamodels and MOF
65. § Model transformations QVT and ATL
66. § Model repositories XMI, JMI and EMF
67.§ Slides: MDD.ppt
Lecture 6: Structural Modeling with UML2 11/05 (@swquality 27/05)
68.§ Jacques
69.§ Readings:
70. § Chapters 2 & 4 of Eriksson et al.
71. § Outline:
72. § UML diagrams
73. § UML meta-model package structure
74. § Classes
75. § Associations
76. § Object diagrams
77. § Packages
78. § Templates
79. § Active classes and objects
80.§ Slides: UMLStructural.ppt
Lecture 7: Precise Semi-formal Modeling with OCL2 16/05 (@swquality 25/06)
81. § Jacques
82.§ Readings:
83. § Chapters 1, 2 & 3 of Warmer & Kleppe
84. § pp. 301-309 of Eriksson
85. § pp. 74-87 of Blanc
86.§ Outline:
87. § What is OCL?
88. § Purposes of OCL
89. § The OCL meta-model
90. § OCL primitive types
91. § OCL arithmetic operations
92. § OCL boolean operations
93. § OCL string operations
94. § OCL collections
95. § OCL navigation
96. § OCL constraints
97. § Class invariants
98. § Method pre and post-conditions
99.§ Slides: OCL.ppt
Lecture 8: Meta-modeling with MOF2 and UML2 Profiles 16/05 (@swquality 08/07)
100. § Jacques
101. § Readings:
1. § Chapter 8 of Kleppe, Warmer & Bast
2. § Chapter 318-320 of Eriksson et al.
3. § Chapter 2 & pp. 67-70 of Blanc
4. § Outline:
5. § What is a meta-model?
6. § The four MDA layers
7. § Linking and composing metamodels
8. § MOF1.4
9. § UML2 Infra-structure
10. § MOF2.0
11. § UML Profiles
12. § Slides: Metamodeling.ppt
Lectures 9, 10, 11: Behavioral Modeling with UML2 23/05,
25/05, 06/06 (@swquality
03/06, 10/06, 24/06)
13. § Jacques
14. § Readings:
15. § pp. 145-172, 195-200 & 205-206 of Eriksson et al.
16. § pp. 50-57 & 87-94 of Blanc
17. § Outline:
18. § State machines
19. § Activity diagrams
20. § Action semantics
21. § Concurrency modeling
22. § Time modeling
23.§ Slides:
UMLBehavioral.ppt
Lectures 12, 13, 14 UML-OCL Modeling Tools 30/05, 01/05
1. § Luiz and Borland Training Staff, Practical Lectures in Laboratory
2. § Outline
3. § Relevant Functionalities of IBM Rational Software Modeler (IRSM) or Borland Together Designer (BTDes)
4. § Architecture of IRSM or BTD
5. § Creating a Multi-Diagram UML Model
6. § Creating a UML Class Diagram
7. § Adding OCL Constraints
8. § Creating a UML Object Diagram
9. § Creating a UML Component Class Diagram
10. § Creating a UML Component Instance Diagram
11. § Creating a UML Activity Diagram
12. § Linking the Diagrams together
13. § Creating a UML Profile
14. § Using a UML Profile
15. § Verifying the Inter-Diagram Completeness and Consistency
16. §
Slides: IRSM.ppt
Lecture 15: Overview of Software Components 08/06 (@swquality 08/07)
24.§ Jacques
25.§ Readings:
26. § Chapter 7 of Eriksson et al.
27. § Chapter 1 of Buschmann et al.
28. § Chapter 2 of Löwy
29. § pp. 57-67 of Blanc
30.§ Outline:
31. § Definitions of software components
32. § Classes of software components
33. § Executable components
34. § UML components
35. § Component assembly
36. § Executable component frameworks
37. § Architectural patterns
38.§
Slides: Intro2Components.ppt
Lectures 16,
17: The KobrA Component-Based PIM Development Method
13/06, 29/06 (@swquality 09/07)
§ Jacques
§
§ Chapters 2-10, 12 & Appendices A, B of Atkinson et al.
§ Outline:
§ The KobrA 1.0 PIM Artifacts
39. § Component specification artifacts
40. § Component specification coherence and completeness rules
41. § Component realization artifacts
42. § Component realization coherence and completeness rules
43. § Component specification-realization conformance rules
44. § Context realization artifacts
45. § Context realization coherence and completeness rules
46. § Component composition
47. § Component containment
48. § Component clientship
49. § Component ownership
50. § Component generalization
51. § COTS reuse
52. § Architectural patterns in KobrA
§ The KobrA 1.0 meta-model
53. § The KobrA 2.0 PIM Artifacts
54. § The PIM Component Specification Artifacts
55. § KobrA 2.0 x KobrA 1.0 PIM Component Specification Artifacts
56. § The PIM Component Realization Artifacts
57. § KobrA 2.0 x KobrA 1.0 PIM Component Specification Artifacts
58. § The PIM Aspect Specification Artifacts
59. § The KobrA 2.0 UML2 Profile for Aspect-Oriented Components
§
Slides: Kobra.ppt,
courtesy of Colin Atkinson and the Kobra team
Lecture 18: GUI Modeling with UML 06/07
60.§ Luiz Lacerda
61. §
62. § A UML Profile for GUI Layout: http://www.bitfolge.de/pubs/thesis/index.html
63. § Chapter 6 of Software Engineering for Adaptive Hypermedia Systems: http://www.pst.informatik.uni-muenchen.de/ personen/kochn/PhDThesisNoraKoch.pdf
64. § The Authoring Process of the UML-based Web Engineering Approach: http://www.pst.informatik.uni-muenchen.de/ publications/uwe_iwwost01.pdf
65.§ Outline:
66. § UMLWE notation and method
67. § UML profile for GUI layout
68. § KobrA 2.0 GUI Engineering
69. § GUI Component Specification Artifacts
70. § GUI Aspects Specification Artifacts
71. § GUI Component Realization Artifacts
72. § GUI Aspects Specification Artifacts
73.§ Slides: GUIModeling.ppt
Lecture 19: KobrA Component Testing Method 11/07
74.§ João
75.§
76. § Chapter 1, 3 & 4 of Built-in Contract Testing: Method and Process
77.§ Outline:
78. § Built-in Contract Testing
79. § Test selection techniques
80. § Built-in server tester components
81. § Built-in testing interface
82. § Associations between client and tester components
83. § Associations between server component and testing interface
84. § Associations between tester component and testing interface
§ SPEM Specification of the KobrA 2.0
sub-process for PIM Engineering with BICT
85.§
Slides: KobraTesting.ppt
Lecture 20: Java Beans and UML2 Profile for Java 13/07
86.§ Marcos Aurelio
87.§
88. § http://rangiroa.essi.fr/cours/langage/97-javaBeans.pdf
89. § http://java.sun.com/docs/books/tutorial/javabeans/
90. § http://www.drbob42.com/JBuilder/jb210t.htm
91. § http://my.execpc.com/~gopalan/java/ejb.html
92.§ Outline:
93. § Java Beans
94. § Basic Concepts
95. § Bean Development Kit
96. § BeanBox
97. § Persistence
98. § Bound, Constrained and Indexed Properties
99. § Bean Customization
100. § Using BeanInfo
101.
§
102. § EJB Architecture
103. § EJB Clients
104. § EJB Servlet Clients
105. § EJB Containers
106. § EJB Component Model (home interface, home object, remote interface, EJB Object, Enterprise Bean, deployment descriptors)
107. § Entity Beans
108. § Stateless Session Beans
109. § Persistent Session Beans
110. § Container-Managed Persistence
111. § Bean-Managed Persistence
112. § Java Transaction Service (JTS)
113. § Java Naming and Directory Interface (JDNI)
114. § EJB compared to JavaBeans
115. § IDE for JavaBeans and EJB
116. § A UML2 Profile for JavaBeans
117. § Slides: UML2Profile4JavaBeans.ppt
Lecture 21: Software Process Modeling with SPEM (@swquality 15/07)
118. § Heron
119.
§
120. § Outline:
121. § The SPEM Metamodel
122. § The SPEM UML2 Profile
123. § Illustrative Case-Study
124. § CASE Tool Support for SPEM
125. § Limitations of SPEM
126.
§ Slides: SPEM.ppt
Lecture 22: Architectural and Design Patterns (@swquality 15/07)
127. § Roberto
128.
§
129. § Outline:
130.
§
Slides: Patterns.ppt
Lecture 23: Project Presentation-Feedback 1 18/07
131. § Personnel Allocation Component
132. § Version 1.0 of KobrA 2.0 Personnel Allocation Component CIM and PIM Specification Artifacts
133. § Version 1.0 of UML2 Profile for hybrid Java-CHORD PSM
Lecture 24: Model Repositories 20/07
134. § Luciana
§ Outline:
§ What is a model repository?
§ Requirements of model repositories
§ Approaches to model repositories
§ XML
§ XMI: an XML-based standard for model persistence and exchanges
§ JMI: a Java API for model manipulation
§ Eclipse: an extensible IDE component framework
§ EMF: an Eclipse-based model repository
135. § Slides: ModelRepositories.ppt
Lecture 25: General Software Reuse Capability and Maturity
Models (@swquality 22/07)
136. § Renata
137.
§
138. § Outline:
139.
§
Slides: ReuseCMM.ppt
Lecture 26: Component-Based Software Engineering Capability and Maturity Models (@swquality 22/07)
140. § Juliana
141.
§
142. § Outline:
143.
§ Slides: CBSECMM.ppt
Lectures 27, 28: Model Transformations (@swquality 29/07)
144. § Rodrigo and Fabrício
§ Outline:
§ What is a model transformation?
§ Purposes of model transformation in MDD
§ Current approaches to model transformations
§Imperative
object-oriented programming in Java
§Declarative
programming in XSLT
§Declarative
object-oriented logic programming
§Declarative
specification with dedicated model transformation languages
§ XSLT: an XML-based term rewriting language
§ Flora: an object-oriented logic programming language
§ ATL rules: an OCL-based hybrid procedural and declarative
transformation language
§ QVT: an OCL-based hybrid procedural and declarative transformation
language
§ Comparing Java, XSLT, Flora, ATL and QVT for model transformation
145.
§
Slides: ModelTransformations.ppt
Lecture 29: Model-Driven Software Engineering Capability and
Maturity Models (@swquality
30/07)
146. § Tatiana
147.
§
148. § Outline:
149.
§
Slides: MDSECMM.ppt
Lecture 30: Software Product-Line Engineering Capability and Maturity Models (@swquality 30/07)
150. § Geovane
151.
§
152. § Outline:
153.
§ Slides: SPLECMM.ppt
Prova: 01/08 (@swquality 05/08)
Project Presentation-Feedback 2 21/08 (w/ swquality 19/08)
154. § Personnel Allocation Component Project
155. § Version 2.0 of UML2 Profile for hybrid Java-CHORD PSM
156. § Version 2.0 of KobrA 2.0 Personnel Allocation Component CIM and PIM Specification Artifacts
157. § Version 1.0 of KobrA 2.0 Personnel Allocation Component PIM Realization Artifacts
158. § Version 1.0 of KobrA 2.0 Personnel Allocation Component PIM Built-In Contract Testing (BICT) Artifacts
159. § Version 1.0 of ATL or QVT Transformations from PIM Specification to PIM Realization Artifacts
160. § Version 1.0 of ATL or QVT Transformations from PIM Specification to PIM BICT Artifacts
161. § MOF Meta-Model of CMMI Level 3
162. § Version 1.0 of CMMI Meta-Model Level 3
Project Presentation-Feedback 3 04/09 (w/ swquality 02/09)
163. § Personnel Allocation Component Project
164. § Version 2.0 of KobrA 2.0 Personnel Allocation Component PIM Realization Artifacts
165. § Version 2.0 of KobrA 2.0 Personnel Allocation Component PIM Built-In Contract Testing (BICT) Artifacts
166. § Version 2.0 of ATL or QVT Transformations from PIM Specification to PIM Realization Artifacts
167. § Version 2.0 of ATL or QVT Transformations from PIM Specification to PIM BICT Artifacts
168. § Version 1.0 of KobrA 2.0 Personnel Allocation Component PSM Specification Artifacts
169. § Version 1.0 of ATL or QVT Transformations from PIM Specification to PSM Specification Artifacts
170. § MOF Meta-Model of CMMI Level 3
171. § Version 2.0 of CMMI Meta-Model Level 3
Project Presentation-Feedback 4 18/09 (w/ swquality 16/09)
172. § Personnel Allocation Component Project
173. § Version 2,0 of KobrA 2.0 Personnel Allocation Component PSM Specification Artifacts
174. § Version 2.0 of ATL or QVT Transformations from PIM Specification to PSM Specification Artifacts
175. § Version 1.0 of KobrA 2.0 Personnel Allocation Component PSM Realization Artifacts
176. § Version 1.0 of ATL or QVT Transformations from PIM Realization to PSM Realization Artifacts
177. § Version 1.0 of KobrA 2.0 Personnel Allocation Component PSM BICT Artifacts
178. § Version 1.0 of ATL or QVT Transformations from PIM BICT to PSM BICT Artifacts
179. § MOF Meta-Model of CMMI Level 3
180. § Version 3.0 of CMMI Meta-Model Level 3
Project Final Presentation 16/10 (w/ swquality 14/10)
181. § Personnel Allocation Component Project
182. § Version 2.0 of all artifacts
183. § Lessons learned
184. § Limitations and open issues
185. § MOF Meta-Model of CMMI Level 3
186. § Version 4.0 of CMMI Meta-Model Level 3
187. § Lessons learned
188. § Limitations and open issues