A Modeling Technique for Fast Web Application ... - kondor.etf.rs

quicksandwalleyeInternet and Web Development

Oct 31, 2013 (3 years and 10 months ago)

89 views

Socratenon

Educational Web System

D. Milicev, M. Milicevic, N. Nikolic,

M. Trajkovic, V. Milutinovic



University of Belgrade

Faculty of Electrical Engineering

emiliced@etf.bg.ac.yu

Find Your Own

Right Path

through the

Dense Forest of the
Contemporary

Web Technologies!

2
/32

Outline


Socratenon: The features


The forest: Contemporary web
technologies and the complex
requirements


The roadmap: The concepts and the method


The path: The infrastructure and the tools


Conclusions

Socratenon: The Features

Why is Socratenon interesting?


Purpose and main interfaces


Students, courses, and curricula


Virtual classroom


Technical features

4
/32

Socratenon’s Purpose


Education over Internet


Courses in industry and R&D


Adapt curriculum to student’s skills and
preferences


Provide virtual classroom features


Log student’s activities and preferences

5
/32

Socratenon’s Main Interfaces

Student’s

Teacher’s

6
/32

Socratenon’s Main Interfaces

Administrator’s

Provider’s

7
/32

Students, Courses, and Curricula


A course
consists of
learning
objects;
learning
objects:
presentations
and tests

8
/32

Students, Courses, and Curricula


Learning goals
may be defined
for each course;
a learning goal is
achieved by
covering
concepts

9
/32

Students, Courses, and Curricula


A curriculum is
created for each
student


A curriculum
may be changed
according to
student’s
cognitive state
and preferences

10
/32

Socratenon’s Virtual Classroom


Grouping of
students and
other users


Messaging
system


Forum


Logging and
reports

11
/32

Socratenon’s Technical Features


Simple and clear architecture


Light
-
weight implementation


Ideally portable


Extensible


Adaptable to client’s specific needs and
preferences

The Forest: Contemporary Web
Technologies...

How to deal with complex requirements
and tight schedule?


Complex requirements and tight schedule


Three
-
tiered internet architectures


Infrastructural web technologies


Integrational web technologies

13
/32

The Complex Requirements


The story of the complex requirements...


The story of the tight schedule…


What we knew before...

14
/32

Three
-
tier Web Architectures

Intranet

Internet

Database Server

Application Server

Client

SQL Query

Query Result

HTML Request

HTML Page

Web Browser

Web Server &

Application

SQL Server

Web pages

15
/32

The Infrastructural Web
Technologies


HTML/XML


COM/DCOM/ActiveX


CORBA/IDL


Java/JavaBeans/JavaScript


Applets/Servlets


DBMS/ODBC/JDBC

16
/32

The Integrational Web
Technologies


Visual HTML Editors and Site Managers


Web
-
Enabled Hypermedia Authoring Tools


HTML
-
DBPL Integrators


Web Form Editors, Report Writers, and
Database Publishing Wizards


Model
-
Driven Application Generators

The Roadmap: The Concepts and
The Method

What is the right way through the forest?


SW
-
RISC principle and SW
-
Amdahl’s law


Typical man
-
machine interaction cycle


The concepts


The method

18
/32

The SW
-
RISC Principle and the
SW
-
Amdahl’s Law


SW
-
RISC: Find a small set of elements to
combine and cover the complex domain


SW
-
Amdahl’s Law: Find a general pattern
that covers 80% of use
-
cases; support it by
the architecture that is open to be
enhanced by classical methods and tools
to cover the rest.

80%

20%

19
/32

Client

Application Server

Database Server

Typical Man
-
Machine Interaction
Cycle

Starting Form

Post

SQL Update

Find Next Page

SQL Select

Send HTML

Ending Form

Submit

Data to fill the Page?

Query Result

Reformat HTML

with the retrieved data

20
/32

Concepts: Forms and Commands

Application Scenario

Command C

Form A

Form B

Perform SQL Update query for C,

with data from A’s controls as params

Find the next form B

Perform SQL Select query for C

Fill the B’s controls

with the query results

Send the filled form B to the browser

21
/32

The Method

PassivePresentation

LearningObject

Course

*

*

+partsOfCourse

*

+knowledgeContainer

*

course content

MultipleChoiceTest

TestQuestions

1

*

1

*

OO class model

Database scheme

OO use case

decomposition

OO scenario definition

Key abstractions

textual definition

Use cases

textual definition

22
/32

The Method (cont’d)

OO scenario definition

Web application

generation tool

Filled meta

database

Working...

Interpretation

Running application

The Path: The Infrastructure and
the Tools

How to implement all these?


The client side: HTML and web page
designer


The server side: Java and servlets


The database: DBMS and JDBC


The modeling: UML and Rational Rose

24
/32

The Client Side


HTML


Web designer:
Dreamweaver


Any other HTML
page design
tool

25
/32

The Server Side


Java


Java and servlet
environment:
Kawa


Any other servlet
-
supporting Java
programming
environment

26
/32

The Database


Relational
database and
JDBC


DBMS: Microsoft
Access or

SQL Server


Any other JDBC
-
supporting
relational DBMS

27
/32

The Modeling


UML


OO modeling
tool: Rational
Rose


Any other UML
-
supporting OO
modeling tool

Conclusions


What is done


Lessons learned


Further improvements


Acknowledgements

29
/32

Conclusions
-
What is done


Educational Web System that is:


rich in functionality


flexible and extensible


portable


Web
-
app development method that is:


flexible and extensible


rapid


easy to comprehend and apply

30
/32

Lessons Learned


Do not get confused by the technology
market


Choose the smallest set of methods and
tools that can solve your problem


Apply the incremental and iterative,
architecture
-
centric, risk
-
elimination
driven approach

31
/32

Further Improvements


Improvements of the infrastructure and
method


Improvements of the user interface


Improvements of functionality


Development of graphical course design
tools


Meeting the users’ needs...

32
/32

Acknowledgements


The authors wish to thank to

Dejan Marjanovic who considerably
contributed to the product implementation