milicev_talk - start [kondor.etf.rs]

Download Report

Transcript milicev_talk - start [kondor.etf.rs]

Socratenon
Educational Web System
D. Milicev, M. Milicevic, N. Nikolic,
M. Trajkovic, V. Milutinovic
Find Your Own
Right Path
through the
Dense Forest of the
Contemporary
Web Technologies!
University of Belgrade
Faculty of Electrical Engineering
[email protected]
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
2/32
Socratenon: The Features
Why is Socratenon interesting?
•Purpose and main interfaces
•Students, courses, and curricula
•Virtual classroom
•Technical features
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
4/32
Socratenon’s Main Interfaces
Student’s
Teacher’s
5/32
Socratenon’s Main Interfaces
Administrator’s
Provider’s
6/32
Students, Courses, and Curricula
• A course
consists of
learning
objects;
learning
objects:
presentations
and tests
7/32
Students, Courses, and Curricula
• Learning goals
may be defined
for each course;
a learning goal is
achieved by
covering
concepts
8/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
9/32
Socratenon’s Virtual Classroom
• Grouping of
students and
other users
• Messaging
system
• Forum
• Logging and
reports
10/32
Socratenon’s Technical Features
•
•
•
•
•
Simple and clear architecture
Light-weight implementation
Ideally portable
Extensible
Adaptable to client’s specific needs and
preferences
11/32
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
The Complex Requirements
• The story of the complex requirements...
• The story of the tight schedule…
• What we knew before...
13/32
Three-tier Web Architectures
Client
Web pages
Internet
Web Browser
HTML
Request
HTML
Page
Application Server
Intranet
SQL Query
Query
Result
Web Server &
Application
Database Server
SQL Server
14/32
The Infrastructural Web
Technologies
•
•
•
•
•
•
HTML/XML
COM/DCOM/ActiveX
CORBA/IDL
Java/JavaBeans/JavaScript
Applets/Servlets
DBMS/ODBC/JDBC
15/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
16/32
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
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%
18/32
Typical Man-Machine Interaction
Cycle
Starting Form
Reformat HTML
Data to fill the Page?
with
theNext
retrieved
Find
Page data
Submit
Send
HTML
Post
SQL Update
Select
Query
Result
Internet
Client
Intranet
Application Server
Database Server
Ending Form
19/32
Concepts: Forms and Commands
Application Scenario
Form A
Command C
Perform SQL Update query for C,
with data from A’s controls as params
Find the next form B
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
20/32
The Method
This is a
documentation
of the Course
key
abstraction...
course content
Course
+partsOfCourse LearningObject
+knowledgeContainer
*
*
PassivePresentation
MultipleChoiceTest
1
Key abstractions
textual definition OO class model
*
TestQuestions
Database scheme
<<include>>
This is a
documentation
of the Course
key
abstraction...
CourseManipulation
Modify Course from list
Modify Course
<<include>>
Cancel
Modify/Delete
SelectCourse
entry: SELECT ID, Name FROM Course
Cancel
Create
Select Course
Provider actor
<<include>>
Modify
(from Actors)
ModifyCourse
Delete
entry: SELECT * FROM Course WHERE ID=$ID
exit: UPDATE Course SET Course.description = "$description", Course.IDMetadata = "$IDMetadata"
<<include>>
Update
Delete Course from list
Use cases
textual definition
Delete Course
OO use case
decomposition
CourseUpdated
OO scenario definition
21/32
The Method (cont’d)
CourseManipulation
Cancel
Modify/Delete
SelectCourse
entry: SELECT ID, Name FROM Course
Cancel
Create
Modify
ModifyCourse
Delete
entry: SELECT * FROM Course WHERE ID=$ID
exit: UPDATE Course SET Course.description = "$description", Course.IDMetadata = "$IDMetadata"
Update
CourseUpdated
OO scenario definition Web application
generation tool
Filled meta
database
Working...
Interpretation
Running application
22/32
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
The Client Side
• HTML
• Web designer:
Dreamweaver
• Any other HTML
page design
tool
24/32
The Server Side
• Java
• Java and servlet
environment:
Kawa
• Any other servletsupporting Java
programming
environment
25/32
The Database
• Relational
database and
JDBC
• DBMS: Microsoft
Access or
SQL Server
• Any other JDBCsupporting
relational DBMS
26/32
The Modeling
• UML
• OO modeling
tool: Rational
Rose
• Any other UMLsupporting OO
modeling tool
27/32
Conclusions
•What is done
•Lessons learned
•Further improvements
•Acknowledgements
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
29/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
30/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...
31/32
Acknowledgements
• The authors wish to thank to
Dejan Marjanovic who considerably
contributed to the product implementation
32/32