Top Banner
August 30, 2013 13th Workshop Software Engine ering Education and Reverse E ngineering 1 Distributed Network Applications Development -- Educational Experiences Costin Bădică and Sorin Ilie University of Craiova Faculty of Automation, Computers and Electronics Computers and Information Technology Department
25

August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering1 Distributed Network Applications Development -- Educational Experiences.

Jan 17, 2016

Download

Documents

Melina Francis
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering1 Distributed Network Applications Development -- Educational Experiences.

August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering

1

Distributed Network Applications Development -- Educational Experiences

Costin Bădică and Sorin Ilie

University of CraiovaFaculty of Automation, Computers and

ElectronicsComputers and Information Technology

Department

Page 2: August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering1 Distributed Network Applications Development -- Educational Experiences.

August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering

2

Talk Outline

Introduction

Overview

Experience

Conclusions

Page 3: August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering1 Distributed Network Applications Development -- Educational Experiences.

August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering

3

Introduction - Motivation

CS curricula recommendations are continuously developed by ACM and IEEE

CS Body Knowledge (2013) 18 Knowledge Areas KA

Knowledge Units KU Topics Learning Outcomes

Levels of mastery: Familiarity Usage Assessment

Page 4: August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering1 Distributed Network Applications Development -- Educational Experiences.

August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering

4

Introduction - Motivation

Knowledge Areas Updates: KA: Networking and Communication (NC)

It was split, because of growth and divergence, and part of it was included in PBD

KA: Platform-Based Development (PBD) New KA, mainly from NC

KA: Parallel and Distributed Computing (PD) New KA, collected topics previously distributed in

other KAs

Page 5: August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering1 Distributed Network Applications Development -- Educational Experiences.

August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering

5

Introduction - Motivation

Distributed Networks Application Development

New course introduced in 2002

It was planned to address the requirements of introducing students to the principles, methods and technologies of distributed software development

Alignment as much as possible with CS curricula recommendations from ACM and IEEE

Page 6: August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering1 Distributed Network Applications Development -- Educational Experiences.

August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering

6

Overview – Prerequisites

Location in curricula: Main trunk 3rd year, 6th semester

No mandatory prerequisites. All the courses before DNAD are in the main trunk, i.e. they are mandatory by default

Some courses must be passed before DNAD: Operating systems Object-oriented programming

Courses that benefit from DNAD: Electronic Commerce Web Application Design

Page 7: August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering1 Distributed Network Applications Development -- Educational Experiences.

August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering

7

Overview - Goals

To introduce the principles of distributed software

To introduce the basic technologies of distributed software with a focus on core middleware technologies based on Internet

To provide an opportunity to obtain practical experience in applying these techniques for programming small-scale distributed software applications

Page 8: August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering1 Distributed Network Applications Development -- Educational Experiences.

August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering

8

Overview – Topics I

Distributed systems Definition, classification and characteristics

Models of DS Physical, architectural, fundamental

Inter-process communication in DS TCP, UDP, group communication

Core technologies for Web-based DS HTML/CSS, XML, HTTP, Web clients and

servers Servlets and Apache/Tomcat

Page 9: August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering1 Distributed Network Applications Development -- Educational Experiences.

August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering

9

Overview – Topics II

Object-based DS and RMI Design of RMI Programming Java RMI

P2P systems Structured and unstructured

Agent-based DS FIPA and JADE

Web Services Concepts and standards Axis2

Page 10: August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering1 Distributed Network Applications Development -- Educational Experiences.

August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering

10

Overview – Relation to CS BK

KA: Networking and Communication (NC) KU: NC/Networked Applications

KA: Platform-Based Development (PBD) PBD/Introduction PBD/Web Platforms PBD/Mobile Platforms

KA: Parallel and Distributed Computing (PD) PD/Distributed Systems PD/Cloud Computing

Page 11: August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering1 Distributed Network Applications Development -- Educational Experiences.

August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering

11

Overview – Structure

No single textbook, although a good base is the CDK5 book.

2 modules: Course (4 ECTS - European Credit

Transfer and Accumulation System points)

Project (1 ECTS points) Both have a duration of 14

weeks: Course: 2 h lectures/week (28h) + 2

h lab/week (28h - mandatory) Project: 1 h project/week (14h)

Page 12: August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering1 Distributed Network Applications Development -- Educational Experiences.

August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering

12

Overview – Grading

Final exam (60%) Questionnaire (30%)

Knowledge questions Apply skills (30%)

Exercise: design a small-scale distributed software application

Laboratory assignments (40%) 5 assignments (8% each)

Page 13: August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering1 Distributed Network Applications Development -- Educational Experiences.

August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering

13

DNAD 2011/2012

41 enrolled students

1 student withdrew

32 did less than half of the laboratory assignment work

Page 14: August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering1 Distributed Network Applications Development -- Educational Experiences.

August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering

14

Sample Knowledge Questions Enumerate 3 architectural patterns of DS?

Define communication cost of a distributed algorithm?

What is the role of the dispatcher object in RMI?

When is interaction history necessary in request-reply protocol?

Page 15: August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering1 Distributed Network Applications Development -- Educational Experiences.

August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering

15

‘Apply skills’ Exercise

Each Agent is specialized in performing a single type of task Tasks are ‘injected’ by Source agent. Results are returned to

Source agent. Each Agent has an Executor and a Transceiver. The Executor can be free or busy. Transceiver gets a task from left Agent, assigns them to the

Executor if it is free or passes it to the right Agent if Executor is busy. If there is no left Agent it returns error to the right Agent.

Transceiver returns to the left Agent any message received from the right Agent.

Agent types? Interaction protocols? Agent behaviors? DS with 2 agents specialized in t1 and 2 agents specialized in t2.

Source randomly injects 3 messages with task t1 and 2 messages with task t2 at each 1ms.

Source agent

Agent 1 Agent 2 Agent 3

Page 16: August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering1 Distributed Network Applications Development -- Educational Experiences.

August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering

16

Laboratory Assignments

Initiate a ping protocol between distributed software entities using the following technologies: Java Sockets Java RMI Java Servlets Web services JADE agents

Bonus challenges = tasks for extra credit send an e-mail invoke a service that gives location by IP etc.

Page 17: August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering1 Distributed Network Applications Development -- Educational Experiences.

August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering

17

Project Assignment I

Each student had to implement a FIPA protocol of his/her choice using the technology of their choice.

The number of interacting entities had to be varied from 10, 50, 100, 500, until loss of messages or other fatal error occur.

The students must deliver a technical report including their conclusions and experimental data.

Page 18: August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering1 Distributed Network Applications Development -- Educational Experiences.

August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering

18

Project Assignment II

The program must execute and the student must be able to answer a simple question to determine code ownership, in order for the project to be evaluated. The grade is then based on the quality of the report, covering: Structure Readability Experiment description including experimental

data

Page 19: August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering1 Distributed Network Applications Development -- Educational Experiences.

August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering

19

Lab Progress Monitoring Column height increases when student gets

credit for his/her work. Making progress public generates competition

Page 20: August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering1 Distributed Network Applications Development -- Educational Experiences.

August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering

20

Exam Grades

Average grade for exam 8.1 All students passed 11 marks of 10

Page 21: August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering1 Distributed Network Applications Development -- Educational Experiences.

August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering

21

Conclusions – Students Liked

The first labs where they got very detailed instructions

Knowing their grades in real time and monitoring their progress

Receiving personal attention from the lab assistant

The bonus challenges for extra credit in lab assignments

Page 22: August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering1 Distributed Network Applications Development -- Educational Experiences.

August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering

22

Conclusions – Students Hated

The increasingly vague programming instructions in the presentation of lab assignments

That the documentation of the project was the main criteria of evaluation of their work

Writing the documentation of the project When lab assistant answered their questions

with other questions Getting points deducted when presenting their

work late

Page 23: August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering1 Distributed Network Applications Development -- Educational Experiences.

August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering

23

Conclusions – Difficulties

Writing a proper documentation

Performing experiments and collecting experimental data

Implementing anything without very specific instructions

Page 24: August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering1 Distributed Network Applications Development -- Educational Experiences.

August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering

24

Other Conclusions

Maybe the grades are were a bit high, although we think that the course was successful as all the students passed.

The students do not achieve good practical results unless they are guided at each step with detailed instructions.

For motivation we plan to challenge students with 1-2 more practical laboratory assignments.

Students perform very weak in writing the project report. They preferred a lower grade rather than spending more time to improve the project report.

Page 25: August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering1 Distributed Network Applications Development -- Educational Experiences.

August 30, 2013 13th Workshop Software Engineering Education and Reverse Engineering

25