Approaches to modelling poverty dynamics Stephen P. Jenkins (ISER, University of Essex)
Evolution or Intelligent Design? an objective view of software development Stephen Jenkins.
-
Upload
cory-randall-cook -
Category
Documents
-
view
216 -
download
0
Transcript of Evolution or Intelligent Design? an objective view of software development Stephen Jenkins.
![Page 1: Evolution or Intelligent Design? an objective view of software development Stephen Jenkins.](https://reader036.fdocuments.us/reader036/viewer/2022062516/56649d185503460f949eddaf/html5/thumbnails/1.jpg)
Evolution or Intelligent Design?
an objective view of software development
Stephen Jenkins
![Page 2: Evolution or Intelligent Design? an objective view of software development Stephen Jenkins.](https://reader036.fdocuments.us/reader036/viewer/2022062516/56649d185503460f949eddaf/html5/thumbnails/2.jpg)
In the beginning …
Snap prototyped in 1980 First commercial version in 1981 MS-Basic under CP/M
Rewritten 1986/7 in C under MS-DOSFirst Windows version 1992/3
Now: C/C++ Utilities in VB, online scripting in Python
![Page 3: Evolution or Intelligent Design? an objective view of software development Stephen Jenkins.](https://reader036.fdocuments.us/reader036/viewer/2022062516/56649d185503460f949eddaf/html5/thumbnails/3.jpg)
Snap today … multi-mode, multi-language questionnaires paper, scanning, web, pda, tablet, kiosk tables, charts, weights, filters, scores descriptive stats, factor & cluster analysis online management & real-time analysis
> 20,000 active users > 500,000 web respondents/month active forum with ~600 registered
![Page 4: Evolution or Intelligent Design? an objective view of software development Stephen Jenkins.](https://reader036.fdocuments.us/reader036/viewer/2022062516/56649d185503460f949eddaf/html5/thumbnails/4.jpg)
Snap users …
Snap user profile:- MR function in commercial organisation- Consultation in government / education- Smaller research agencies
Some full-time, many stop/start
Snap is a tool to get the job done
![Page 5: Evolution or Intelligent Design? an objective view of software development Stephen Jenkins.](https://reader036.fdocuments.us/reader036/viewer/2022062516/56649d185503460f949eddaf/html5/thumbnails/5.jpg)
Forces at work …
Users and Prospects
Changing Domain Requirements
Business Constraints
Systems Infrastructure
![Page 6: Evolution or Intelligent Design? an objective view of software development Stephen Jenkins.](https://reader036.fdocuments.us/reader036/viewer/2022062516/56649d185503460f949eddaf/html5/thumbnails/6.jpg)
Forces at work …
Users and Prospects
Changing Domain Requirements
Business Constraints
Systems Infrastructure
![Page 7: Evolution or Intelligent Design? an objective view of software development Stephen Jenkins.](https://reader036.fdocuments.us/reader036/viewer/2022062516/56649d185503460f949eddaf/html5/thumbnails/7.jpg)
Users and Prospects …
Not “programmers”
Snap treated more like a Word Processor than a Database system
Snap used as a guide and assistant
Sales demos are typically to new users
![Page 8: Evolution or Intelligent Design? an objective view of software development Stephen Jenkins.](https://reader036.fdocuments.us/reader036/viewer/2022062516/56649d185503460f949eddaf/html5/thumbnails/8.jpg)
Forces at work …
Users and Prospects
Changing Domain Requirements
Business Constraints
Systems Infrastructure
Changes
![Page 9: Evolution or Intelligent Design? an objective view of software development Stephen Jenkins.](https://reader036.fdocuments.us/reader036/viewer/2022062516/56649d185503460f949eddaf/html5/thumbnails/9.jpg)
Changing Domain Requirements …
Multi-mode questionnaires- more respondent self-completion
More re-use of existing data- database links- other survey systems (Triple-s)
More coarse fragmentation- more “standardisation”- but in disparate areas
![Page 10: Evolution or Intelligent Design? an objective view of software development Stephen Jenkins.](https://reader036.fdocuments.us/reader036/viewer/2022062516/56649d185503460f949eddaf/html5/thumbnails/10.jpg)
Forces at work …
Users and Prospects
Changing Domain Requirements
Business Constraints
Systems Infrastructure
Changes
![Page 11: Evolution or Intelligent Design? an objective view of software development Stephen Jenkins.](https://reader036.fdocuments.us/reader036/viewer/2022062516/56649d185503460f949eddaf/html5/thumbnails/11.jpg)
Systems Infrastructure …
Systems Configuration- Stand-alone desktop- LAN / WAN -connected desktop- Browser model
Memory / media etc.48k - 2Gb RAM (x42,000)80k - 100Gb disk (x1,250,000)
![Page 12: Evolution or Intelligent Design? an objective view of software development Stephen Jenkins.](https://reader036.fdocuments.us/reader036/viewer/2022062516/56649d185503460f949eddaf/html5/thumbnails/12.jpg)
Systems Infrastructure …
Language choice- Snap in C/C++, VB, Python- ?PL-1? / ?Pascal? / ?Ada?- very expensive to rewrite later
Avoid big black-box components- better control of update schedules- better control of licensing models
![Page 13: Evolution or Intelligent Design? an objective view of software development Stephen Jenkins.](https://reader036.fdocuments.us/reader036/viewer/2022062516/56649d185503460f949eddaf/html5/thumbnails/13.jpg)
Forces at work …
Users and Prospects
Changing Domain Requirements
Business Constraints
Systems Infrastructure
Changes
![Page 14: Evolution or Intelligent Design? an objective view of software development Stephen Jenkins.](https://reader036.fdocuments.us/reader036/viewer/2022062516/56649d185503460f949eddaf/html5/thumbnails/14.jpg)
Business Constraints …
Commercial model- Standard package / optional modules- Desktop / server based- Perpetual licence- Free support & updates for 1 year- Optional annual support & updates
Updates every 12-18 months
![Page 15: Evolution or Intelligent Design? an objective view of software development Stephen Jenkins.](https://reader036.fdocuments.us/reader036/viewer/2022062516/56649d185503460f949eddaf/html5/thumbnails/15.jpg)
Developers …
“Ownership” of specific areas- Agreed macro-design- Do their own micro-designs
Systems / language expertise- Language and/or system focus
Dabbled in eXtreme Programming- pair-programming
![Page 16: Evolution or Intelligent Design? an objective view of software development Stephen Jenkins.](https://reader036.fdocuments.us/reader036/viewer/2022062516/56649d185503460f949eddaf/html5/thumbnails/16.jpg)
Architectural Design
Users and Prospects
Domain Requirements
Business Constraints
Systems Infrastructure
![Page 17: Evolution or Intelligent Design? an objective view of software development Stephen Jenkins.](https://reader036.fdocuments.us/reader036/viewer/2022062516/56649d185503460f949eddaf/html5/thumbnails/17.jpg)
Architecture …
Single C/C++ program- optional modules turned on- fewer option incompatibility issues- helps consistent, holistic view
No “special versions” etc.
Build VB apps to get features to market quickly (“SurveyPlus”)
![Page 18: Evolution or Intelligent Design? an objective view of software development Stephen Jenkins.](https://reader036.fdocuments.us/reader036/viewer/2022062516/56649d185503460f949eddaf/html5/thumbnails/18.jpg)
Architecture …
Object-oriented- Questions, Styles, Variables, Tables …- No overall navigable DOM- No user-accessible API
Files / persistence- Metadata file (object streams)- Raw data file (fixed-length records)- Processed data file (response streams)
![Page 19: Evolution or Intelligent Design? an objective view of software development Stephen Jenkins.](https://reader036.fdocuments.us/reader036/viewer/2022062516/56649d185503460f949eddaf/html5/thumbnails/19.jpg)
Abstract for re-use …
Filter expressions- tables, browse data, derive categories routing preconditions
Text substitution- answers from previous question(s)- headers, footers and report titles- dynamic multi-language
![Page 20: Evolution or Intelligent Design? an objective view of software development Stephen Jenkins.](https://reader036.fdocuments.us/reader036/viewer/2022062516/56649d185503460f949eddaf/html5/thumbnails/20.jpg)
Ongoing Development …
Domain-based extensibility
Patterns ...
![Page 21: Evolution or Intelligent Design? an objective view of software development Stephen Jenkins.](https://reader036.fdocuments.us/reader036/viewer/2022062516/56649d185503460f949eddaf/html5/thumbnails/21.jpg)
Patterns … as data cleaner
variable
raw data
processed output
syntax & value checks
Q1. How much did you spend?
4.56
4.56
![Page 22: Evolution or Intelligent Design? an objective view of software development Stephen Jenkins.](https://reader036.fdocuments.us/reader036/viewer/2022062516/56649d185503460f949eddaf/html5/thumbnails/22.jpg)
Patterns … as data cleaner
variable
raw data
processed output
syntax & value checks
Q1. How much did you spend?
£4.56
ERROR
![Page 23: Evolution or Intelligent Design? an objective view of software development Stephen Jenkins.](https://reader036.fdocuments.us/reader036/viewer/2022062516/56649d185503460f949eddaf/html5/thumbnails/23.jpg)
Patterns … as data cleaner
variable
raw data
processed output
pattern
cleaned input
Q1. How much did you spend?
£4.56
4.56
4.56
syntactictransforms
syntax & value checks
![Page 24: Evolution or Intelligent Design? an objective view of software development Stephen Jenkins.](https://reader036.fdocuments.us/reader036/viewer/2022062516/56649d185503460f949eddaf/html5/thumbnails/24.jpg)
Patterns … as data cleaner
variable
raw data
processed output
pattern
cleaned input
Q2. How many children do you have?
three
3
3
syntactictransforms
syntax & value checks
![Page 25: Evolution or Intelligent Design? an objective view of software development Stephen Jenkins.](https://reader036.fdocuments.us/reader036/viewer/2022062516/56649d185503460f949eddaf/html5/thumbnails/25.jpg)
Patterns … as sub-field prompt
variable
raw data
processed output
patternmatched input
Q3. When did you arrive?
2006
25/01/2006
daymonthyear
Q3
0125
Q3
20060125 / /
![Page 26: Evolution or Intelligent Design? an objective view of software development Stephen Jenkins.](https://reader036.fdocuments.us/reader036/viewer/2022062516/56649d185503460f949eddaf/html5/thumbnails/26.jpg)
Patterns … as sub-field selector
variable
raw data
processed output
patternmatched input
Q3. When did you arrive?
2006
daymonthyear
Q3
0125
20060125 / /
01Q3 month
![Page 27: Evolution or Intelligent Design? an objective view of software development Stephen Jenkins.](https://reader036.fdocuments.us/reader036/viewer/2022062516/56649d185503460f949eddaf/html5/thumbnails/27.jpg)
Ongoing Development …
Domain-based extensibility
Patterns ...
Prototype-based object model ...
![Page 28: Evolution or Intelligent Design? an objective view of software development Stephen Jenkins.](https://reader036.fdocuments.us/reader036/viewer/2022062516/56649d185503460f949eddaf/html5/thumbnails/28.jpg)
Class-based Object Model
class
instance
declare & assignproperties& methods
assign properties
axis Rows;axis Cols;
num Accumulate(cell){ cell = cell + 1; return cell}
Rows = Q2;Cols = Q10;...
![Page 29: Evolution or Intelligent Design? an objective view of software development Stephen Jenkins.](https://reader036.fdocuments.us/reader036/viewer/2022062516/56649d185503460f949eddaf/html5/thumbnails/29.jpg)
User Programmer
Class-based Object Model
class
instance
declare & assignproperties &
methods
assign properties
axis Rows;axis Cols;
num Accumulate(cell){ cell = cell + 1; return cell}
Rows = Q2;Cols = Q10;...
![Page 30: Evolution or Intelligent Design? an objective view of software development Stephen Jenkins.](https://reader036.fdocuments.us/reader036/viewer/2022062516/56649d185503460f949eddaf/html5/thumbnails/30.jpg)
User Programmer
Class-based Object Model
class
instance
declare & assignproperties &
methods
assign properties
axis Rows;axis Cols;
num Accumulate(cell){ cell = cell + 1; return cell}
Rows = Q2;Cols = Q10;...
Build Table
Q2
Q10
Rows
Cols
Ok
Cancel
![Page 31: Evolution or Intelligent Design? an objective view of software development Stephen Jenkins.](https://reader036.fdocuments.us/reader036/viewer/2022062516/56649d185503460f949eddaf/html5/thumbnails/31.jpg)
User Programmer
Class-based Object Model
class
instance
declare & assignproperties &
methods
assign properties
axis Rows;axis Cols;
num Accumulate(cell){ cell = cell + 1; return cell}
Build Table
Q2
Q10
Rows
Cols
Ok
Cancel
![Page 32: Evolution or Intelligent Design? an objective view of software development Stephen Jenkins.](https://reader036.fdocuments.us/reader036/viewer/2022062516/56649d185503460f949eddaf/html5/thumbnails/32.jpg)
Prototype-based Object Model
class
instance
prototype
![Page 33: Evolution or Intelligent Design? an objective view of software development Stephen Jenkins.](https://reader036.fdocuments.us/reader036/viewer/2022062516/56649d185503460f949eddaf/html5/thumbnails/33.jpg)
Prototype-based Object Model
axis Rows;axis Cols;
num Accumulate(cell){ cell = cell + 1; return cell}
prototype
prototype / instance
num Weight=1;
num Accumulate(cell){ cell=cell+weight; return cell}
declare & assignproperties &
methods
declare & assignproperties &
methods
![Page 34: Evolution or Intelligent Design? an objective view of software development Stephen Jenkins.](https://reader036.fdocuments.us/reader036/viewer/2022062516/56649d185503460f949eddaf/html5/thumbnails/34.jpg)
Prototype-based Object Model
prototype
declare & assignproperties &
methods
prototype / instance
declare & assignproperties &
methods
User Programmer
axis Rows;axis Cols;
num Accumulate(cell){ cell = cell + 1; return cell}
num Weight=1;
num Accumulate(cell){ cell=cell+weight; return cell}
![Page 35: Evolution or Intelligent Design? an objective view of software development Stephen Jenkins.](https://reader036.fdocuments.us/reader036/viewer/2022062516/56649d185503460f949eddaf/html5/thumbnails/35.jpg)
Prototype-based Model
prototype
declare & assignproperties &
methods
prototype / instance
declare & assignproperties &
methods
User Programmer
axis Rows;axis Cols;
num Accumulate(cell){ cell = cell + 1; return cell}
num Weight=1;
num Accumulate(cell){ cell=cell+weight; return cell}
My Table
Rows
Cols
Ok
Cancel
1Weight
cell=cell+WeightAccumulate
![Page 36: Evolution or Intelligent Design? an objective view of software development Stephen Jenkins.](https://reader036.fdocuments.us/reader036/viewer/2022062516/56649d185503460f949eddaf/html5/thumbnails/36.jpg)
Prototype-based Model
prototype
declare & assignproperties &
methods
prototype / instance
declare & assignproperties &
methods
User-developer Programmer
axis Rows;axis Cols;
num Accumulate(cell){ cell = cell + 1; return cell}
My Table
Rows
Cols
Ok
Cancel
1Weight
cell=cell+WeightAccumulate
![Page 37: Evolution or Intelligent Design? an objective view of software development Stephen Jenkins.](https://reader036.fdocuments.us/reader036/viewer/2022062516/56649d185503460f949eddaf/html5/thumbnails/37.jpg)
User-developer
Prototype-based Object Model
declare & assignproperties &
methods
prototype / instance
My Table
Rows
Cols
Ok
Cancel
1Weight
cell=cell+WeightAccumulate
Userdeclare & assign
properties & methods
prototype / instance
Build MyTable
Q2
Q10
Rows
Cols
Ok
Cancel
RespWtWeight
![Page 38: Evolution or Intelligent Design? an objective view of software development Stephen Jenkins.](https://reader036.fdocuments.us/reader036/viewer/2022062516/56649d185503460f949eddaf/html5/thumbnails/38.jpg)
Ongoing Development …
Domain-based extensibility
Patterns ...
Prototype-based object model ...
Core wholly driven by metadata
![Page 39: Evolution or Intelligent Design? an objective view of software development Stephen Jenkins.](https://reader036.fdocuments.us/reader036/viewer/2022062516/56649d185503460f949eddaf/html5/thumbnails/39.jpg)
Snap development philosophy …
Know & understand intended users
Allow users to work in their domain
Don’t rely solely on software
Plan for evolution