[Index] || [Blog] || [Research] || [Teaching] || [Search] Tue Jan 6 12:21:26 PST 2004

Disclaimer. CSUSB and the CS Dept may or may not agree with this page.

Copyright(2003). Copy and use as you wish but say where you found it. Make links as you need. See my signature etc page for details.

John Roebling's bridge is still standing and still functioning despite problems with the quality of the supplied components and the unknown stability of some of its foundations.

*Projects*

For my current research see below. For a list of projects in which I'm participating see below. For a list of projects in which students can help see my projects page. For some work in progress and drafts see below. For my**MATHS project**see below. For an earlier monograph see below. For similar work by other people see below*Resources*

I have, online, several Bibliographies of software development. an extensive collection of resources. To search these go to my Local Lab(your call may be monitored to ensure quality).*Personal*

For all other data about me, please see my Personal Page and Index Page

- The ROOT Project
- Research Career Integration Program (RCIPro):

Proposal

PROMPT

- how software is developed,
- and how it might by developed.

This developed from my interest in Programming Languages and Methods in the 1960s and 1970s. I believe that it is tempting for software engineers and computer scientists to rush in and develop solutions to badly understood problems. These solutions may not be useful as a result. Often a solution (K&R C for example) generates a new set of problems (Operating systems with easily exploited holes and memory leaks for example).

I think that the rush to implementation
has applied to attempts to develop CASE.
It also
applies to many proposed methods - programs executed by humans.
The
methods I have studied
offer, at best, a good solution to a particular class
of problems in a particular context. However they are sold as solving all
problems in all situations(*Silver Bullets*).

I have a hunch that different socio-economic niches make different methods, processes, techniques and technologies rational: "Does One Size Fit All?"(1995) . I have been working out the consequences of adopting different methods and processes in different situations. I am supervising a survey of software development companies to see if their socio-economic situation is having an effect on their methods and processes (see theses).

I am therefore *no longer* designing and selling my favorite tools and methods.
Instead I am collecting different software development tools, processes
and methods. I am
analyzing as many published methods and methodologies as possible.
I am using the *operations research* paradigm developed by
scientists and practitioners in the second world war. Here one
develops mathematical models of how some process or method is
carried out. The model can be used to make predictions and
to predict optimal (or at least feasible) methods, processes,and/or
techniques.

I have been collecting reports of what is done in practice from magazines. Similarly I monitor the state of the art as discussed on several Usenet Newsgroups. I therefore maintain several directories pointing to material on developing software development under the following headings:

- Software Development on the World Wide Web and Usenet
- notes and pointers on many methods,
- standards
- computer languages.
- URLs from USENET groups for software developers
- Bibliographies
- Here is a
bibliography
describing
**3310**or more papers, articles, and books about developing software and containing more than 380 definitions. See also the [Raw MATHS format] .

Please try out the**search engine**. There is also a list of subjects used to classify the bibliographic items

- Here is a
bibliography
describing
- Other Bibliographies on software development

This was an experiment to see if it was feasible to develop an ASCII based documentation language that would allow a software developer to mix mathematical and natural notations together at all stages in a project, for all life cycles, and all methods. The notation grows out of the well known EBNF notation for syntax but goes much further. In particular it allows parts of one document to be reused and extended in other documents.

One test was to develop a tool to translate the notation into HTML. This turned out to be useful for documenting languages and preparing WWW notes and handouts.

- To test and develop the notation I have detailed documentation on several Computer languages
including:
Ada, . . .
C++ +
C++ STL, . . .
HTML, . . .
Java, . . .
JavaScript, . . .
LISP, . . .
Logic and mathematics, . . .
ML, . . .
Object Constraint Language(OCL), . . .
Prolog, . . .
UML, . . .
VRML, . . .
XHTML, . . .
XML, . . .
Z, . . .
The above are part of a collection of samples of documentation and code based on my MATHS notation.

- To find out more about the notation I have developed over the years as a simple way to prepare the above documentation see the MATHS cheat sheet, Manifesto, a model using the UML (generated using rational Rose 4.0), my general introduction, and my notes on the notations, logic and discrete mathematics and abstract algebra. There is a prototype formal definition of the notation.
- Click here to seach the documentation on my MATHS language .
- Applications.

The notation has been used for papers and course materials for Theory of Programming Languages, Systems Admin Tools(UNIX Power tools), Computer Science II, Programming Languages. and Data Structures. - Please use these pages, link to them, create extensions, and tell me what can be done to improve them. If you wish to extend existing work or add some new materials, I will happily link your pages into the structure set up here.
- These and introductory materials are also available in raw form in my FTP directory.
- Samples and Language Definitions...,
- Relevant Papers:

How Far Can BNF Stretch (1999) , . . . (1996) , . . . (1993) , . . .

Discrete Mathematics in Software Engineering(1992)

Temporal Maps(Abstract 1992)+ (Samples (Postscript))

"Relations as a Model of Programs"(1995) and 1997" - MATHS and other Tools...,

Data Base of automated reasoning

Extending HTML to include Math

Specialized Mathematical MarkUp Language based on XML: MathML

A tiny language for sharing mathematical formulae and their semantics OpenMath

The MINSE Notation

Other Methods