graduation project: usable and adaptable business software

Download Graduation Project: Usable and Adaptable Business Software

If you can't read please download the document

Upload: leon-van-der-ree

Post on 16-Apr-2017

2.454 views

Category:

Technology


0 download

TRANSCRIPT

Usable and Adaptable Business Software

Leon van der Ree

08-10-2008

How the customer explained it

What the customer really needed

General Problem

Companies are unable to find software that really support their activities

Cause

Software development is complex

Business Support Software is designed to fit a generic company

Business Support Software is not designed to adapt to a changing company

Question

Is it possible to

simplify the development of

business software,

without being restricted in possibilities,

to be able to create

custom business software that is

usable and adaptable?

How?

User centered design

Establish requirements

Find development tools that:

Reduce development time

Improve maintainability of implementation

Testing with real users

Frequent iterations

Establish Requirements

Literature Survey

Experience at several companies

T.E. Johnston & Co (Holland) b.v.

General Requirements:

Manage entities

Support work process

Manage overviews

T.E. Johnston & Co
Holland b.v.

Supervising surveys of transshipments of edible oils

SurveyAssignment

Clients

Invoice

Results

Results

SurveyReports

RequestETA

ReceiveETA

T.E. Johnston

Assignment

Agent

Surveyor

Laboratory

Attends on ship

OilSample

Assignment

Problem

Unique business

No standard software available

Custom software prohibitively expensive

Task Analysis

Held interviews

Analysed documents:

Assignments

Reports

Overviews

Worked at T.E. Johnston

Observed activities at the office

Observed transshipment in the harbour

Current Support

Currently different disconnected documents are used to support tasks:

Overviews:

on paper

several different electronic versions

Assignments and Reports:

again different electronic versions

This requires many repetitive tasks

Main Entities

Parcel

Parcel

SurveyAssignment

Client

Parcel

Voyage

SurveyAssignment

Client

SurveyAssignment

Client

Workflow Analysis

Resulted in several detailed overviews

ClientContainsassignment?

YesNo

ExistsNewCheck with Viezeboekif it already existsGot newinformation

YesYesupdate informationNew/Update assignment

Agent

Surveyor

Containshints aboutassignment?

search andcall clients

Add to KrantAdd to Viezeboekhardcopy

incoming(Pura) liste-mail incominge-mail incomingfax(history)

phonecallcallcallCreate Physical Folder

UpdateViezeboekPC whencanceledUpdateKrant

Print assignment

Assignmentidle

Is Agent known?No

Yesfrom clientNo

Yes from experience

TerminalCall Terminal

UpdateKrant

Agent found?NoYes

Couriersend BL

Is assignmentcancelledYesno

ClientContainsassignment?

YesNo

YesNew/Update assignment

Agent

Surveyor

Containshints aboutassignment?

search andcall clients

incoming(Pura) liste-mail incominge-mail incomingfax(history)phonecallcallcall

Couriersend BL

Assignments are not always introduced by the client themselves

Requirements

One System

Manage all their data

Usable

Provide easy access to all their data

Support their workflow

Support their communication

Adaptable

Allow for iterative development

Allow support of changing requirements

Development Tools

Improve maintainability of implementation

Support iterative development

Reduce development time

Model-View-Controller
pattern

Exploit Patterns

Define entities with their relations:

In the database

In the development environment

In the user interface

Techniques that support this:

Object Relational Mapping

Administration Generation

Object Relational Mapping

Maps interface of database to
OO-environment

No more need to maintain both database and model-layer

Supports basic CRUD procedures

Generated Model-code is extendible

Improves security

Data Model

City

Name

Country

Name

Abbreviation

Parcel

Subject

Product

Weight

...

Report

Assignment

Subject

Client

...

Voyage

Vessel

ETA

...

One to Many

Many to One

Defining

# countries

country:

id:

name:

type: varchar

size: 150

required: true

abbreviation:

type: varchar(4)

required: false

# cities

city:

id:

country_id:

name:

type: varchar(150)

required: true

country_id: type: integer required: true index: true foreignTable: country foreignReference: id onDelete: RESTRICT onUpdate: CASCADE

Administration Generation

Create user interface based on
the data model and a configuration

Generated code can be customised and extended

Modified

Available generator modified to:

Improve configurability

Allow to define foreign values

Enhance interactivity

Return dynamic JavaScript Objects instead of static HTML

Open Source

Released as an open source plugin

community did:

testing

provided feedback

improved code

extended functionality

motivated

Generated Result

Defining

generator:

class: sfExtjsPropelAdminGenerator

param:

model_class: City

theme: extjs

fields:

country_id/name:

name: Country

list:

display: [=name, country_id/name]

edit:

newtitle: "New city"

title: "Edit city %%name%%"

display: [name, country_id/name]

Demo

How do these views for cities look?

Reduced Complexity

Maintaining code with the generator is easier

This has already proven itself during development

Demo

Lets see how this all supportsT.E. Johnston

Testing

Before implementation:
Mockups

During implementation:
Live demoing alternatives

After implementation:
In field scenario testing

Results

Concept of voyages got approved

Replaced grouped grid by plain table-overview

Moved invoices from parcels to assignments

Opening assignments by double clicking

Conclusions

Simplifying the development process is possible

Adaptability has already proven itself

Usability looks promising, but has to proof itself after real use

Plugin already used at several companies

Conclusions

Simplifying the development process is possible

Adaptability has already proven itself

Usability looks promising, but has to proof itself after real use

Plugin already used at several companies

TEJ has confidence in final application and wants to continue development

Questions?

Muokkaa otsikon tekstimuotoa napsauttamalla

Muokkaa jsennyksen tekstimuotoa napsauttamalla

Toinen jsennystaso

Kolmas jsennystaso

Neljs jsennystaso

Viides jsennystaso

Kuudes jsennystaso

Seitsems jsennystaso

Kahdeksas jsennystaso

Yhdekss jsennystaso

/42

Muokkaa otsikon tekstimuotoa napsauttamalla

Muokkaa jsennyksen tekstimuotoa napsauttamalla

Toinen jsennystaso

Kolmas jsennystaso

Neljs jsennystaso

Viides jsennystaso

Kuudes jsennystaso

Seitsems jsennystaso

Kahdeksas jsennystaso

Yhdekss jsennystaso

/42

GeneratorGenerated Code# filesLOCWC# files LOCWCRatio LOCRatio WCCity Module118274427576589153,17244,04Voyage Module4151310493449826722,8426,67

???Page ??? (???)05-10-2008, 20:16:00Page /