Advanced Software Engineering (ETF RIO NSI 5970) |
|
General information |
|
Module title | Advanced Software Engineering |
Module code | ETF RIO NSI 5970 |
Study | ETF-B |
Department | Computing and Informatics |
Year | 2 |
Semester | 3 |
Module type | Mandatory |
ECTS | 7 |
Hours | 70 |
Lectures | 40 |
Exercises | 30 |
Tutorials | 0 |
Module goal - Knowledge and skill to be achieved by students |
|
Objective of this course is to introduce advanced methods and technologies of software systems development. Students are learning about software systems development by combining key concepts: components, design patterns, software architectures. Within the course students will be introduced to open source software (OSS) systems and their development projects. |
|
Syllabus |
|
1. Components and reasons for software implementation using components. Introduction to modern component models (e.g. CORBA, JavaBeans). Interface components and design of components with 'contracted' behavior. <br> 2. Concept of project samples, and their development from abstract model into usable software components. <br> 3. Principles and characteristics interpretation of open source software. Analysis of OSS products regarding their architecture, component development, construction, generation and testing. Advantages of using OSS products. <br> 4. Role and importance of software architecture concept - concrete and abstract - in design process of complex and heterogeneous software systems. Software architectures based on component technology. <br> 5. Model driven architecture (MDA). Types of models: computational independent model (CIM), platform independent model (PIM) and platform specific model (PSM). Languages for model description (MOF, UML, ocl). Model transformations. <br> 6. Concepts and tools for describing and modeling of software architectures, techniques for their analysis and evaluation. Automatic code generation based on model, model driven programming and extreme programming. <br> 7. Introduction to techniques and methods of software systems development based on the concept of service and service oriented architecture (SOA). Integration of MDA method in development of service oriented architecture. <br> |
|
Literature |
|
Recommended | 1. Notes and slides from lectures (See Faculty WEB Site) <br> 2. E. Gamma, R. Helm, R. Johnson, and J. Vlissides,Design Patterns: Elementes of Reusable Object-Oriented Software, Addison-Wesley, 1995 <br> |
Additional | 1. G.T. Heineman, W.T. Councill, Component Based Software Engineering: Putting the Pieces Together, Addison-Wesley Professional, 2001. <br> 2. S.J. Mellor, K.Scott, A.Uhl, D.Weise, MDA Distilled: Principles of Model-Driven Architecture, Addison-Wesley, 2004. <br> 3. A. Hemrajani, Agile Java Development with Spring, Hibernate and Eclipse (Developer's Library), 2006. <br> |
Didactic methods |
|
Lectures. Individual and team work on project tasks in the laboratory: design and implementation using methods, techniques and tools, following the concepts introduced in lectures. Testing and success evaluation of designed examples. | |
Exams |
|
1. G.T. Heineman, W.T. Councill, Component Based Software Engineering: Putting the Pieces Together, Addison-Wesley Professional, 2001. <br> <br> 2. S.J. Mellor, K.Scott, A.Uhl, D.Weise, MDA Distilled: Principles of Model-Driven Architecture, Addison-Wesley, 2004. <br> <br> 3. A. Hemrajani, Agile Java Development with Spring, Hibernate and Eclipse (Developer's Library), 2006. <br> <br> |
|
Aditional notes |
|