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 10:00-14:00

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., Lyons B. and Fado, D. OMG Press. Wiley. 2004.

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

§       Readings:

§       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. §       Readings:

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.§       Readings:

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.§       Readings:

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.                 §       Enterprise Java Beans (EJB)

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.                         §       Readings: http://www.omg.org/technology/documents/formal/spem.htm

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.                        §       Readings:

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.                        §       Readings:

138.                        §       Outline:

139.                        §       Slides: ReuseCMM.ppt

Lecture 26: Component-Based Software Engineering Capability and Maturity Models (@swquality 22/07)

140.                        §       Juliana

141.                         §       Readings:

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.                        §       Readings:

148.                        §       Outline:

149.                        §       Slides: MDSECMM.ppt

Lecture 30: Software Product-Line Engineering Capability and Maturity Models (@swquality 30/07)

150.                        §       Geovane

151.                         §       Readings:

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