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

Post on 17-Jan-2016

213 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

Transcript

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

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

2

Talk Outline

Introduction

Overview

Experience

Conclusions

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

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

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

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

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

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

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

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

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)

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)

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

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?

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

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.

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.

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

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

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

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

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

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

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.

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

25

top related