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

Recommended1. 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>
Additional1. 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