.Open Bibliography Subject Index A list of subjects and seminal bibliographic items. I have a collection of more than three thousand papers, articles, books, etc. on software development. I include both theory, research, and practice, and also the good, the bad, and the ugly. This pages indicates the main index items I've used and has links to a search program that retrieves list of items tagged on the subject heading. I also classify the later items by the quality of the evidence provided: theory, statistics, empirical, experience, experiment, anecdote, ... down to advocacy and advertising, etc. This page started as a HyperCard stack. The stack had a button to export a specially formatted text file that could be easily translated into HTML. . Warning This page is undergoing a major refactoring to replace explicit links to items by calls to a local search engine that will retrieve the list instead. .Open Subjects . ADA the Ada Programming languages Ada83 and Ada95, See .See [ANSI83ADA] .See [ANSI95ADA] .See http://www//dick/bib.php?from=subjects&search=Ada . ANSI-C Standardized and added stronger typing than K&K C. . ADTs Abstract Data Types: data encapsulated/hidden by operations, including ADV/ADO, see also $DATA and $OBJECT-ORIENTED and $RESOLVE, .See [Parnas72a] .See [GonnetBaeza-Yates91] .See http://www//dick/bib.php?from=subjects&search=ADT . AGILE A year 2k buzz phrase indicating process or methods that are not burdened by documentation or ceremony. See .See [FowlerHighsmith01] .See http://www//dick/bib.php?from=subjects&search=AGILE . AI Artificial Intelligence including neural nets, See Also $LOGIC $LOGIC-PROGRAMMING .See EXPERT SYSTEMS $RULE-BASED, Special Issue Comm ACM March 1994., .See [Jainetal96] (Neural nets), .See http://www//dick/bib.php?from=subjects&search=%20AI . ALGEBRA also see $ADTs $SPECIFICATION and $LARCH, .See [ManesArbib86] .See [Wechler92] .See http://www//dick/bib.php?from=subjects&search=ALGEBRA . ANALYSIS Items with a focus on problems and situations rather than solutions. also see $SYSTEM, $PURPOSE, $QUALITY, $REALITY, $REQUIREMENTS, $OOA, $OOAD, $SA, $SADT $OOA, $SAD, and $SSADM, .See http://www//dick/bib.php?from=subjects&search=[^%3d]ANALYSIS . ARCHITECTURE including design $PATTERNS, and styles, also see some older refs under $MODULES, .See [AmblerS96] (n-tier) .See [Batoryetal95] (Genvoca) .See [Gammaetal94] (Patterns) .See http://www//dick/bib.php?from=subjects&search=ARCHITECTUR . ASSERTIONS in code as design and also the debugging and testing aids, .See [Floyd67a] .See http://www//dick/bib.php?from=subjects&search=ASSERTIONS . BACKTRACK include exceptions. Also see $LOGIC-PROGRAMMING and $NON_DETERMINISM .See [ADA83] (Exceptions), .See [EllisStroustrup90] (C++ exceptions), .See [Floyd67b] .See [Jackson75] .See [Jackson83] .See http://www//dick/bib.php?from=subjects&search=BACKTRACK . BNF Bachus Naur Form and all its extensions, also see $SYNTAX and the theory $GRAMMAR. .See [Nauretal64] .See http://www//dick/bib.php?from=subjects&search=BNF . C The programming language that improved B which came from BCPL and Algol68 and CPL. Used to program UNIX. The language that spawned a thousand slips... most of them buffer over-runs. Don't forget to wear asbestos under-ware when driving C. Varieties include K&R_C and ANSI_C. The classic references are by Kernighan and Ritchie plus Harbison and Steele. (K&R_C): .See [KernighanRitchie] Searching for a single letter will retrieve some false drops. The following will miss some references to C while selecting people with the initial C: .See http://www//dick/bib.php?from=subjects&search=%20C%20 . C++ A hybrid programming language derived from .See K&R_C .See [EllisStroustrup90] .See [Hutton95] .See [Stroustrup98] .See [Stroustrup01] .See http://www//dick/bib.php?from=subjects&search=C%5b%2b%5d%5b%2b%5d . CASE Computer aided Software Engineering, More complex than $TOOLS, .See [TahvanainenSmolander90](Bibliography) .See [TerryLogee90](Glossary) .See [Chikofsky(ed)88] .See http://www//dick/bib.php?from=subjects&search=CASE%2F%26%26%21%2FCASE%5B.+%5D*STUDY . CATEGORY Mathematical Theory of Categories, objects and arrows connecting them, general abstract nonsense, .See http://www//dick/bib.php?from=subjects&search=CATEGORY . CCS Milner's alternative model to $CSP of systems of interacting objects, .See [Milner80] .See [Milner89] .See [Milner93] .See http://www//dick/bib.php?from=subjects&search=CSS . CLEANROOM a rigid and rigorous software development method developed by IBM for its highest quality projects. This is Rocket Science: used for NASA software. .See [DwyerM92] (Intro Book), .See [Endres93] (lessons), .See [Hausleretal90] (re-engineering), .See [Hausleretal94] (adoption), .See [HevnerMills93] (Box structures), .See [Hevneretal92] (CASE), .See [Humphrey93] (Review of Dwyer M 92), .See [Linger94] (process), .See [MillsLinger86] (ADTs), .See [Mills72] (Theory), .See [Millsetal87] (method), .See [Millsetal89] (training), .See [Musa93] (testing), .See http://www//dick/bib.php?from=subjects&search=CLEANROOM . CMM Capability maturity model, SEI model of how an organizations capability to produce software improves, see $MATURITY $IMPROVEMENT .See http://www//dick/bib.php?from=subjects&search=CMM . COBOL Still going strong after all these years... .See http://www//dick/bib.php?from=subjects&search=COBOL . COMPILER a $TOOL that translates a high-level language into a lower level language in preparation for it to be executed. .See http://www//dick/bib.php?from=subjects&search=COMPILER . COMPUTER SCIENCE comments about predictions symposia surveys, .See http://www//dick/bib.php?from=subjects&search=COMPUTER%20SCIENCE . CONCURRENCY See $NON-SEQUENTIAL below, .See [Shankar93] .See http://www//dick/bib.php?from=subjects&search=CONCURREN . COST of software development, also $ECONOMICS, .See http://www//dick/bib.php?from=subjects&search=COST . CRC Class Responsibility Collaboration Cards + Responsibility driven designs. Also see $SCENARIOS, .See [Wirfs-BrockWilkersonWiener90] .See http://www//dick/bib.php?from=subjects&search=CRC . CSP cooperating sequential processes, Hoare's algebraic way of modeling systems of interacting objects, A rival to $CCS, eclipsed by $ACP -- The Algebra of Cooperating Processes. .See [Hoare78] .See [Hoare85] .See http://www//dick/bib.php?from=subjects&search=CSP . CYBERNETICS study of control and communication and viable systems including control systems and feedback based systems architectures, .See [Arbib64] .See [Beer74] .See [RossAshby56] .See [ShannonWeaver49] .See [WeinbergG75] .See http://www//dick/bib.php?from=subjects&search=CYBERNETICS . DAD Dynamic Analysis and Design methods, .See [Botting84a] .See [Cameron86] .See [Botting86a] .See [Botting86b] .See [Botting87a] .See http://www//dick/bib.php?from=subjects&search=DAD . DATA ways of modeling storing retrieving data, databases, data structures, also ways to use data modeling in the software process, DBMSs of all types., also see $DDD .See http://www//dick/bib.php?from=subjects&search=DATA . DDD data directed design, a family of methods where a structured model of the data involved becomes the structure of the code that processes the data, This is the accepted method for developing compilers and translaters. It is not well known that all data processing can be handled the same way. Also see $JSP. .See [Irons61] .See [Irons63] .See [Jackson75] .See [Warnier76] .See [HughesPowell81] (text) .See [Ingevaldsson79] (text) .See http://www//dick/bib.php?from=subjects&search=DDD . DECOMPOSITION multiple views, aspects, clash resolution, problem frames, ..., Ways of decomposing a problem other than using modules of code. Cross-cutting concerns. Breaking down problems into subproblems. Analyzing existing systems and situations -- see $SYSTEM. .See http://www//dick/bib.php?from=subjects&search=DECOMPOSITION . DESIGN Primarily the internal structure of software and activities that produce it, Rather than the look-and-feel of the software ($USER $REQUIREMENTS $SPECIFICATION), see Also $SAD $SADT $SSADM $OOD .See [BerglandGordon(Eds)81] .See [BerglandZave(eds)86] .See [Gammaetal94] .See [Hoare87] .See [Jackson75] .See [Parnas72b] .See [Parnas96] .See [Wirth85] .See [Witty77a] .See [Yourdon75] .See http://www//dick/bib.php?from=subjects&search=DESIGN . DFDs Data Flow Diagrams, charts showing named objects connected by arrows. arrows show that one object influences or effects the other other., Differs from a Collaboration chart in the direction of arrows and level of abstraction: A data flow indicates many collaborations and shows how data/objects move not the call-response connection. .See [GaneSarson79] .See [RossAshby56] .See [WardMellor85] .See [WeinbergV79] .See http://www//dick/bib.php?from=subjects&search=DFD . DOCUMENTATION Harmful or necessary? How to record ideas about software and its environment. Posters or books? .See http://www//dick/bib.php?from=subjects&search=DOCUMENTATION . DOMAIN a set of (problems|tasks|implementations) in which multiple highly similar application systems (will|can|have been?) be developed including product lines, DSSA, not "domain" as the sense of "what is outside the software" as in systems analysis or Jackson or "Domain Expert", $REALITY, $SYSTEM, .See http://www//dick/bib.php?from=subjects&search=DOMAIN . DYNAMIC PREDICATES The use of a prime(') to indicate the future state of a variable, and hence the normal predicate calculus to express changes of state as well as sets of states, .See [Hehner84a] .See [Hehner84b] .See [RossAshby56] .See http://www//dick/bib.php?from=subjects&search=DYNAMIC%20PREDICATES . DYNAMICS the use of sets of (possible|significant) sequences of (changes|events) as part of a technique, When used extensively see $DAD. .See [Kleene56] .See [Robinson79] .See [WardMellor85] .See http://www//dick/bib.php?from=subjects&search=DYNAMICS . ECONOMICS how supplier cost and customer needs ( plus hype) interact, including spurious but interesting models like my own work, .See http://www//dick/bib.php?from=subjects&search=ECONOMIC . EDISON a simple but powerful language designed in the late 70's, .See [BrinchHansen81] .See [BrinchHansen83] .See [Paakki91] . EDUCATION .See [BCS/IEE89] .See http://www//dick/bib.php?from=subjects&search=EDUCATION . EIFFEL Bertrand Meyers language, object oriented and formal., .See [Meyer90] .See http://www//dick/bib.php?from=subjects&search=EIFFEL . ENGINEERING As opposed to art, craft, science, etc. An engineer can do anything a clod can but cheaper, safer, and better. .See [ANSI/IEEE87] .See [BCS/IEE89] .See [CSTB89] .See [Krick69] .See [Lano77] .See [McFarland91] .See [Petroski85] .See [Petroski95] .See [Simon69] .See http://www//dick/bib.php?from=subjects&search=ENGINEER . ERD Entity-Relation-Diagram and related ones: $SSADM LDS charts conceptual models etc, .See [MartinMcClure85] .See http://www//dick/bib.php?from=subjects&search=%20ERD Problems: problems of Chen style ERA/ERD COW diagrams, .See [Botting87a] .See [Berztiss89] .See [Carasiketal90] .See [Kilov91] .See [MartinMcClure85] . ERRORS in human input, not those made by developers (for these see $RISKs), .See http://www//dick/bib.php?from=subjects&search=ERRORS . EVOLUTION A trendy name for the study of $MAINTENANCE, .See http://www//dick/bib.php?from=subjects&search=EVOLUTION . EXPERT SYSTEMS see $PROLOG and $LOGIC., .See http://www//dick/bib.php?from=subjects&search=EXPERT%20SYSTEMS . FAIRNESS properties of components that guarantee that good things are actually done even though alternatives exist. compare with liveness progress and safety properties, See $UNITY $GUARDED-COMMANDS $NON-DETERMINISM $MODULES, .See [Shankar93] .See http://www//dick/bib.php?from=subjects&search=FAIRNESS . FORMAL making use of mathematical formulae in analysis, design and implementation of software, includes the ability to use math creatively., Often confused with RIGID or CEREMONIOUS. .See [Floyd67a] .See [GriesSchneider93] .See http://www//dick/bib.php?from=subjects&search=FORMAL . FORTRAN .See http://www//dick/bib.php?from=subjects&search=FORTRAN . FUNCTIONAL methods that depend on using the word "function" to mean either a mathematical function or the purpose of a piece of software to determine its structure and code. Functional methods and languages go back to the 1960's and where eclipsed by Object-Oriented methods in the 1990's -- but the is a war of religion. .See [Strachey66] .See http://www//dick/bib.php?from=subjects&search=FUNCTIONAL . GENERICITY polymorphism resolved and checked prior to runtime, Ada Generic + C++ templates + SML functors + levers Frameworks + Hypergenerics + automatic specialization/concretization of general/abstract models, see also $ARCHITECTURE/$PATTERNS and $REUSE, .See [ANSI83ADA] (generics), .See [EllisStroustrup90] (templates), .See [Garlanetal95] (architectural mismatch), .See [Kiczales96] (Open implementation), .See [LeeZachary95] (metaobject protocol), .See http://www//dick/bib.php?from=subjects&search=GENERIC . GRAMMAR A very successful theory! See $BNF $SYNTAX $LANGUAGES $DDD for applications. .See [HoltCordyWortman82] .See http://www//dick/bib.php?from=subjects&search=GRAMMAR . GRAPHIC Techniques and methods that use a picture rather than words/numbers/tables, also the study of the use of pictures. Notice that some graphics used by engineers are $FORMAL and others are informal. .See [Scanlan89] .See [Tripp88] (survey), .See [Tripp89] (bibliography), .See [TsePong91] .See [Witty77b] .See http://www//dick/bib.php?from=subjects&search=GRAPHIC . GUARDED-COMMANDS Dijkstra's non-language... .See [Dijkstra76] .See [Gries81] .See http://www//dick/bib.php?from=subjects&search=GUARDED-COMMANDS . HOS Higher Order Software, company selling a rigorous form of functional decomposition. An example of an overhyped method IMHO. .See [Anon(HOS)84] .See [HamiltonZeldin76] .See [Martin85] . HYPERTEXT and hypermedia and interactive presentation technologies, also using the WWW as a tool and as a software product, .See http://www//dick/bib.php?from=subjects&search=HYPERTEXT . ICON child of SNOBOL and much better a unique language with backtracking and concurrency builtin, .See [GriswoldGriswold83] .See [GriswoldHansonKorb81] .See http://www//dick/bib.php?from=subjects&search=%20ICON . IMPLEMENTATION tasks converting designs(ideas) to code, Or in extreme cases an iteration adding a new user story to a running system. .See http://www//dick/bib.php?from=subjects&search=IMPLEMENTATION . IMPROVEMENT how to learn from experience- experience factories BOP, Also see $MATURITY and $CMM, SPIN meetings and groups. .See http://www//dick/bib.php?from=subjects&search=IMPROVEMENT . INSPECTIONS (SQA) ways to find errors in code based on techniques that work with chips! .See [Fagan76] .See [GilbGraham94] .See http://www//dick/bib.php?from=subjects&search=INSPECTIONS .See http://www//dick/bib.php?from=subjects&search=SQA . JSD Jackson System Development, a leading $DAD, MIS systems contain a real-time simulation of the "real world" plus the ability to react to the model and to control it, .See [Cameron84] .See [Cameron86] .See [Cameron89] .See [Jackson83] .See [Jackson94] .See [Sanden89] .See http://www//dick/bib.php?from=subjects&search=JSD . JSP Recently JSP means $JAVA server pages. See $JAVA. Jackson Structured Programming, a $DDD, a rigorous data and program structure chart is used to document and derive structure, multiple structures a handled as concurrent or pipelined processes, Non-determinism handled by back-tracking. To rigorous for untrained programmers and to practical to be a formal method. .See [Cameron84] .See [Cameron89] .See [Hoare79] .See [Jackson75] .See [Jackson95c] .See [KingPardoe85] .See [King88] .See [Sanden85a] .See [Sanden85b] .See http://www//dick/bib.php?from=subjects&search=JSP . K&R_C . LANGUAGE Description of a particular language, See $JAVA, $FORTRAN, $COBOL, $ADA etc. .See http://www//dick/bib.php?from=subjects&search=LANGUAGE . LANGUAGES about languages in general or comparisons of languages, .See [BrinchHansen85] .See [Higman77] .See http://www//dick/bib.php?from=subjects&search=LANGUAGES . LARCH a formal assertion language that can be adapted to fit any high level language, .See [GuttagHorning91] .See [GuttagHorning93] .See http://www//dick/bib.php?from=subjects&search=LARCH . LCP Logical Construction of Programs, Warnier-Orr's weak and early version of $DDD, .See [Higgins83] .See [Warnier76] .See http://www//dick/bib.php?from=subjects&search=LCP . LCS/DSSD Logical Construction of systems, What happened when $LCP grew up. .See [Orr77] .See [Orr88] .See [Warnier81] .See http://www//dick/bib.php?from=subjects&search=LCS .See http://www//dick/bib.php?from=subjects&search=DSSD . LIFECYCLE ways to schedule the tasks needed to develop software, the sequential case of a software $PROCESS, also a description of the life of a product rather than a project, .See http://www//dick/bib.php?from=subjects&search=LIFECYCLE . LISP LISt Processing langugae. Based on the theory of recursive functions, the \lambda calculus, and the architecture of an IBM 704... .See [BraffortHirschberg(Eds)63] .See [McCarthyetal62] .See http://www//dick/bib.php?from=subjects&search=LISP . LITERATE a style of programming based on writing a formal mathematical paper and extracting the code from it, .See [VanWyk86-88] .See http://www//dick/bib.php?from=subjects&search=LITERATE . LOGIC In accordance with the speakers preconceptions.... expressed as axioms and deductive rules... develops a collection of theorems. Also LOGIC PROGRAMMING .See [FeysFitch69] .See [Fox(Ed)66] .See [Hodges77] .See [KalishMontague64] .See http://www//dick/bib.php?from=subjects&search=%20LOGIC . LOGIC PROGRAMMING CLP Prolog etc, .See [Cohen90] (Constraint Logic Programming), .See [Colmerauer90] (Constraint Logic Programming), .See [SchnuppBernhard87] (Prolog) . LOTOS a specification language, .See http://www//dick/bib.php?from=subjects&search=%20LOTOS . MAINTAINABILITY A $QUALITY that indicates the cost of changing a piece of software, Also see $REUSE and .See RE-ENGINEERING, .See http://www//dick/bib.php?from=subjects&search=MAINTAINABILITY . MAINTENANCE also see legacy code, See $EVOLUTION, $REUSE, .See RE-ENGINEER , $SYSTEM, .See REVERSE ENGINEERING , $MAINTAINABILITY, ... Distinguish the types of maintenance: adding features, correcting errors, bringing in line with changes in the outside world. .See [ANSI/IEEE90] .See [ParikhZvegintzov82] .See http://www//dick/bib.php?from=subjects&search=MAINTENANCE . MASCOT a special kind of $DFD, Recently incorporated into the $UML .See [JacksonK89] .See [Hulletal91] .See http://www//dick/bib.php?from=subjects&search=MASCOT . MATHEMATICS mathematics that was not developed to help the development of software, However tends to be useful (you mean you don't count....?). otherwise see $FORMAL. .See http://www//dick/bib.php?from=subjects&search=MATHEMATICS . MATHS The British colloquial term for Mathematics. My own way of encoding mathematics in ASCII. .See http://www//dick/bib.php?from=subjects&search=MATHS . MATURITY and process improvement, $CMM, $IMPROVEMENT .See http://www//dick/bib.php?from=subjects&search=MATURITY . METHODS =Methodologies=the study theory of methods + surveys of usage, .See [BerglandGordon(Eds)81] .See [Bergland81] .See [GoldsteinAlger92] .See [Kitchenham96] (DESMET), .See http://www//dick/bib.php?from=subjects&search=METHODS . METRICS ways of mapping software into numbers, an extremely rigid from of $QUALITY measurement, most are controversial, many are also popular however, - also see $QUALITY, Not all have a rigorous mathematical meaning. .See [Fenton94] .See [Gilb77] .See http://www//dick/bib.php?from=subjects&search=METRIC . MOBILE How to handle code that moves from place to place or machine to machine? .See http://www//dick/bib.php?from=subjects&search=MOBILE . MODULES . MODULARIZATION Module interconnection architectures, $RESOLVE $ARCHITECTURE $ADTs, .See [McConnell96] .See [Parnas72b] .See [Parnas85] .See [Parnas72a] .See [Parnas96] .See [WilkesWheelerGill] .See [Winograd79] .See http://www//dick/bib.php?from=subjects&search=MODUL%5bAE%5d . MS-LIKE PROCESSES Microsoft and similar processes that make marketing, coding and testing central, $TECHNICAL for particular coding oriented techniques and methods, .See [CusumanoSelby95] .See [Keuffel95b] .See [Keuffel95c] .See [Maguire94] .See [McCarthyJ95] .See [McConnell93] .See [McConnell96a] .See [MyersW95] .See [Pascal94] . N^2 CHART a way of laying out a complex network or any digraph with out self-looping arrows, .See [Lano77] .See [LoyStapp93] .See [ThayerDorfman90] . NON-DETERMINISTIC See $BACKTRACK and $NON-SEQUENTIAL, .See http://www//dick/bib.php?from=subjects&search=NON%5b%2d%5d%2aDETERMINISTIC . NON-SEQUENTIAL On structures that not sequence, selection, and iteration. .See [Floyd67b] .See [Hoare85] .See [Jackson75] .See [Jackson78] .See [Jackson80] .See [Jackson95c] .See [Kowalski79] .See [McIlroy86] .See [OwickiGries76] .See [Parnas72b] .See [RitchieThompson74] .See [Ritchie80] .See http://www//dick/bib.php?from=subjects&search=NON%5b%2d%5d%2aSEQUENC . OBJECT-ORIENTED OO::="Object-oriented". .See [Mrdalj90] (Bibliography), .See[FiresmithEykholt95] (Dictionary), .See [GoldsteinAlger92] .See [Kay77] .See [Parnas72b] .See [Rettig93] .See [SharbleCohen93] .See [Winograd79] .See http://www//dick/bib.php?from=subjects&search=OBJECT%5b%2d%5d%2aORIENT . OOA/OOAD/OOD $OO Analysis. OOA::=http://www//dick/bib.php?from=subjects&search=OOA . OOAD $OO Analysis and Design OOAD::=http://www//dick/bib.php?from=subjects&search=OOAD . OOD $OO Design, ... methods that take advantage of $OO technology, OOD::=http://www//dick/bib.php?from=subjects&search=OOD (200+ items...) . OPEN SOURCE A religion/movement/process for developing software by the programmer, for the programmer, and for the use of the programmer. .See http://www//dick/bib.php?from=subjects&search=OPEN%2e%2aSOURCE . OPTIMIZATION techniques that make one quality better at the expense of other qualities, For example improving $PERFORMANCE at the expense of reducing $MAINTAINABILITY. .See [Bentley84] .See [BrinchHansen83] .See [SmithCU90] .See http://www//dick/bib.php?from=subjects&search=OPTIMIZATION For design patterns see $ARCHITECTURE . PASCAL Philosopher and programming language family. .See http://www//dick/bib.php?from=subjects&search=PASCAL (look out for people named Pascal as well) . PEOPLE including management psychology groups teams empowerment agile etc, .See http://www//dick/bib.php?from=subjects&search=PEOPLE . PERFORMANCE requirements(Qualities+Purposes), $OPTIMIZATION, $TIMING, $FAIRNESS, .See [Bentley84] .See [Bentley93] .See [SmithCU90] .See http://www//dick/bib.php?from=subjects&search=PERFORMANCE . PETRIE-NETS A way of describing how a set of conditions allow things to happen and how things happen make certain conditions become true. A $NON-SEQUENTIAL modeling tool. An theory that feels as if it it should be useful. $UML activity diagrams! .See [CommonerHoltEvenPnueli71] .See http://www//dick/bib.php?from=subjects&search=PETRI . PIPE a technique first implemented in UNIX to allow the interconnection of running programs and simple and safe inter-process data flow, also see $JAVA, $UNIX and $NON-SEQUENTIAL., .See http://www//dick/bib.php?from=subjects&search=PIPE . POSTMODERN Denying single authorship, single truth. Arguing for multiple and constructed $REALITY. .See http://www//dick/bib.php?from=subjects&search=POSTMODERN . PQRST My own Purposes+Qualities+Realities+Systems+Techs framework for thinking about software and systems development. Plus other similar end-to-end models of problem areas and projects and methods, .See [Botting85b] .See [Botting89b] .See http://www//dick/bib.php?from=subjects&search=PQRST . PROCESS non-sequential models of development including spirals and RAD + Process (Improvement|Models|Programs), $MATURITY, $CMM, ... .See [BradacPerryVotta94] (development as a queuing system), .See [Dichter93] (Intro), .See [Gilb96] (evolutionary delivery), .See [Humphey94] (PSP Personal Software Process), .See [Raccoon95a] (chaos), .See [Sommeville96] (survey), .See http://www//dick/bib.php?from=subjects&search=PROCESS . PROLOG Programming in Logic. .See http://www//dick/bib.php?from=subjects&search=PROLOG . PROOF A way of moving from assumptions to conclusions that guarantees that if the assumptions happen to be true then the conclusion is forced to be true as well. A way of verifying that an algorithm, under specified (assumed) conditions will provide the specified results. As a form of SQA/VV or a way to save money testing or as a way to design code, .See [Floyd67a] .See [Gries91] .See http://www//dick/bib.php?from=subjects&search=PROOF%2f%7c%7c%2f%20PROVE . PROTOTYPES Initial version of a device or system. May be used experimentally and then thrown away. May be an incomplete but usable system. May be a piece of software that looks OK but can not be used for anything. may imply $RAD, $XP .See http://www//dick/bib.php?from=subjects&search=PROTOTYPE . PURPOSE . PURPOSES Any one of many reasons for a piece of software's existence. First component of $PQRST, also called "$FUNCTION" or "functional $REQUIREMENT", use case, simpler kinds of user-story. .See [Gilb96] .See [Wirth71] .See [Witty77a] .See [Witty77b] .See http://www//dick/bib.php?from=subjects&search=PURPOSE . QUALITY . QUALITIES A component of $PQRST, the particular qualities that are important in a particular project, See $COST, $PERFORMANCE, $OPTIMIZATION, $TIMING, $RELIABILITY, $QFD, $SQA, $READABILITY Also known as a non-functional $REQUIREMENT. .See [Chow(Ed)84] .See [GilbGraham93] .See http://www//dick/bib.php?from=subjects&search=QUALIT . QFD $QUALITY $FUNCTION Deployment "The House of Quality" maps Purpose+Quality+Reality to Technicals+(new)SYSTEM, non-hierarchical, .See http://www//dick/bib.php?from=subjects&search=QFD . RE-ENGINEERING process of proceeding to replace old design and code by new designs and then code, See also $REUSE, $MAINTAINABILITY, $SYSTEM, $EVOLUTION. Distinguish from reverse engineering which reconstructs missing design information from the code. .See http://www//dick/bib.php?from=subjects&search=RE-ENGINEERING . READABILITY a quality directly related to $MAINTAINABILITY, .See http://www//dick/bib.php?from=subjects&search=READABILITY . REALITY . REALITIES component of $PQRST, models what is outside the software and (often) in the mind of the user, client, or customer. Relies on the observation that internal structure of software can often be made to match the static and temporal semantic structures `outside` the computer. The XP metaphor. Conceptual models of data, entities, objects. Methods including $DDD, $DAD, and $DATA, .See [Jackson75] .See [Jackson83] .See [RossAshby56] (Law of Requisite Variety) .See [ShlaerMellor89] .See http://www//dick/bib.php?from=subjects&search=REALIT . REGULAR EXPRESSIONS Kleene showed that neural and logical networks have behavior that can be expressed in a succinct and rigorous algebra. This has become part of many tools and is not unrelated to structured programming. .See http://www//dick/bib.php?from=subjects&search=REGULAR%20EXPRESSIONS . RELIABILITY An important $QUALITY in many systems. .See http://www//dick/bib.php?from=subjects&search=RELIABILITY . REQUIREMENT . REQUIREMENTS the user's view of what is needed, the evolving contracts between the user's world and the software, the $PURPOSE $QUALITY $REALITY that a piece of software has to fit. Often split into functional and nonfunctional requirements. .See [DavisA90] .See [Zave91] (PAISley), .See http://www//dick/bib.php?from=subjects&search=REQUIREMENT . RESOLVE framework discipline and language (REusable SOftware Language with Verifiability and Efficieny), .See [Edwards94] (bibliography), .See [Sitaraman94] .See http://www//dick/bib.php?from=subjects&search=RESOLVE . REUSE $RE-ENGINEERING, $MAINTAINABILITY, $SYSTEM, .See [MiliMiliMili95] .See [Schaferetal94] .See http://www//dick/bib.php?from=subjects&search=REUSE . REVERSE ENGINEERING process of extracting a spec from some code, or requirements from a spec, part of $RE-ENGINEERING a badly documented system, See also current $SYSTEM, .See http://www//dick/bib.php?from=subjects&search=REVERSE%20ENGINEERING . RISKS to the public clients users etc. + bugs defects and errors made by software developers etc and also subtle risks of technological abuse and cybercrud + safety as a desirable $QUALITY, .See [Anon90] .See [LevesonTurner93] .See http://www//dick/bib.php?from=subjects&search=RISK . RULE BASED SYSTEMS See also .See EXPERT SYSTEMS .See http://www//dick/bib.php?from=subjects&search=RULE%20BASED%20SYSTEMS . SAD/SA/SD . SAD structured analysis and design, structured analysis, Structured design, also see to specific SAD methods: $SSADM $SADT .See [BerglandGordon(Eds)81] .See [GaneSarson79] .See http://www//dick/bib.php?from=subjects&search=SAD . SADT Structured analysis and Design technique developed by Doug Ross, Now known as IDef0? .See http://www//dick/bib.php?from=subjects&search=SADT . SAFETY see $RISKS and $QUALITY, not in the modal logic sense:See Liveness, Fairness, etc. .See http://www//dick/bib.php?from=subjects&search=SAFETY . SCENARIOS and Use-Cases Scripts Videos + Operational profiles, $USER $REQUIREMENTS $CRC, .See http://www//dick/bib.php?from=subjects&search=SCENARIO . SCIENCE as it is, as it isn't, as being not art and not engineering, as opposed to craft. Applications of scientific method to discovering things about software development. Also study of how software development is like science. .See [Fenton94] .See [Simon69] .See http://www//dick/bib.php?from=subjects&search=SCIENCE . SDL the most mature and standard specification method for telecommunications:Specification and Description Language, .See http://www//dick/bib.php?from=subjects&search=SDL . SEMANTICS The study of meaning in languages. The description of the meaning of artificial languages. Methods for defining non-syntactic parts of a language. Types: informal, operational, axiomatic, and denotational. .See http://www//dick/bib.php?from=subjects&search=SEMANTIC . SEQUENTIAL . SWR techniques that are limited to sequential structures, stepwise refinement, .See [LedgardMarcotty75] .See [Strachey66] .See http://www//dick/bib.php?from=subjects&search=SWR . SGML standard generalized Markup languag and its inheritors: RTF, HTML, ..., .See [Ressler93] (intro), .See http://www//dick/bib.php?from=subjects&search=SGML .See http://www//dick/bib.php?from=subjects&search=RTF .See http://www//dick/bib.php?from=subjects&search=HTML .See http://www//dick/bib.php?from=subjects&search=XML . SIMULA .See http://www//dick/bib.php?from=subjects&search=%20SIMULA%20 . SIMULATION as a tool|model of software development, .See http://www//dick/bib.php?from=subjects&search=SIMULATION . SMALLTALK .See http://www//dick/bib.php?from=subjects&search=SMALLTALK . SPEC an Ada-like language for writing specifications, .See http://www//dick/bib.php?from=subjects&search=%20SPEC%20 . SPECIFICATION in theory tasks and/or documents that describe the what not the how of a piece of software, should be the worlds view of the software but can include structural constraints(DESIGN), Specifications for modules, packages, classes, functions, ... Hence Contracts. .See [Spivey88] .See [Wing88] .See http://www//dick/bib.php?from=subjects&search=SPECIFICATION . SQA including testing lint-type checkers inspections reviews walkthroughs, See $PROOF, $QUALITY, and $METRICS, .See [Chow(Ed)84] .See http://www//dick/bib.php?from=subjects&search=SQA . SREM software Requirement E? Modeling, .See http://www//dick/bib.php?from=subjects&search=SREM . SSADM Structured systems analysis and Design Methodology, developed in the UK Civil service in Response to the Prime Minister Thatcher's ordering higher programmer productivity. Combines the best of breed methods of the time: DFDs, ELHs, ERDs, ..., Physical Design Control, SQA, ... .See http://www//dick/bib.php?from=subjects&search=SSADM . STANDARD and theory of standards, .See [ANSI83ADA] .See [ANSI/IEEE87] .See [IEEEStd1044-1993] .See [ISOnnnn] .See [ISO/IEC10027] .See http://www//dick/bib.php?from=subjects&search=STANDARD . STATECHARTS STATE-CHARTS + StateMate + RSML(Requirements State Machine Language) + ModeCharts and other derivatives, Now a part of the $UML .See [HarelKahanna92] .See [Harel86] .See [Harel88] .See [Hareletal90] .See http://www//dick/bib.php?from=subjects&search=STATECHARTS . STD/FSM State Transition Diagrams/Finite State Machines, methods that include these, flowcharts reborn, also see $STATECHARTS above. .See http://www//dick/bib.php?from=subjects&search=STD%2fFSM . STRUCTURE-DIAGRAMS .See [Berztiss89] .See [Shumate89] .See [Wongetal95] .See [Woodside95] .See http://www//dick/bib.php?from=subjects&search=STRUCTURE-DIAGRAM . STRUCTURES of types objects classes sets, ways to document them, .See http://www//dick/bib.php?from=subjects&search=STRUCTURES . SYNTAX .See http://www//dick/bib.php?from=subjects&search=SYNTAX . SYSTEMS ANALYSIS . SYSTEM component of $PQRST describing what currently exists, a source of problems, reusable components, and some amusement, .See http://www//dick/bib.php?from=subjects&search=SYSTEM . TABULAR Using of tables to (describe|present|encode|store|think about) (requirements|specs| designs|code) and also ways of implementing tables, .See [Humby73] (Decision), .See [Levesonetal94] (and/or), .See [Zelkowitz90] (Trace), .See http://www//dick/bib.php?from=subjects&search=TABULAR . TECHNICAL component of $PQRST concerned with the tools, technology, and things people do to produce code, also includes resources in general provided by management, and hence constraints on things that are not allowed, and last but not least TEAMS and $PEOPLE .See [GonnetBaeza-Yates91] .See [Knuth697489] .See [LedgardMarcotty75] .See http://www//dick/bib.php?from=subjects&search=TECHNICAL . THEORY .See http://www//dick/bib.php?from=subjects&search=THEORY . TIMING synchronizing and mutual exclusion and $REAL-TIME and scheduling and RMA, .See http://www//dick/bib.php?from=subjects&search=TIMING . TOOLS software designed to aid the development and maintenance of software systems, Also see $CASE, .See http://www//dick/bib.php?from=subjects&search=TOOL . TOPOLOGY Study of the shapes of things. .See [Dixmier84] .See [ManesArbib86] .See http://www//dick/bib.php?from=subjects&search=TOPOLOGY . TRAC An early and brilliantly simple interpreter, .See [Mooers66] . TREE .See http://www//dick/bib.php?from=subjects&search=TREE . TURING the language, .See [HoltCordy88] .See http://www//dick/bib.php?from=subjects&search=TURING . TYPES also see $STRUCTURES, .See http://www//dick/bib.php?from=subjects&search=TYPES . TYPOGRAPHY Effect of layout, color, font etc. on software development. .See http://www//dick/bib.php?from=subjects&search=TYPOGRAPHY . UML The Unified Modeling Language. Good for objects, classes, deployment, and usecases. .See Alhir98 .See http://www.csci.csusb.edu//dick/bib.php?from=subjects&search=UML . UNITY and swarm, a language were a program is described as a single large logical statement that is effectively iterated until it is stable, .See [ChandyMisra88] .See http://www.csci.csusb.edu//dick/bib.php?from=subjects&search=UNITY . UNIX .See [BellLabs83] .See [Gancarz95] .See http://www.csci.csusb.edu//dick/bib.php?from=subjects&search=UNIX . USER including UI HCI JAD Participatory design usability, examples of the value of users as part of software development, one meaning of the word $DESIGN is user look-and-feel, also users writing code or using RAD tools, .See [Botting84] .See [CarrollCarrithers84] .See [Carroll82] .See [Carroll91] .See http://www.csci.csusb.edu//dick/bib.php?from=subjects&search=USER . VDL/VDM Vienna Definition Language, later Vienna Definition Method., .See [Bekic70] .See http://www.csci.csusb.edu//dick/bib.php?from=subjects&search=VD%5bML%5d . WEB/NET Use of the World Wide Web and other slices thru the Internet:Usenet Email FTP TCP/IP, including (distributed | client/server) (designs|tools|theories|...), .See http://www.csci.csusb.edu//dick/bib.php?from=subjects&search=WEB%2eNET . XP Extreme Programming, a rigid but agile process for developing medium size $USER oriented software .See [Beck99b] .See [Jeffries00] .See http://www.csci.csusb.edu//dick/bib.php?from=subjects&search=%20XP . Z an elegant specification language with a very specific flavor of its own.... essential discrete mathematics made useful. and derivatives, Usenet newsgroup: comp.specification.z, EMail archive: archive-server@comlab.ox.ak.uk, .See [Hayes93] .See http://www.csci.csusb.edu//dick/bib.php?from=subjects&search=%20Z%20 .Close Subjects .Open Evidence . ANALYSIS analytical examples but not $SA, $SADT $OOA, $SAD, or $SSADM, .See http://www//dick/bib.php?from=subjects&search=%3dANALYSIS . ADVERT and advocacy - claims made but no $DEMO $TOOL $THEORY $EXPERIENCE $POLL $EXPERIMENT or $SURVEY of literature... especially excerpts from (recently|about to be) published books, and theses. These tend to tell you the possible directions the wind is blowing. Variations include $POLEMIC and $ESSAY. I don't know why you would want specifically to search for advertising, but .See http://www//dick/bib.php?from=subjects&search=%3dADVERT will do it. . CASE-STUDY reproduces results and stats about one or more special but real projects, .See [Kitchenhametal95] .See http://www//dick/bib.php?from=subjects&search=%3dCASE%5b%2e%20%2d%5d%2aSTUDY . DEMO proof of concept, one or two examples chosen to illustrate idea or tool or program, Paper on demonstrating tool invented in PhD Thesis, Description of how to apply a method to a typically small project. .See http://www//dick/bib.php?from=subjects&search=%3dDEMO . EDITORIAL Something written by an editor. Often opinionated. Often informative. May give a good guide to a body of literature or a set of papers in a special edition. . EXPERIENCES (lessons from | (results|observations|records) of) (case(s)|project(s)|work) with no (variables|comparison|stats), Experiences may not be transferable to other situations. See $EXPERIMENTS, $DEMO, $THEORY . EXPERIMENTS theory;prediction;action; analysis;conclusion (and so probably small scale + lab or academic...) also comparisons and statistical summaries of (observations|records), The main problem with most experiment with software engineering is that they have to involve human beings, and the cheapest and most available humans are students. The artificial world of the laboratory may not apply in other places. Bridges have collapsed because of this. .See [Pfleeger93] . HANDBOOK Books and sites that are kept to hand by practitioners... Strong on the How-to and What-is. Weak on the Why and Wherefor. Do not provide many reasons for doing something a particular way. Good Reference manuals are handbooks. .See [AbramowitzStegun64] .See [AbramowitzStegun65] (Math functions) .See [ACMCALGO] (algorithms) .See [BellLabs83] (UNIX) .See [GonnetBaeza-Yates91] (Data structures and algorithms) .See http://www//dick/bib.php?from=subjects&search=HANDBOOK . HARMFUL publications claiming that some feature or technique is harmful, debates spawned by such publications, also see $POLEMIC $EDITORIAL .See http://www//dick/bib.php?from=subjects&search=HARMFUL . HISTORY descriptions of the history of something, .See [ACM86] .See [CACM25] .See http://www//dick/bib.php?from=subjects&search=HISTORY . IDEA A new idea. By definition almost certainly half-baked or worse. But the good ideas often survive and enter the discipline in some form or other. .See http://www//dick/bib.php?from=subjects&search=IDEA . MANUAL (LRM): A description of a method, process, language, system, etc. written to explain how to use it. Short on theory and evidence. Typically provides syntax, semantics, examples, and commentary. A kind of $REFERENCE. See $HANDBOOK. . POLEMIC Any angry attack on another position that provides little or no evidence for the author's opinions. Also see $HARMFUL. . POLL results of sending out questionnaire or requests for Participation, Often backed up with statistical work. Good for opinions and getting an idea of the state of the practice. Not good for deciding objective things. . REFERENCE A defining source of information on a topic, method, process, language, etc. . SURVEYS of literature or collating results across projects or methods or languages, .See [ACM86] .See [AhoUllman7273] .See [BerglandGordon(Eds)81] .See [BerglandZave(eds)86] .See [MartinMcClure85] .See [ThayerDorfman90] .Close.Box . TEXT BOOK Should contain exercises and illustrations. Ideally contains only highly reliable knowledge. . THINKING Opinions, arguments, reasoning, rows but not official Computer $THEORY, .Close Evidence .Close Bibliography Subject Index