MSc in Web and Smart Systems / Ступінь Магістра в Галузі Веб і Мобільних Систем

Course Details

Course Information Package

Course Unit TitleSOFTWARE REUSE
Course Unit CodeACSC529
Course Unit Details
Number of ECTS credits allocated7
Learning Outcomes of the course unitBy the end of the course, the students should be able to:
  1. Understand the concepts, principles and methods of software reuse.
  2. Familiarise and understand the different levels of software reuse.
  3. Make proper use of ready-made software components in practice.
  4. Gain theoretical knowledge and analytical skills to develop (web) applications by employing software reuse methods.
  5. Learn how to reuse Java and Web (HTML, JavaScript, and CSS) components; work with the HTML5 specification in particular.
  6. Distribute effectively the results of their work to other developers through the use of software repositories.
Mode of DeliveryFace-to-face
PrerequisitesNONECo-requisitesNONE
Recommended optional program componentsNONE
Course Contents

1.      Introduction to Software Reuse and the differentlevels and types of reuse.

-      Software ReuseKey Concepts.

-      Levels andTypes of Software Reuse.

-      The SoftwareReuse Landscape.

-      Software ReuseApproaches.

-      ReuseBenefits, Issues and Economics.

2.      Software Reuse through Object Oriented Programming(OOP).

-      Revisiting keyconcepts of OOP.

-      Practicalexample of reuse through OOP.

-      Reuse throughthe Java Collections Framework.

3.      Software Reuse through Component Based SoftwareEngineering (CBSE).

-      Introductionto the principles and concepts of CBSE.

-      JavaBeans:Software Reuse at the level of CBSE.

-      Practicalexample of reuse through JavaBeans.

4.      Design Patterns: Reusing Best Practices to SolveCommon Design Problems.

-      DesignPrinciples and Patterns.

-      DesignPatterns: Concepts and Types.

-      Building SuccessfulMobile Applications using Design Patterns.

5.      Software Repositories for reusing Software Assets.

-      Definition,Requirement and Advantages of a Software Repository

-      The SoftwareRepository Model.

-      Main functionsof a Software Repository.

-      Version ControlSystems.

-      Creating andManaging a Software Repository.

6.      Software Reuse via the notion of a Middleware.

-      Motivation,definition and the role of a middleware.

-      Examining asimple middleware architecture: RPC.

-      Challenges inmiddleware design.

-      HTML5 ContextMiddleware (H5CM).

7.      The WS*-stack.

-      Motivation,History and Concepts.

-      The WebService Model.

-      Web ServiceStandards - WS*-stack (WSDL, SOAP, XML, UDDI).

8.      RESTful Services.

-      RESTMotivation, Definition and Principles.

-      RESTVocabulary and Concepts.

-      REST Vs. WS*-stack.

Recommended and/or required reading:
Textbooks
  • “Practical Software Reuse” (Practitioner Series), Michel Ezran, Maurizio Morisio, Colin Tully, Publisher: Springer, 2002.
  • "Head First Design Patterns, Eric Freeman, Elisabeth Robson, Bert Bates, Kathy Sierra, O'Reilly Media, 2004.
  • "Object-Oriented Design and Patterns", Cay Horstmann, Wiley, 2nd edition, 2006.
  • “Mobile Design Pattern Gallery, 2nd Edition, UI Patterns for Smartphone Apps”, Theresa Neil, Publisher: O'Reilly Media, Final Release Date: April 2014, Pages: 408.
  • “Service-Oriented Architecture (SOA): Concepts, Technology, and Design”, T. Erl, Pearson Education, 2005.
References
  • “Why Software Reuse has Failed and How to Make It Work for You”, Douglas C. Schmidt, Available Online
  • “Why Software Reuse has Failed and How to Make It Work for You”, Douglas C. Schmidt, Available Online
  • “Design patterns, the big picture, Part 2: Gang-of-four classics revisited”, Jeff Friesen, JavaWorld | Dec 26, 2012, Available Online
  • “Design patterns, the big picture, Part 3: Beyond software design patterns”, Jeff Friesen, JavaWorld | Nov 21, 2012, Available Online
  • “Mobile UI Design Patterns – A Deeper Look At The Hottest Apps Today”, Dominik Pacholczyk, UXPin, Available Online
Planned learning activities and teaching methods

The methodology used to conduct the course is structured aroundlectures and laboratory exercises, so that students gain theoretical knowledgeas well as practical skills.  The taughtpart of course is delivered to the students with the help of computerpresentations. Lecture notes and presentations are available through the webfor students to use in combination with the textbooks. Furthermore theoreticalprinciples are explained by means of specific examples and solution of specificproblems using practical examples.

Lectures are supplemented with supervised and unsupervised computerlaboratory. Laboratories will include demonstrations of taught concepts andexperimentation with related technologies. Additionally, during laboratorysessions, students apply their gained knowledge and identify the principlestaught in the lecture sessions by means of working on different tasks andproblems. Students are also allocated exercises for homework, assignments and/orgroup project to improve both their individual skills and team work.

Assessment methods and criteria
Project Work40%
Presentation10%
Final Exam50%
Language of instructionEnglish
Work placement(s)NO

 Друк  E-mail