Notes
Slide Show
Outline
1
Shortening the Software Development Cycle for Information Systems
  • Jonathan D. Melvin
  • Vision Implementers, Inc., jdm@vi-i.com
  • Talk given at Caltech, April 16, 2001
2
Vision
  • Provide a framework so that a system can be created and run simply by specifying:
    • data to be tracked, and
    • work flow for the users working with the data
3
Reality -- the implementation of the vision to date (1/3)
  • Not yet possible to eliminate all programming, but…
  • Programming of the user interface can be greatly simplified by using the web browser
  • A powerful and simple way to specify much of the user interface (the way users interact with the system) is by naming conventions in the data
  • A framework has be created so that minimal information need be specified to describe data and work flow
4
Reality -- the implementation of the vision to date (2/3)
  • First part of framework supports creation of a script to describe the database using descriptive names for types of data elements.  E.g.
        • . . .


        • Create Table "Teacher_",+_
        •  "Last_Name       Name,"+_
        •  "First_Name      Name,"+_
        •  "Middle_Name     Name,"+_
        •  "Street_Address1 Long,"+_
        •  "City_           Long,"+_
        •  "State__lookup_  2char,"+_
        •  "Zip_Code        ID,"+_
        •  . . .
5
… and runs the script to create the database tables:
6
Reality -- the implementation of the vision to date (3/3)
  • The second part of the framework supports creation of a script that concisely describes the work flow,  e.g.


  • DrillDown "Teachers","Teacher","Last_Name","Classes"
  •     ...
  • ELSEIF v.BeginFindForm("Teachers","Teacher","Last_Name,First_Name") THEN
  •   v.SearchField "First name includes:","TeacherFirst",25,"First_Name","CN"
  •   v.SearchField "Last name includes:","TeacherLast",25,"Last_Name","CN"
  •   v.SearchField "Address includes:","TeacherAddress",25,"Street_Address+City_","CN“
  •   v.EndCommandForm "List teachers"
  • ELSEIF v.DoDrillDown("Teachers","%FIRST_NAME% %LAST_NAME%","Teacher",_
  •    TRUE,"Classes") THEN
  •   v.BeginDetailList
  •   v.ListSendAdded "Class","Classes Taught","No classes","Course_","Students"
  •   v.EndDetailList
  • ELSEIF v.EditList("Class","Class","Class") THEN


7
… and defines the views of the data …
  •   ELSEIF v.ViewParameters("View.Teacher","Teacher_",_
  •     "_ID,_ID AS Teacher_ID,Last_Name,First_Name,"+cCampuses+_
  •       ",Street_Address,Home_Phone AS Phone_",_
  •     "",_
  •     v.Where(CampusYearTeacher(),IIF(cGroup="TEACHER","_ID="+_
  •       cParameter,""),FALSE),_
  •     "Last_Name,First_Name",_
  •     "*",_
  •     "","",_
  •     nMaxTxtBoxWidth,nColumns) THEN


  •     v.SetupTabs "135","540","360"
  •     v.AddTab "Name and Address","",1
  •     v.AddTab "Campus 1-2","Campus1__lookup_",1
  •     v.AddTab "Campus 3-4","Campus3__lookup_",1
8
… and runs the script to run the application
9
 
10
Comparison with Typical System Development today
  • Current programming requires detailed layout of each screen
  • A complex application can have thousands of lines of code (500,000 in the application I created prior to these web based applications) in contrast to these very concise scripts
  • Therefore, programming is typically much more time consuming and costly, and users have to wait a long time before trying out parts of a new system and giving feedback to the programmers.


11
What an effective framework provides
  • More rapid system implementation
  • Simpler system maintenance
  • Consistent user interface


12
What an effective framework must implement
  • User interface security and navigation
  • User interface data input and output
  • Basic database structures required for good data integrity
  • Typical system features (but with the ability to program additional system features)
13
User interface security and navigation
  • Login with username and password (security)
  • Membership of each user in a user group to control access rights to tables and columns in tables, and the workflow that is to be available
  • Work flow navigation:
    • Pick a stage in the work flow
    • See a list of work at that stage
    • Pick items on that list, carry out work (which can involve entering new data, changing work status, etc) to move each item to the next stage
14
User interface data input and output

  • Handle text, and numerical, date, and choice input
  • Handle rapid data entry of multiple values for a set of data records (spreadsheet style input)
  • Generate formatted output for reports and forms
  • Optionally: Import and export data from other systems
15
Advantages of using the web browser to facilitate the user interface (1/2)
  • Screen layout is largely carried out by the browser (e.g., you can tell the browser “start table”, “start row”, “start cell”, <contents>, “end cell”, … instead of having to specify the detailed layout of a table)
  • Secure internet communication (SSL) is included "for free"
  • Any kind of client machine can be used (PC, Mac, Sun, …)
16
Advantages of using the web browser to facilitate the user interface (2/2)
  • Code changes can be instantly deployed at a single location for all users
  • Users can work from anywhere; support personnel can fix problems from anywhere
  • The system can communicate with email, fax, cell phones, etc. without special programming
  • The system can incorporate address validation, geographical mapping, and other services available for free on the Internet
17
Basic database structures required for good data integrity - background (1/4)
  • Data in a “database” is organized into “tables” (rows and columns).  Each row is called a “record”.  Each column value in a row is called a “field”.
  • A field value can be
    • A number
    • Text (of limited and of unlimited size)
    • Graphics or other external data
    • A date
    • A pointer to a record in another table ("foreign key")
18
Database background (2/4)
  • A database is “normalized” if information is never stored in two places.  E.g., a normalized student database stores the student name once in a student table, not in each grade record.
  • The data has “referential integrity” if all foreign keys point to valid records.
19
Database background (3/4)
  • "SQL", or “Structured Query Language”, is a syntax for specifying in an almost English manner what is to be done to data.  Examples:
    • SELECT * FROM Student WHERE LEFT(Last_Name,1)=’M’
    • UPDATE Grade SET Grade.Final=’A’ FROM Grade LEFT JOIN STUDENT ON Grade.Student_ID=Student.ID WHERE Student.Major=’Physics’
20
Database background (4/4)
  • “Tracking fields” are extra fields which record who created and who modified the record and when, version number for the record, and/or other such information relating to the use of the database (as opposed to the data in the database)
21
The database framework…
  • … creates normalized databases, enforces referential integrity, and incorporates tracking fields
  • … uses SQL to standardize interaction with the database and to concisely specify data views (and through them control appearance of data on the screen)
22
Steps to implement an information system
  • Based on the last 8 years of work, I have found
  • these to be the common steps:
  • Import existing data into new tables which have proper database features (to be discussed later) - this can require substantial data cleanup
  • Attach a user interface
  • Adjust user interface incrementally to meet current and future needs
23
General advice for implementing large information systems (1/2)
  • Use industry standard software (web interfaces, server-based database systems that implement SQL)
  • Create a framework (such as the one described in this talk)
  • Create systems incrementally with much input from users


24
Advice (2/2)
  • Include the following people on the implementation team:
    • Database experts
    • Algorithm experts
    • User interface navigation experts
    • User interface look and feel experts
  • Programming a system is the easiest task.  Finding out what the user wants programmed is harder.  And cleaning up historical data is even harder.  BE SURE TO ALLOW TIME FOR THE HUMAN INTERACTION PARTS OF THE PROJECT.
25
Examples of Framework Applications
  • Non-web based systems
  • A very large distributed database system which uses the web to synchronize computers
  • The data loader
  • Systems using VisionFW (web framework):
  • An remote environmental monitoring system
  • An incident tracking system
  • An association of people (chamber of commerce)
  • A hospital patient tracking system
  • An academic data system