SlideShare ist ein Scribd-Unternehmen logo
1 von 19
Downloaden Sie, um offline zu lesen
Framework Enabling End-Users
to Maintain Web Applications
Masayuki Nii, Kenji Tei and Fuyuki Ishikawa
ICICWS 2015, March 19, 2015
Presenter: Masayuki Nii
Ph.D. Student,
Graduate School of Information Systems
The University of Electro-Communications
Key Points
Issues in business systems

• Lack of maintenance brings on gradual degradation of systems.

• End-user participation is a possible solution.

Web application framework by declarative descriptions

• We are developing framework “INTER-Mediator.”

• Imperative programming costs a lot.

• Declarative descriptions can cost less.

Activate framework development and investigation 

• Most of major features by declarative descriptions.

• Some parts of maintenance task can be done by end-users.

• Non-developers could learn how to develop in approximately 2 hours.

Research result

• INTER-Mediator-based system can be maintained by end-users.
2
Background and the
Development with the
Framework
“INTER-Mediator”
Image courtesy of njaj at FreeDigitalPhotos.net
Status of Business System Development
Typical Solutions for Web-based Business System

• Need to order from IT venders.

• Built with MVC-style framework, ex. Smarty, CakePHP.

Problems

• Require imperative programming.

- End-users can’t participate in development processes.

- They have to order from IT venders.

• In case of limited budgets

- They can’t order to maintain.

- Degraded system due to lack of maintenance.

- The system must be abandoned.
4Image courtesy of David Castillo Dominici at FreeDigitalPhotos.net
End-User Participation
How can we resolve?

• Involve end-users into development processes.

• But they don’t have skill to programming.

• Moreover they don’t want to study!

How to involve end-users?

• Declarative descriptions, not imperative.

Why declarative?

• Lower design barriers (in the six barriers in learning*).

• Possible to describe without professional-level programming skill.

• Less learning costs. Less learning time.
5* Ko, Myers and Aung: Six Learning Barriers in End-User Programming Systems, VLHCC '04
Image courtesy of Master isolated images at FreeDigitalPhotos.net
programming?
Declarative Web Application Framework
INTER-Mediator

• We developed the framework using
OSS, GitHub, MIT License.

• Supports OSS DB engines, MySQL,
PostgreSQL, SQLite, and also
FileMaker Server.

• HTML5-savvy browser is required.

How to be declarative?

• Prepare the database applied with the
schema.

• Create two files, “Page File” and
“Definition File.”

• The Page File is pure HTML5 page
template.

• The Definition File is a PHP file

- The descriptions are just a key-value
style and it means “declarative.”
6
<?php
require_once('INTER-Mediator.php');
IM_Entry(
array(
array(
'name' => 'postalcode',
'records' => 10,
'paging' => true,),),
null,
array('db-class' => 'PDO'),
false
);
Definition File
<div data-im=“postalcode@f3">
</div>
Show the value of “f3” field in
records from “postalcode” table.
<input type=“text”
data-im=“postalcode@f7”/>
Show the value of “f7” field, and
update if user modify the string in
this text field.
Page File
Development Model We Assumed
Remarks

• IT Professionals will work from the scratch to almost cut-off.

• End-users can participate maintenance phase, and also modification at
the final stage of initial development and testing phases.

• INTER-Mediator has the imperative programming interface to implement
complex requirements.
Job Analysis
System
Design
UX Design
Defining
Schema
Create
Definition File
Requirement
Create
Page File
Development
Testing Maintenance
Development Processes
Same as other
Frameworks.
INTER-Mediator Specific
Processes: Mainly
Declarative Descriptions
Imperative Programming are Required in
other Common Web Frameworks.
7
Questions about End-User Maintenance
Top-level question:

• Can end-users participate any development process especially
maintenance of INTER-Mediator driven business system?

This question divides into: 

Does INTER-Mediator have…?

• Enough usability to allow maintenance by end-users.

• Enough features to develop practical applications.

• Learnability for non-developers.

8
Does INTER-Mediator have
Enough Usability to Allow
Maintenance by End-users?
Image courtesy of digitalart at FreeDigitalPhotos.net
Categorizing Maintenance Tasks
Occasions Examples in Declarative Examples Non-Declarative
1 Page Elements
• Order of elements, Disapper them

• Add a field already in database

• Change the color of characters
• Require to modify db schema

• Special event handling; ex. other than
form elements
2
Request to
Database
• Modify the query criteria

• Modify the sort condition

• Add the button to create and delete

• UI components for search page
• Change parameters dynamically

• Request with sub-query
3
Response to
Single Field
• Change the decimal digits

• Add constant strings before/after the data

• Calculated property
• Unsupported conversion
4 UI Customize
• Button with a special procedure

• Update any elements
5
Database
Response
• Unsupported aggregation by database
6 Modify Schema
• Create a new view

• Create a table or a field
*
Create New
Page
• Create from scratch

• After copying an existing page, apply above 1-6
10
Modification Example
Example demand

• Invoice has been made. Total price with tax is shown on “total.”

• Want to show the total without price.

Add the calculated property “subtotal”

• Define the expression to calculate the value.

• Add the new element to show the “subtotal” field.

• Modify within declarative descriptions.

Other MVC-style frameworks

• Modify any models to define the new property.

• Any controllers/views requires respond the to new property.

• Both require to modify imperative descriptions.
array(
'name' => 'invoice',
'calculation' => array(
array('field' => 'subtotal',
'expression' => ‘Round(total/1.08)’),),),
array(
‘name’ => ‘detail’,
:
Modified Context in Definition File
11
<span data-im=“invoice@subtotal>
</span>
Example of 

“1.Page Elements”Example of 

“3.Response to Single file”
Add Element to Definition File
Does INTER-Mediator Have
Enough Features to Develop
Practical Applications?
Image courtesy of renjith krishnan at FreeDigitalPhotos.net
Feature Set of Web Framework
CRUD + Repeat + Relationship

• Read and Update: Binding setting the “data-im” attribute.

• Create and Delete: Add buttons, generate the pagination control.

Feature set with declarative descriptions

• Covering the 31 item’s function set from the end-user’s view point**,
without just one item.

• Twenty five items of 31 are supported by declarative descriptions.

Distinguishing features

• Repeating elements with multiple records

- In a table, TR is “Repeater” and its parent TBODY is “Enclosure.”

- One record expand into the Repeater, and repeat it for each records.

• Show associated records based on relationship

- Recursively defined Enclosure/Repeater.

- Inside of them retrieve the associated record with using relationship
definitions.
** Rode and Rosson: Programming at Runtime: Requirements and Paradigms for Nonprogrammer Web Application Development, HCC '03
13
Enclosure/Repeater and Relationship
<table><thead>
<tr><th>issueddt</th><th></th>detail</tr></thead>
<tbody> <!—Enclosure-A-->
<tr>  <!—Repeater-A—>
<td data-im=“invoice@issueddt”></td>
<td>
<table>
<thead><th>productid</th><th>qty</th></thead>
<tbody> <!--Enclosure-B—>
<tr> <!—Repeater-B-->
<td data-im=“detail@productid”></td>
<td data-im=“detail@qty”></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
3245 2014-5-22 16:15
2014-5-22 10:05
2014-5-22 13:55
issueddt
2014-5-22 16:153244
3242
3243
invoiceid
390220 243244
invoiceid
3242 12
100233
100655
120443
9
productid
100233
3244
3243 45
3242
qty
5
“invoice” table
“detail” table
relationshipPage File
Database
Summary of Algorithm
“detail” Context
“invoice” Context
PageConstruct
SeekEnclosure
ExpandEnclosure
ExpandRepeater
Scan nodes with pre-order scanning.
Detect an
enclosure
Called just after load of page contents/
Start from root node.
Keep the repeater in a variable.
Detect the context specified in nodes.
Query the database
(If the relationship is defined,
it’s included in conditions.)
If the context is
undetermined, scan for
every repeaters
Repeat for each records
- Store the field values in the record.
- Insert the field values into the copied repeater.
- Append the copy to the enclosure
Scan the inside of the
copied repeater
Retrieved
recordset
14
2014-5-22 16:15
2014-5-22 13:55
2014-5-22 10:05
12
100233
120443
productid qty
5
12
100233
120443
productid qty
5
issueddt
productid
100233 45
qtyproductid
100233 45
qty
detail
390220 24
100655 9
productid qty
390220 24
100655 9
productid qty
Generated Page
Can End-Users Learn to
Develop with INTER-
Mediator?
Image courtesy of Master isolated images at FreeDigitalPhotos.net
Experiment with Test Subjects
What do we need to know?

• Learnability for non-software engineers.

Procedure

• Study and examination sessions with original textbook.

• Judge from the result of the examination whether they could get
knowledge.

• Both sessions were done with web site at their own pace.

• Time spent on the test was measured by the system.

• Subject studied about only using declarative descriptions not using
imperative APIs.

Subjects

• Web designers and HTML coding specialists working in web industry.

• No one works as a “programmer.” Their programming is just auxiliary.

• Not pure end-users, but their skill of system development is similar to
end-users.

• Assume that they have HTML skills, and so we can measure just the
learnability of INTER-Mediator.
16
Result of the Experiment
8 test subjects could acquire the knowledge to develop in 2 hours.

• Results can divide into 2 categories.

• Four subjects finished the examination within 15 minutes. Their scores are quite
low; 0-13%. This means they couldn’t learn.

• Other 8 subjects took over 45 minutes for the examination. Their scores were
42-93%. This means they succeed to learn.

• Within successful subjects, programming experience might contribute to
learning result.

• On the other hand, half of failed subjects did have programming experience.
0%#20%#40%#60%#80%#100%#
S2#
S12#
S7#
S3#
S5#
S1#
S10#
S11#
S9#
S6#
S4#
S8#
Scores Subjects
S2#
S3#
S10#
Programming#Experiences#of#subjects
JavaScript#+#PHP
JavaScript
None
(NoneG>)
0" 15" 30" 45" 60" 75" 90" 105" 120" 135" 150" 165" 180"
S2"
S12"
S7"
S3"
S5"
S1"
S10"
S11"
S9"
S6"
S4"
S8"
The$$Amount$of$Time$(minutes)Subjects
The"Time"for"the"examina9on"(minutes)"
The"Time"for"the"study"(minutes)"
17
Conclusions
Image courtesy of Master isolated images at FreeDigitalPhotos.net
Conclusions
INTER-Mediator; develop with declarative descriptions.

• Can be maintained with declarative descriptions.

• Enough features

- Especially Enclosure/Repeater mechanism is unique.

• Learnability for web designers as proven from the experiment.

Consequently INTER-Mediator does allow to participation
of end-users in maintaining their business systems.
http://inter-mediator.com/
19
Presenter → Masayuki Nii

nii@msyk.net msyknii msyknii
This presentation → http://nii.ac/impr

Weitere ähnliche Inhalte

Was ist angesagt?

Best practices for effective doors implementation-Ashwini Patil
Best practices for effective doors implementation-Ashwini PatilBest practices for effective doors implementation-Ashwini Patil
Best practices for effective doors implementation-Ashwini Patil
Roopa Nadkarni
 
3) web development
3) web development3) web development
3) web development
techbed
 
Multidiscipline Collaboration On A Single Central File
Multidiscipline Collaboration On A Single Central FileMultidiscipline Collaboration On A Single Central File
Multidiscipline Collaboration On A Single Central File
jowett9
 
10232 designing and developing microsoft share point server 2010 applications
10232   designing and developing microsoft share point server 2010 applications 10232   designing and developing microsoft share point server 2010 applications
10232 designing and developing microsoft share point server 2010 applications
bestip
 

Was ist angesagt? (12)

Rameshrao nikam
Rameshrao nikamRameshrao nikam
Rameshrao nikam
 
Arthur Del Prado .Net Portfolio
Arthur Del Prado .Net PortfolioArthur Del Prado .Net Portfolio
Arthur Del Prado .Net Portfolio
 
Best practices for effective doors implementation-Ashwini Patil
Best practices for effective doors implementation-Ashwini PatilBest practices for effective doors implementation-Ashwini Patil
Best practices for effective doors implementation-Ashwini Patil
 
Suresh Resume
Suresh ResumeSuresh Resume
Suresh Resume
 
Software Portfolio - SetFocus
Software Portfolio - SetFocusSoftware Portfolio - SetFocus
Software Portfolio - SetFocus
 
3) web development
3) web development3) web development
3) web development
 
Prashant Patel
Prashant PatelPrashant Patel
Prashant Patel
 
Multidiscipline Collaboration On A Single Central File
Multidiscipline Collaboration On A Single Central FileMultidiscipline Collaboration On A Single Central File
Multidiscipline Collaboration On A Single Central File
 
C#Portfolio
C#PortfolioC#Portfolio
C#Portfolio
 
10232 designing and developing microsoft share point server 2010 applications
10232   designing and developing microsoft share point server 2010 applications 10232   designing and developing microsoft share point server 2010 applications
10232 designing and developing microsoft share point server 2010 applications
 
Codeigniter
CodeigniterCodeigniter
Codeigniter
 
8 requirements engineering1
8 requirements engineering18 requirements engineering1
8 requirements engineering1
 

Ähnlich wie Framework Enabling End-Users to Maintain Web Applications (ICICWS2015)

Kumari Priyanka_4-5 years Informatica experience
Kumari Priyanka_4-5 years Informatica experienceKumari Priyanka_4-5 years Informatica experience
Kumari Priyanka_4-5 years Informatica experience
kumari priyanka
 
Datstage_Developer_with_3.8yrs_exp
Datstage_Developer_with_3.8yrs_expDatstage_Developer_with_3.8yrs_exp
Datstage_Developer_with_3.8yrs_exp
Sanjay MN
 
Appalanaidu_4.4 Years Exp in DotNet Technology
Appalanaidu_4.4 Years Exp in DotNet TechnologyAppalanaidu_4.4 Years Exp in DotNet Technology
Appalanaidu_4.4 Years Exp in DotNet Technology
APPALANAIDU KONDALA
 

Ähnlich wie Framework Enabling End-Users to Maintain Web Applications (ICICWS2015) (20)

VINOD_6yrs
VINOD_6yrsVINOD_6yrs
VINOD_6yrs
 
Manikanta_Chimata
Manikanta_ChimataManikanta_Chimata
Manikanta_Chimata
 
Sai_Resume
Sai_ResumeSai_Resume
Sai_Resume
 
Kumari Priyanka_4-5 years Informatica experience
Kumari Priyanka_4-5 years Informatica experienceKumari Priyanka_4-5 years Informatica experience
Kumari Priyanka_4-5 years Informatica experience
 
Presenting Data – An Alternative to the View Control
Presenting Data – An Alternative to the View ControlPresenting Data – An Alternative to the View Control
Presenting Data – An Alternative to the View Control
 
Datstage_Developer_with_3.8yrs_exp
Datstage_Developer_with_3.8yrs_expDatstage_Developer_with_3.8yrs_exp
Datstage_Developer_with_3.8yrs_exp
 
Introduction to the web engineering Process.pdf
Introduction to the web engineering Process.pdfIntroduction to the web engineering Process.pdf
Introduction to the web engineering Process.pdf
 
Resume - Deepak v.s
Resume -  Deepak v.sResume -  Deepak v.s
Resume - Deepak v.s
 
Why Upgrade to v8.6?
Why Upgrade to v8.6?Why Upgrade to v8.6?
Why Upgrade to v8.6?
 
Soa 1 7.ppsx
Soa 1 7.ppsxSoa 1 7.ppsx
Soa 1 7.ppsx
 
Shaik Niyas Ahamed M Resume
Shaik Niyas Ahamed M ResumeShaik Niyas Ahamed M Resume
Shaik Niyas Ahamed M Resume
 
Ramesh Resume
Ramesh ResumeRamesh Resume
Ramesh Resume
 
Inventory managment system
Inventory managment systemInventory managment system
Inventory managment system
 
Appalanaidu_4.4 Years Exp in DotNet Technology
Appalanaidu_4.4 Years Exp in DotNet TechnologyAppalanaidu_4.4 Years Exp in DotNet Technology
Appalanaidu_4.4 Years Exp in DotNet Technology
 
Audit your existing code in Domino - Collabsphere2022_v5.pdf
Audit your existing code in Domino  - Collabsphere2022_v5.pdfAudit your existing code in Domino  - Collabsphere2022_v5.pdf
Audit your existing code in Domino - Collabsphere2022_v5.pdf
 
OOSE UNIT-1.pdf
OOSE UNIT-1.pdfOOSE UNIT-1.pdf
OOSE UNIT-1.pdf
 
SharePoint Custom Development
SharePoint Custom DevelopmentSharePoint Custom Development
SharePoint Custom Development
 
Resume
ResumeResume
Resume
 
Madhu_Resume
Madhu_ResumeMadhu_Resume
Madhu_Resume
 
Software Architecture and Architectors: useless VS valuable
Software Architecture and Architectors: useless VS valuableSoftware Architecture and Architectors: useless VS valuable
Software Architecture and Architectors: useless VS valuable
 

Mehr von Masayuki Nii

Mehr von Masayuki Nii (20)

トップエスイー勉強会2014第1回-INTER-Mediator
トップエスイー勉強会2014第1回-INTER-Mediatorトップエスイー勉強会2014第1回-INTER-Mediator
トップエスイー勉強会2014第1回-INTER-Mediator
 
Cocoa勉強会#62-新しい通信クラス群NSURLSessionを使ってみる
Cocoa勉強会#62-新しい通信クラス群NSURLSessionを使ってみるCocoa勉強会#62-新しい通信クラス群NSURLSessionを使ってみる
Cocoa勉強会#62-新しい通信クラス群NSURLSessionを使ってみる
 
Cocoa勉強会#34-iPhoneでタブバーを非表示に無理矢理する方法
Cocoa勉強会#34-iPhoneでタブバーを非表示に無理矢理する方法Cocoa勉強会#34-iPhoneでタブバーを非表示に無理矢理する方法
Cocoa勉強会#34-iPhoneでタブバーを非表示に無理矢理する方法
 
Cocoa勉強会#61-メインスレッド外でNSURLConnection
Cocoa勉強会#61-メインスレッド外でNSURLConnectionCocoa勉強会#61-メインスレッド外でNSURLConnection
Cocoa勉強会#61-メインスレッド外でNSURLConnection
 
Cocoa勉強会#23-カスタムシートとModality
Cocoa勉強会#23-カスタムシートとModalityCocoa勉強会#23-カスタムシートとModality
Cocoa勉強会#23-カスタムシートとModality
 
Cocoa勉強会#6-SQLiteをCocoaで使う
Cocoa勉強会#6-SQLiteをCocoaで使うCocoa勉強会#6-SQLiteをCocoaで使う
Cocoa勉強会#6-SQLiteをCocoaで使う
 
Cocoa勉強会#60-Common Cryptoを使った共通鍵の暗号と復号
Cocoa勉強会#60-Common Cryptoを使った共通鍵の暗号と復号Cocoa勉強会#60-Common Cryptoを使った共通鍵の暗号と復号
Cocoa勉強会#60-Common Cryptoを使った共通鍵の暗号と復号
 
Cocoa勉強会#57-Baseによるローカライズまとめ
Cocoa勉強会#57-BaseによるローカライズまとめCocoa勉強会#57-Baseによるローカライズまとめ
Cocoa勉強会#57-Baseによるローカライズまとめ
 
Cocoa勉強会#56-小ネタ集あなたの常識はすでに通用しない
Cocoa勉強会#56-小ネタ集あなたの常識はすでに通用しないCocoa勉強会#56-小ネタ集あなたの常識はすでに通用しない
Cocoa勉強会#56-小ネタ集あなたの常識はすでに通用しない
 
Cocoa勉強会#45-AWS SimpleDBを使ってみる
Cocoa勉強会#45-AWS SimpleDBを使ってみるCocoa勉強会#45-AWS SimpleDBを使ってみる
Cocoa勉強会#45-AWS SimpleDBを使ってみる
 
Cocoa勉強会#36-iPhone OS 3.0で変更されたテーブルビュー
Cocoa勉強会#36-iPhone OS 3.0で変更されたテーブルビューCocoa勉強会#36-iPhone OS 3.0で変更されたテーブルビュー
Cocoa勉強会#36-iPhone OS 3.0で変更されたテーブルビュー
 
Cocoa勉強会#33-意外に楽に使えるlibcurl
Cocoa勉強会#33-意外に楽に使えるlibcurlCocoa勉強会#33-意外に楽に使えるlibcurl
Cocoa勉強会#33-意外に楽に使えるlibcurl
 
Cocoa勉強会#28-OpenSSLで暗号化したファイルを復号する
Cocoa勉強会#28-OpenSSLで暗号化したファイルを復号するCocoa勉強会#28-OpenSSLで暗号化したファイルを復号する
Cocoa勉強会#28-OpenSSLで暗号化したファイルを復号する
 
Cocoa勉強会#27-QuickLookプラグインの作り方
Cocoa勉強会#27-QuickLookプラグインの作り方Cocoa勉強会#27-QuickLookプラグインの作り方
Cocoa勉強会#27-QuickLookプラグインの作り方
 
Cocoa勉強会23-識別情報の変換〜文字エンコードとデータタイプ
Cocoa勉強会23-識別情報の変換〜文字エンコードとデータタイプCocoa勉強会23-識別情報の変換〜文字エンコードとデータタイプ
Cocoa勉強会23-識別情報の変換〜文字エンコードとデータタイプ
 
Cocoa勉強会#37-シェイクイベントの実装
Cocoa勉強会#37-シェイクイベントの実装Cocoa勉強会#37-シェイクイベントの実装
Cocoa勉強会#37-シェイクイベントの実装
 
Cocoa勉強会#32-表形式のデータに順序を記録する方法
Cocoa勉強会#32-表形式のデータに順序を記録する方法Cocoa勉強会#32-表形式のデータに順序を記録する方法
Cocoa勉強会#32-表形式のデータに順序を記録する方法
 
Cocoa勉強会#35-iPhoneでのコピペとカスタムUI
Cocoa勉強会#35-iPhoneでのコピペとカスタムUICocoa勉強会#35-iPhoneでのコピペとカスタムUI
Cocoa勉強会#35-iPhoneでのコピペとカスタムUI
 
Cocoa勉強会#47-NSURLConnectionのデリゲートメソッドと認証
Cocoa勉強会#47-NSURLConnectionのデリゲートメソッドと認証Cocoa勉強会#47-NSURLConnectionのデリゲートメソッドと認証
Cocoa勉強会#47-NSURLConnectionのデリゲートメソッドと認証
 
Cocoa勉強会#38-UITableViewテーブル内のナビゲーション
Cocoa勉強会#38-UITableViewテーブル内のナビゲーションCocoa勉強会#38-UITableViewテーブル内のナビゲーション
Cocoa勉強会#38-UITableViewテーブル内のナビゲーション
 

Kürzlich hochgeladen

Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Sheetaleventcompany
 
Rohini Sector 6 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 6 Call Girls Delhi 9999965857 @Sabina Saikh No AdvanceRohini Sector 6 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 6 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Call Girls In Delhi Whatsup 9873940964 Enjoy Unlimited Pleasure
 
CALL ON ➥8923113531 🔝Call Girls Lucknow Lucknow best sexual service Online
CALL ON ➥8923113531 🔝Call Girls Lucknow Lucknow best sexual service OnlineCALL ON ➥8923113531 🔝Call Girls Lucknow Lucknow best sexual service Online
CALL ON ➥8923113531 🔝Call Girls Lucknow Lucknow best sexual service Online
anilsa9823
 
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
Diya Sharma
 

Kürzlich hochgeladen (20)

@9999965857 🫦 Sexy Desi Call Girls Laxmi Nagar 💓 High Profile Escorts Delhi 🫶
@9999965857 🫦 Sexy Desi Call Girls Laxmi Nagar 💓 High Profile Escorts Delhi 🫶@9999965857 🫦 Sexy Desi Call Girls Laxmi Nagar 💓 High Profile Escorts Delhi 🫶
@9999965857 🫦 Sexy Desi Call Girls Laxmi Nagar 💓 High Profile Escorts Delhi 🫶
 
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
 
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night StandHot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
 
Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.
 
Moving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providersMoving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providers
 
Rohini Sector 6 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 6 Call Girls Delhi 9999965857 @Sabina Saikh No AdvanceRohini Sector 6 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 6 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
 
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...
 
✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663
✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663
✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663
 
Russian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl ServiceRussian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl Service
 
CALL ON ➥8923113531 🔝Call Girls Lucknow Lucknow best sexual service Online
CALL ON ➥8923113531 🔝Call Girls Lucknow Lucknow best sexual service OnlineCALL ON ➥8923113531 🔝Call Girls Lucknow Lucknow best sexual service Online
CALL ON ➥8923113531 🔝Call Girls Lucknow Lucknow best sexual service Online
 
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
 
Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Sarai Rohilla Escort Service Delhi N.C.R.
 
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779Best VIP Call Girls Noida Sector 75 Call Me: 8448380779
Best VIP Call Girls Noida Sector 75 Call Me: 8448380779
 
Hire↠Young Call Girls in Tilak nagar (Delhi) ☎️ 9205541914 ☎️ Independent Esc...
Hire↠Young Call Girls in Tilak nagar (Delhi) ☎️ 9205541914 ☎️ Independent Esc...Hire↠Young Call Girls in Tilak nagar (Delhi) ☎️ 9205541914 ☎️ Independent Esc...
Hire↠Young Call Girls in Tilak nagar (Delhi) ☎️ 9205541914 ☎️ Independent Esc...
 
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service AvailableCall Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
 
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call GirlVIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girl
 
VVVIP Call Girls In Connaught Place ➡️ Delhi ➡️ 9999965857 🚀 No Advance 24HRS...
VVVIP Call Girls In Connaught Place ➡️ Delhi ➡️ 9999965857 🚀 No Advance 24HRS...VVVIP Call Girls In Connaught Place ➡️ Delhi ➡️ 9999965857 🚀 No Advance 24HRS...
VVVIP Call Girls In Connaught Place ➡️ Delhi ➡️ 9999965857 🚀 No Advance 24HRS...
 
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
𓀤Call On 7877925207 𓀤 Ahmedguda Call Girls Hot Model With Sexy Bhabi Ready Fo...
 
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
 
Nanded City ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready ...
Nanded City ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready ...Nanded City ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready ...
Nanded City ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready ...
 

Framework Enabling End-Users to Maintain Web Applications (ICICWS2015)

  • 1. Framework Enabling End-Users to Maintain Web Applications Masayuki Nii, Kenji Tei and Fuyuki Ishikawa ICICWS 2015, March 19, 2015 Presenter: Masayuki Nii Ph.D. Student, Graduate School of Information Systems The University of Electro-Communications
  • 2. Key Points Issues in business systems • Lack of maintenance brings on gradual degradation of systems. • End-user participation is a possible solution. Web application framework by declarative descriptions • We are developing framework “INTER-Mediator.” • Imperative programming costs a lot. • Declarative descriptions can cost less. Activate framework development and investigation • Most of major features by declarative descriptions. • Some parts of maintenance task can be done by end-users. • Non-developers could learn how to develop in approximately 2 hours. Research result • INTER-Mediator-based system can be maintained by end-users. 2
  • 3. Background and the Development with the Framework “INTER-Mediator” Image courtesy of njaj at FreeDigitalPhotos.net
  • 4. Status of Business System Development Typical Solutions for Web-based Business System • Need to order from IT venders. • Built with MVC-style framework, ex. Smarty, CakePHP. Problems • Require imperative programming. - End-users can’t participate in development processes. - They have to order from IT venders. • In case of limited budgets - They can’t order to maintain. - Degraded system due to lack of maintenance. - The system must be abandoned. 4Image courtesy of David Castillo Dominici at FreeDigitalPhotos.net
  • 5. End-User Participation How can we resolve? • Involve end-users into development processes. • But they don’t have skill to programming. • Moreover they don’t want to study! How to involve end-users? • Declarative descriptions, not imperative. Why declarative? • Lower design barriers (in the six barriers in learning*). • Possible to describe without professional-level programming skill. • Less learning costs. Less learning time. 5* Ko, Myers and Aung: Six Learning Barriers in End-User Programming Systems, VLHCC '04 Image courtesy of Master isolated images at FreeDigitalPhotos.net programming?
  • 6. Declarative Web Application Framework INTER-Mediator • We developed the framework using OSS, GitHub, MIT License. • Supports OSS DB engines, MySQL, PostgreSQL, SQLite, and also FileMaker Server. • HTML5-savvy browser is required. How to be declarative? • Prepare the database applied with the schema. • Create two files, “Page File” and “Definition File.” • The Page File is pure HTML5 page template. • The Definition File is a PHP file - The descriptions are just a key-value style and it means “declarative.” 6 <?php require_once('INTER-Mediator.php'); IM_Entry( array( array( 'name' => 'postalcode', 'records' => 10, 'paging' => true,),), null, array('db-class' => 'PDO'), false ); Definition File <div data-im=“postalcode@f3"> </div> Show the value of “f3” field in records from “postalcode” table. <input type=“text” data-im=“postalcode@f7”/> Show the value of “f7” field, and update if user modify the string in this text field. Page File
  • 7. Development Model We Assumed Remarks • IT Professionals will work from the scratch to almost cut-off. • End-users can participate maintenance phase, and also modification at the final stage of initial development and testing phases. • INTER-Mediator has the imperative programming interface to implement complex requirements. Job Analysis System Design UX Design Defining Schema Create Definition File Requirement Create Page File Development Testing Maintenance Development Processes Same as other Frameworks. INTER-Mediator Specific Processes: Mainly Declarative Descriptions Imperative Programming are Required in other Common Web Frameworks. 7
  • 8. Questions about End-User Maintenance Top-level question: • Can end-users participate any development process especially maintenance of INTER-Mediator driven business system? This question divides into: 
 Does INTER-Mediator have…? • Enough usability to allow maintenance by end-users. • Enough features to develop practical applications. • Learnability for non-developers. 8
  • 9. Does INTER-Mediator have Enough Usability to Allow Maintenance by End-users? Image courtesy of digitalart at FreeDigitalPhotos.net
  • 10. Categorizing Maintenance Tasks Occasions Examples in Declarative Examples Non-Declarative 1 Page Elements • Order of elements, Disapper them • Add a field already in database • Change the color of characters • Require to modify db schema • Special event handling; ex. other than form elements 2 Request to Database • Modify the query criteria • Modify the sort condition • Add the button to create and delete • UI components for search page • Change parameters dynamically • Request with sub-query 3 Response to Single Field • Change the decimal digits • Add constant strings before/after the data • Calculated property • Unsupported conversion 4 UI Customize • Button with a special procedure • Update any elements 5 Database Response • Unsupported aggregation by database 6 Modify Schema • Create a new view • Create a table or a field * Create New Page • Create from scratch • After copying an existing page, apply above 1-6 10
  • 11. Modification Example Example demand • Invoice has been made. Total price with tax is shown on “total.” • Want to show the total without price. Add the calculated property “subtotal” • Define the expression to calculate the value. • Add the new element to show the “subtotal” field. • Modify within declarative descriptions. Other MVC-style frameworks • Modify any models to define the new property. • Any controllers/views requires respond the to new property. • Both require to modify imperative descriptions. array( 'name' => 'invoice', 'calculation' => array( array('field' => 'subtotal', 'expression' => ‘Round(total/1.08)’),),), array( ‘name’ => ‘detail’, : Modified Context in Definition File 11 <span data-im=“invoice@subtotal> </span> Example of “1.Page Elements”Example of “3.Response to Single file” Add Element to Definition File
  • 12. Does INTER-Mediator Have Enough Features to Develop Practical Applications? Image courtesy of renjith krishnan at FreeDigitalPhotos.net
  • 13. Feature Set of Web Framework CRUD + Repeat + Relationship • Read and Update: Binding setting the “data-im” attribute. • Create and Delete: Add buttons, generate the pagination control. Feature set with declarative descriptions • Covering the 31 item’s function set from the end-user’s view point**, without just one item. • Twenty five items of 31 are supported by declarative descriptions. Distinguishing features • Repeating elements with multiple records - In a table, TR is “Repeater” and its parent TBODY is “Enclosure.” - One record expand into the Repeater, and repeat it for each records. • Show associated records based on relationship - Recursively defined Enclosure/Repeater. - Inside of them retrieve the associated record with using relationship definitions. ** Rode and Rosson: Programming at Runtime: Requirements and Paradigms for Nonprogrammer Web Application Development, HCC '03 13
  • 14. Enclosure/Repeater and Relationship <table><thead> <tr><th>issueddt</th><th></th>detail</tr></thead> <tbody> <!—Enclosure-A--> <tr>  <!—Repeater-A—> <td data-im=“invoice@issueddt”></td> <td> <table> <thead><th>productid</th><th>qty</th></thead> <tbody> <!--Enclosure-B—> <tr> <!—Repeater-B--> <td data-im=“detail@productid”></td> <td data-im=“detail@qty”></td> </tr> </tbody> </table> </td> </tr> </tbody> </table> 3245 2014-5-22 16:15 2014-5-22 10:05 2014-5-22 13:55 issueddt 2014-5-22 16:153244 3242 3243 invoiceid 390220 243244 invoiceid 3242 12 100233 100655 120443 9 productid 100233 3244 3243 45 3242 qty 5 “invoice” table “detail” table relationshipPage File Database Summary of Algorithm “detail” Context “invoice” Context PageConstruct SeekEnclosure ExpandEnclosure ExpandRepeater Scan nodes with pre-order scanning. Detect an enclosure Called just after load of page contents/ Start from root node. Keep the repeater in a variable. Detect the context specified in nodes. Query the database (If the relationship is defined, it’s included in conditions.) If the context is undetermined, scan for every repeaters Repeat for each records - Store the field values in the record. - Insert the field values into the copied repeater. - Append the copy to the enclosure Scan the inside of the copied repeater Retrieved recordset 14 2014-5-22 16:15 2014-5-22 13:55 2014-5-22 10:05 12 100233 120443 productid qty 5 12 100233 120443 productid qty 5 issueddt productid 100233 45 qtyproductid 100233 45 qty detail 390220 24 100655 9 productid qty 390220 24 100655 9 productid qty Generated Page
  • 15. Can End-Users Learn to Develop with INTER- Mediator? Image courtesy of Master isolated images at FreeDigitalPhotos.net
  • 16. Experiment with Test Subjects What do we need to know? • Learnability for non-software engineers. Procedure • Study and examination sessions with original textbook. • Judge from the result of the examination whether they could get knowledge. • Both sessions were done with web site at their own pace. • Time spent on the test was measured by the system. • Subject studied about only using declarative descriptions not using imperative APIs. Subjects • Web designers and HTML coding specialists working in web industry. • No one works as a “programmer.” Their programming is just auxiliary. • Not pure end-users, but their skill of system development is similar to end-users. • Assume that they have HTML skills, and so we can measure just the learnability of INTER-Mediator. 16
  • 17. Result of the Experiment 8 test subjects could acquire the knowledge to develop in 2 hours. • Results can divide into 2 categories. • Four subjects finished the examination within 15 minutes. Their scores are quite low; 0-13%. This means they couldn’t learn. • Other 8 subjects took over 45 minutes for the examination. Their scores were 42-93%. This means they succeed to learn. • Within successful subjects, programming experience might contribute to learning result. • On the other hand, half of failed subjects did have programming experience. 0%#20%#40%#60%#80%#100%# S2# S12# S7# S3# S5# S1# S10# S11# S9# S6# S4# S8# Scores Subjects S2# S3# S10# Programming#Experiences#of#subjects JavaScript#+#PHP JavaScript None (NoneG>) 0" 15" 30" 45" 60" 75" 90" 105" 120" 135" 150" 165" 180" S2" S12" S7" S3" S5" S1" S10" S11" S9" S6" S4" S8" The$$Amount$of$Time$(minutes)Subjects The"Time"for"the"examina9on"(minutes)" The"Time"for"the"study"(minutes)" 17
  • 18. Conclusions Image courtesy of Master isolated images at FreeDigitalPhotos.net
  • 19. Conclusions INTER-Mediator; develop with declarative descriptions. • Can be maintained with declarative descriptions. • Enough features - Especially Enclosure/Repeater mechanism is unique. • Learnability for web designers as proven from the experiment. Consequently INTER-Mediator does allow to participation of end-users in maintaining their business systems. http://inter-mediator.com/ 19 Presenter → Masayuki Nii nii@msyk.net msyknii msyknii This presentation → http://nii.ac/impr