.Open RJBottings Web Log 2008 . 2008-12-22 Mon Dec 22 09:12 Contributions I'm very pleased to get the following Emails. I will be posting them to .See ./samples/etc.html Real Soon Now. (AcademicInfo): .Box First, I would like to thank you for maintaining the resource at csci.csusb.edu/dick/samples/etc.html as it has been of great help to me in my studies. Second, since I noticed that you are interested in suggestions, I know of a really useful resource on computer science, and thought I might pass it on. The website address is .See http://www.academicinfo.net/compsci.html and it contains both computer science degree information and subject resources (math, programming, journals, links etc). I think professionals and students alike might find good use for it. I personally appreciated the programming section with the tutorials and guides to different programming languages. Anyway, let me know what you think! Regards, Joanna .Close.Box (Careerjet): .Box Hello, We have looked through the following page on your site: .See http://www.csci.csusb.edu/dick/samples/etc.html and noticed that you have a "jobs" section in which several sites were listed. We would like to recommend the addition of our site Careerjet .See http://www.careerjet.com , an employment search engine for the USA. In one simple search, Careerjet gives the job seeker access to a massive selection of jobs that are compiled from various internet sources, saving the trouble of having to visit each site individually. Some of our embeddable tools might be of interest to you: JobBox - .See http://www.careerjet.com/partners/jobbox.html SearchBox - .See http://www.careerjet.com/partners/searchbox.html We hope this site will interest you and can be included in your listings. Thank you. Kind regards, Emily Kovak .Close.Box . 2008-12-17 Wed Dec 17 19:12 Happy Holidays The server went wrong again during the weekend and the snow separated the systems administrator from the servers.... hence no recent posts. I've decided to give this blog a holiday, until January 5th. I wish you a happy holiday... snow if you like snow, and no snow if you get trapped in it... I'll be back with some more recent readings in software development in 2009. I'll be dropping into FaceBook as "Richard John Botting" and LinkedIn as well... I'll probably change the "look and feel" of this web site during the break. See you next year. . 2008-12-11 Thu Dec 11 15:12 Computability Here is a nice introduction to current thinking on problems that have no computer solution, or have known efficient solution. It is as well for a practitioner to know, in advance, that certain problems are effectively off-limits. .Open Lindley08 David Lindley The Limits of Computability Commun ACM V51n11(Nov 2008)pp17-19 .See http://doi.acm.org/10.1145/1400214.1400219 =SURVEY THEORY P=NP SUDOKU HARD Nash Equilibria Brains NEUROSCIENCE Interesting problems have solutions that are easy to check, but not before you have found one. .Close . 2008-12-10 Wed Dec 10 19:12 Social Networks Several entries in this blog in the last year have been about social networks. It is an interesting topic especially now that we have systems that are driven by social networking. My interest is also because of an important principle that I've never seen stated before -- even though it is one that I have used it for decades. This is the .Key Principle of Software Eversion. It states that any important question or property of a piece of software can be everted to become a question or property of the environment in which the software operates. Thus by investigating the environment we learn properties that can be .Key everted -- turned inside-out -- to derive the structure of the software. Thus the question: how can a web site grow by volunteer contributions without being perverted to other purposes can be everted to ask what social networks have been and are successful. In particular, I want to open up parts of this site, but not lose its focus of software and mathematics. The idea of `eversion` and turning software inside-out comes from William Gibson's `Neuromancer` series and more recently in `Spook Country`. I'm not sure I've got what he means. My use here, is my own. Anyway, enough of me. Here we have two items on social networks. One historical and the other statistical. They agree with other observations documented below, see $Nexus, $Kleinberg08, $Shirky08, and $Weber05. .Open Grier08 David Alan Grier Edward Elgar's Facebook Page IEEE Computer Magazine V41n11(Nov 2008)pp6-8 =ESSAY SOCIAL NETWORKS SCIENCE invisible colleges Email cell-phones How "Pomp and Circumstances" became the graduation song because of Elgar's social network. invisible_colleges::="Concluded that loosely organized groups drive scientific research", Derek de Solla Price 1960s. Connection can have different strengths. Weak connections can be important -- if they distribute a message widely or allow wide collection of data. Maintaining an invisible college can take time and travel. .Close .Open Huberman08 Bernardo A Huberman Crowdsourcing and Attention IEEE Computer Magazine V41n11(Nov 2008)pp103-105 =SURVEY WEB/NET OPEN SOURCE WIKI SOCIAL NETWORKS HP Labs YouTube Digg Twine FaceBook Google MySpace The publish and filter model. Many casual contributors and a core ofcommitted editors. Social capital: payment in the form of attention. Distribution of attention is highly skewed: just a few get nearly all the attention. law_of_surfing: probability of `n` pages being surfed declines rapidly with `n`. Google position. Book recommendations: different areas have different types of networks. .See http://www.cs.cmu.edu/~jure/pubs/viral-ec06.pdf Social structure influences the flow of Information. Attention tends to lead to more attention via the networks. But once an item is no longer novel, attention to it declines. Stats on Digg sites. Attention is log-normal and decays slowly as a stretched exponential. Similar patterns with traditional published papers. Possible effects of style, popularity, ... .Close . 2008-12-10 Wed Dec 10 10:12 Hiatus Over Well the servers are all running.... and I can now update my web pages/blogs/grades/.... However, I've left my special "computer"/"VDT" glasses at home. My normal glasses are bifocal and when I look at a computer screen my neck is stretched and twisted enough to make it hurt. In time this gets rather bad and I have to stop. So "Normal service will be resumed as soon as possible". . 2008-12-09 Tue Dec 12 10:17 Hiatus The CSE dept servers went down over the weekend. The web server is up but the lab machines and the SSH server is still off line. As a result I'm suspending my usual week day editions of this blog. . 2008-12-05 Fri Dec 5 14:12 Graphics for Large Data Sets Here is a topic that fascinates me: methods and tools for representing complex data using graphics. The paper below describes a new system: .Open StolteTangHanrahan Chris Stolte & Diane Tang & Pat Harahan Polaris: a system for query, analysis, and visualization of multidimensional databases Commun ACM V51n11(Nov 2008)pp74+75-84 =DEMO GRAPHIC DATA TOOL SQL Tableau ALGEBRA VISUAL QUERY LANGUAGE Introduced by Jim Gray. applied to software, GIS, etc. Previous version: IEEE Trans Visualization and Computer Graphics V8n1(Jan 2002)pp52-65 .Close By the way -- this is the first of these bibliographic items to be written on my iPod and eMailed to my work address, and cut and pasted into these files. I'm wondering why there is no copy/paste on an iPod. This changes the way it is used drastically. . 2008-12-04 Thu Dec 4 14:12 Shapes of Social groups and networks First a fun application for FaceBook people: Nexus::=http://nexus.ludios.net, in return for giving it your face book data it draws a graph of the connections between your frinds. Very interesting. I found it illustrating the following article: .Open Kleinberg08 Jon Kleinberg The Convergence of Social and Technological networks Commun ACM V51n11(Nov 2008)pp66-72 .See http://doi.acm.org/10.1145/1400214.1400232 =EMPIRICAL 6DEGREES SMALL WORLDS GRAPHS WEB/NET Milgram SOCIOLOGY CONTAGION MIMETICS IDEAS Evidence that real social networks are "small worlds" as predicted. Evidence that ideas spread in jagged trees through the network. "Contagion as a Design Priciple" .Close . 2008-12-03 Wed Dec 3 14:12 History of Open Source F/OSS It appears that the computer industry started out sharing source code and is now returning to that model. The history makes it clear that it is hard to predict the future. .Open Campbell-Kelly08 Martin Campbell-Kelly Historical Reflections -- Will the future of software be open source Commun ACM V51n10(Oct 2008)pp21-23 .See http://doi.acm.org/10.1145/1400181.1400189 =HISTORY 1950s-2000s OPEN SOURCE F/OSS Initially source code was distributed with the executables and libraries. Unsuspected technologies have and will disrupt predictions. .Close . 2008-12-02 Tue Dec 2 13:12 Data Models and PDAs I'm in the midst of shifting platforms for my PDA. I've had some kind of personal data assistant since the 1980's. I'll be writing about the history going back to a paper I presented in 1985 on the agile way that I developed code for a TRS Model 100 laptop. Meanwhile I'v discovered that a Palm Pilot is the procrastinator's best friend -- it is so easy to write up a task "to do" and repeatedly put it off. Even worse is the 1Mb of memoranda of thoughtd, facts, formula, etc that I can not easily move from a Palm to an iPod. Why? Because the note application on the iPod does not synchronize to a readable desk top application. So I can't just transfer Palm memos to iPod Note. The iPod has no Copy/Paste feature. So you can not easily move notes into the calendar or from calendar to notes, Email or a Web form.... So I'm starting to move public data from my memos to the web where I can get read it on the iPod. See .See ./samples/reference.html for the first 100 or so random notes... All these problems come from the different data models betwen Palm and iPod. There is an architectural mismatch between an evolved PDA and a evolved MP3 player/Cell Phone. This the kind of observation made by Wilde and Glushko below: .Open WildeGlushko08b Erik Wilde & Robert J Glushko Document Design Matters Commun ACM V51n10(Oct 2008)pp43-49 .See http://doi.acm.org/10.1145/1400181.14001945 =ESSAY DATA MODELS DOCUMENTS EVOLUTION WEB Web applications evolve. Not top-down design. Can not have a "one true model". Must connect to different models adopted by different subsystems. XML doesn't make it easy to share data. See .See WildeGlushko08 below REST::="REpresentational State Transfer". Need to involve the consumers of data in the design of documents. .Close . 2008-12-01 Mon Dec 1 13:12 New Code Exploring Tools I've always found the UNIX tool set (see .See Kernighan08 below) plus the ability to speed read an effective toolset for understanding code. Prior to UNIX I once found myself hopelessly lost inside 8K of machine code -- numerical machine code -- no labels or mnemonics -- just numbers. I was drawing page after page of flowchart when I was saved by a professor who asked me what I was doing.... and suggested I ask the company for the documentation. Which I did -- pseudocode. Very helpful. But these days I guess I'd use more complex tools. Here is a recently reported pair: Doxygen and DTrace. .Open Neville-Neil08b George V Neville-Neil Code Spelunking Redux Commun ACM V51n10(Oct 2008)pp36-41 .See http://doi.acm.org/10.1145/1400181.1400194 =DEMO TOOLS CODE Doxygen DTrace .Close . 2008-11-26 Wed Nov 26 14:11 Mashups and reuse Just before this blog takes a holiday break he is a source of information on the ancient but dishonourable activity of making software by combining components that were not intended to be connected. IEEE Software Magazine has had a special issue on creating software by combining components that were not design to work together. An interesting discussion of a process that has existed for decades and is growing more powerful and prevalent. .Open NcubeEtal08 Cornelius Ncube & Patricioa Oberndorf & Anatol W Kark Opportunistic Software Systems development: Making Systems from what is available IEEE Software Magazine V25n6(Nov/Dec 2008)pp38-41 =EDITORIAL OSSD POSTMODERN MASHUPS LEGACY REUSE OSSD::="Opportunistic Software Systems development". Introduces a special section -- pages 42-83. Comparison with "Junkyard wars"/"Scrapheap challenge". Argues that the market forces the assembly of systems from components that where not intended for combination or even reuse. Tends to require a different process: ad hoc, experimental prototyping, scavenging, attending to mismatches, smart engineering, creativity, innovation, imaginative gluing software pieces together. Need to develop combinations and negotiate requirements later about gaps with stakeholders. Architecture tends to evolve. Risk of architectural mismatches (Boehm). Mostly treat components as black boxes. Testing "is the main disadvantage". Need for fast release, collaboration, cooperation, and negotiation. Good for startup companies. Need a different curriculum -- closer to traditional engineering -- with more systems setup support(Obrenovic & Gasevic & Eliens). (dick)|- in one sense nothing new here, but an acknowledgment of an existing process. Also see .See [BoehmBhuta08] .See [Jansen08] .Close .Open BoehmBhuta08 Barry Boehm & Jesal Bhuta Balancing Opportunities and Risks in Component-based software development IEEE Software Magazine V25n6(Nov/Dec 2008)pp56-63 =IDEA =EXAMPLE JPL PROCESS INCREMENTAL COMMITMENT ITERATION RISKs STAKEHOLDERS ICM::acronym="Incremental Commitment Model", ICM::lifecycle=exploration; valuation; foundations; develeopment & foundations; do(Operations & Development & Foundations ). Mentions example of an architectural mismatch leading to a 4 times over-run, taking 5 person-years rather than 1. .Close .Open JansenEtal08 Slinger Jansen & Sjaak Brinkkemper & Ivo Hunink & Cetin Demir Pragmatic and opportunistic Reuse in Innovative start-up companies IEEE Software Magazine V25n6(Nov/Dec 2008)pp42-49 =EXAMPLES 2 STARTUPs OSSD POSTMODERN ASSEMBLY MASHUP Page 43 has a useful table and figures showing 8 different ways components can be connected. how_to_mashup::=following, .List Send object through filter. Use method calls. Write glue code. Components share a data object or data base Use a component bus like CORBA Use a plugin architecture as in Java and Eclipse. Use network and services -- MySQL, SOAP, ... Enterpise service bus passes calls to best component to provide service. .Close.List .Close . 2008-11-25 Tue Nov 25 13:11 Reality Bytes This from the "Blinding glimpse of the obvious" department. It turns out that programmers are less than honest when estimating projects and reporting progress, and other things. .Open GlassRostMatook08 Robert L Glass & Johann Rost & Matthias S Matook Lying on Software Projects IEEE Software Magazine V25n6(Nov/Dec 2008)pp90-95 =POLL LIES ESTIMATION STATUS REPORTS ETHICS Lies observed: Estimation(commonest), Status Reporting, Politics, Hype(rarest). .Close . 2008-11-24 Mon Nov 24 14:11 A dose of reality about software process improvement I turns out that not every body is madly enthusiastic about software improvement -- some people resist it. Even people on an process improvement team can work to slow the process. It was ever thus.... but it is nice to see empirical evidence published in a reputable magazine about software development. .Open SandbergMathiassen08 Anna Borjesson Sandberg & Lars Mathiassen Managing Slowdown in Improvement Projects IEEE Software Magazine V25n6(Nov/Dec 2008)pp84-89 =EXAMPLES HOW PEOPLE OPPOSE IMPROVEMENT People can: not show up, delay answers, say nothing, not implement. Two factors: commitment & motivation >< allocation of personal resources. Proposes techniques for each problem. Example: if people don't show up -- go to them, measure and report participation, replace them, perhaps reorganize the team... .Close . 2008-11-21 Fri Nov 21 15:11 A tool to help program maintenance .Open Robilard08 Martin P Robilard Topology Analysis of Software Dependencies ACM TOSEM Trans Software Eng & Methodology V17n4(Apr 2008)#17pp1-36 .See http://doi.acm.org/10.1145/13487689.13487691 =DEMO TOOL SOURCE CODE CROSS-REFERENCE SPECIFICITY REINFORCEMENT FUZZY SETS Suade Eclipse Java Plugin Java ConcernMapper Azureus BitTorrent Given fuzzy set of items of interest gives most relevant items highest membership in set of cross references. Most important are listed first -- have more membership in relevant items set. References are weighted by their .Key specifity and .Key reinforcement. Defines an different fuzzy set union: (A or B)(x) = A(x)+B(x)-A(x)*B(x). (dick)|- Looks like probabilities rather than fuzziness! Evidence that tool is useful. .Close . 2008-11-20 Thu Nov 20 15:11 Unconferences Here is a novel idea -- a conference where people don't get bored listening to prepared powerpoint presentations.... .Open Ingebretsen08 Mark Ingebretsen Unconferences catch on with Developers IEEE Software Magazine V25n6(Nov/Dec 2008)pp108-110 =REPORT SELF-ORGANIZING MEETINGS ORGANIZATION PEOPLE FOOcamps BarCamp DemoCamp Web2Open openspace meetings Eclipse Microsoft Canada Tools for planning, problem solving, and product invention and development. 1983 Harrison Owen: why not a conference made up of coffee breaks only ----> Open Space Technology. More done in two days than months done other ways. Wiki .See http://www.barcamp.org Several frameworks. Before: announce a real important goal. Initially participants list issues to meet goal. People select breakout sessions on issues. Breakout session activity is recorded. Records put on Wikis and/or blogs. Groups may report back in a plenary session. "You need to have places where people can just bump into each other". .Close . 2008-11-19 Wed Nov 19 20:11 Proofs by Computer in Mathematics I picked up the following reading in my ACM Technical News Emailing. .See http://www.eurekalert.org/pub_releases/2008-11/ams-pbc110608.php It appears that mathematicians have been forced by the complexity of the proofs they are writing to use computer programs to verify the proofs. It turns out that the best of the programs act as proof assistants helping the user to discover the necessary methods and lemmas to make a proof. This is very much a feature that I've desired for my MATHS system. It was designed so that you write proofs and check them automatically. I've been looking for some graduate student to develop the parser and checker. Meanwhile it turns out that there are a half-a-dozen popular proof assistants being used to prove non-trivial theorems. The links in the citations below. I had hopes of a gigantic repository of MATHS results on the web to make the construction of proofs easier -- compare with $QED below. Another parallel is the use of a theory of types in $HOL_light, $Coq, and my own $MATHS. I'm hoping that $MATHS may give more readable proofs than the ones described in these papers. I have samples .See ./samples/index.html#Some%20Simple%20Examples%20of%20Math%20in%20Use (for example) and .See ./maths/logic_20_Proofs100.html (informal hints) and .See ./maths/logic_25_Proofs.html (rules). .Open EditorU08 Unknown Editor Special Issue on Formal Proof Notices of the American Mathematical Society V55n11 (Dec 2008) .See http://www.ams.org/notices/200811/ =EXAMPLES FORMAL PROOFS MATHEMATICS Includes $Hales08, $Gonthier08, $Wiedijk08 (below). .Close .Open Hales08 Thomas Hales Formal Proof Notices of the American Mathematical Society V55n11 (Dec 2008) .See http://www.ams.org/notices/200811/tx081101370p.pdf =EXAMPLES HOL Light FORMAL PROOFS MATHEMATICS ZFC TYPES Good discussion of the philosophy of formal proofs and HOL Light in particular. Difficult theorems can have 1728 pages for an informal proof and take decades to write. Provide formalizations can take years. DeBruijn_factor::=`Length of a formal proof`/`Length of a conventional proof`. List of 12 "real" theorems that have got formal proofs. Description of $HOL_light. Discussion of full automation and automated discovery of theorems. Coq::proof_assistant=http://coq.inria.fr/. HOL_light::proof_assistant=http://www.cl.cam.ac.uk/~jrh13/hol-light/. Isabelle::proof_assistant=http://isabelle.in.tum.de/. Mizar::proof_assistant=http://mizar.org/. ProofWeb::online_proof_assistant=http://prover.cs.ru.nl/login.php. QED::manifesto=http://www.cs.ru.nl/~freek/qed/qed.html. .Close .Open Gonthier08 Georges Gonthier Formal Proof -- The Four-color Theorem Notices of the American Mathematical Society V55n11 (Dec 2008) .See http://www.ams.org/notices/200811/tx081101382p.pdf =EXAMPLE Coq 4COLOR FORMAL PROOFS MATHEMATICS TYPES This formal proof of the famous four-color theorem uses Combinatorial Hypermaps not Graphs! Coq and the calculus of Inductive Constructions (CiC). Inference subsumed into type inference? .Close .Open Wiedijk08 Freek Wiedijk Formal Proof -- Getting Started Notices of the American Mathematical Society V55n11 (Dec 2008) .See http://www.ams.org/notices/200811/tx081101408p.pdf =EXAMPLES Mizar Quadratic Residue =HOWTO FORMAL PROOFS MATHEMATICS TOOLS Describes the leading proof assistants and theorems that have been proved. Describes how to get the tools and use them. .Close . 2008-11-18 Tue Nov 18 15:11 More on Ruby on Rails Just a demonstration of how easy and simple it is to implement a simple web-based application using the "Ruby on Rails" framework/platform. Note -- I hear that this approach does not scale to applications that do not follow the commonest paradigms. For details on Ruby see the links on .See ./samples/languages.html#Ruby and for other introductions try .See [Geer06] and .See [BachleKirchberg07] .Open Viswanathan08 Viswa Viswanathan Rapid Web Application Developmnet: A Ruby on Rails tutorial IEEE Software Magazine V25n6(Nov/Dec 2008)pp98-106 =DEMO Ruby Rails WWW/NET MVC .Close . 2008-11-17 Mon Nov 17 16:11 More on WYSINWYG I had another example of $WYSINWYG this morning. I sent of a review of a paper in CACM to Computer Reviews ($CR) and previewed it to see what errors had crept in. I copy/pasted the preview into an EMail and sent it to my work EMail address for my records. When it arrived I found it had about a dozen invisible GIFs in it. The iMac Mail showed them as attachements containing nothing. MS Outlook (at work) got scared an refuesed to open them. Life was a lot easier when the only code was ASCII:-) Meanwhile today was fresher orientation, lunch, seminar, and a heavy editting session on techniques for expressing rules and procedures. Next comes another seminar and a bus ride home to picadillo and a spud. . 2008-11-15 Sat Nov 15 09:11 Update to Previous Entry I delayed adding a link to Matt's flyer until I could find a copy that was not $WYSINWYG. WYSINWYG::="What You See Is Not What You've Got". The PDF of the thesis has an abstract that includes invisible character strings which are hard to detect and difficult (as a result) to replace by the correct strings. I had to log into the campus mail server and dig through my sorted mail to find a WYSIWYG "doc" file and upload that. We also have to more seminars on Monday, see .See ./seminar/ for details of upcoming events. . 2008-11-15 Sat Nov 15 08:11 Yesterday was Busy Friday was full of seminars and so I'm posting this entry one day late. I did think of just jotting my notes into this blog during the presentation but that looks like I'm not focussing on the speaker -- distracting and rude. My day started at 5am by sending a draft review of .See [Henning08] to $CR (Computer Reviews). They have a site that lets you save a draft, print it, review it, spot an improvement, and change it, before you finally submit the review. I find that such an iterative process is the only way I can "write" good stuff. I will return to this theme in a future item on "writing code". But it a similar cycle: draft, render, edit, and submit is built into the tool I developed this summer to send things to this blog and web site. The first seminar was presented by Aram Acemyan who is one of our undergraduates who worked on Bioinformatics at California University, Santa Barbara last summer. His work was developing a tool for comparing a two methods of detecting 3D nuclei. For example it will see whether two humans have found the same nuclei in a photograph or whether a particular algorithm matches a human "Ground truth". His presentation .See ./seminar/20081114AramAcemyan.txt described the iterations his program went through. I was on the committee for the next seminar. Natalie Wiser-Orozco presented .See ./seminar/20081114NatalieWiser.txt her MS CSCI thesis on .Key simulating the movements of planets and comets. She reviewed the development of Kepler's and Newton's laws and how they lead to an extensible piece of software -- using Python and Scilab -- for planetary simulations. This include rendered planets and solving the n-body problem numerically. The model of the Sun, Mercury, Venus, the Earth, and its Moon was run as a demo. A nice piece software and ripe for further growth. For example we all discussed the possibility of running a simulation of the new planetary system photographed recently -- 3 super-large planets orbiting a star only slightly larger than our sun. Then we had lunch. After Lunch: .See ./seminar/20081114.txt Chen-Yu Lin described the application of .Key Reinforcement Learning to playing Blackjack. He showed how a learning algorithm compared with the Greedy algorithm in a simplified version of blackjack. Then Matt Richardson presented his Interdisciplinary Master of Arts thesis: "PYSAFE: AN INTERDISCIPLINARY APPROACH TO INTERFACE DESIGN". .See ./seminar/20081114MattRichardson.txt This surveyed the history of Human-Computer Interaction design and tested out a model process based on the ideas in the literature. First develop a rough mock up of the design, then work on the machinery behind the mock up.... and iterate. This lead to a long discussion of the possible next steps with the software. Interesting -- every project presented used Python .See ./samples/python.html as part of their technology. . 2008-11-13 Thu Nov 13 15:11 The Promise of this blog and website Clay Shirky ($Developing_a_resource next below) notes that a social web site starts with a promise, followed by a tool that facilitates the promise, and if it work, ends up with a more or less explicit social bargain made by the people taking part. I'v been thinking about the "promise" of this web site. I think there are several: .List If you tune in each work day I will share some thought or reading on software development. If you send me a contribution I will (if clean, scamless, and relevant) publish it here with full acknowledgement. .See ./hole.html Researchers and graduate students can serch the bibliography. .See ./lab.html Citations/Reviews can be added to the bibliography -- same method, same promise. You can look at samples of formal definitions and proofs. .See ./samples/ You can add to them -- same deal. .See ./samples/hole.html You can look at the system I use and the logic and mathematics involved. .See ./maths/ You can submit additions and changes to the repository and syntax. .See ./maths/hole.html .Close.List But thinking about the idea of making a hyperlinked corpus of useful information means that there is another way to grow it. This is by linking pages kept on other servers to and from this site. This may be the best way. I'll return to this thought when I review the recent set of articles published by the American Mathematics Society (AMS) on "Formal Proofs". By the way my review of .See [SchneiderSEtAl06] has been published in Computer Reviews October 2008 #0810-0985. Meanwhile.... off to class. . 2008-11-12 Wed Nov 12 18:11 How the net and good design changes the world Clay Shirky's new book is well worth reading if you are planning to put a new "social networking" site up. He describes the rulles and patterns that work, and those that fail. This is an easy to read exercise in sociology. It is to be treasued for the readability alone. .Open Shirky08 Clay Shirky Here comes everybody Penguin NY NY 2008 HM851 S5465 ISBN 978-1-59420-153-0 =EXAMPLES SOCIOLOGY WEB/NET ECONOMICS SOCIAL CAPITAL SMALL WORLDS POWER LAWS Net lowers cost of communication, publication, copying, collaboration to ZERO. So a lot more of all of these. More is Different. Faster is Different. New paradigm: Publish; Filter. Many attempts, failure is free, on the way to one big success. A shared resource needs motivated people and people need Face-to-face meetings. Developing_a_resource::= Promise; Tool; Bargain. Examples: Usenet FlashMobs F/OSS Linux SourceForge Flickr MySpace FaceBook MeetMe EBay Wikipedia Wikitorial Encarta Also see short article .See [Shirky03] .Close . 2008-11-11 Tue Nov 11 06:11 Classic Computer Languages from the past -- PMS and ISP This web log is about software development -- the tools, methods, technologies, processes, and people involved. But today's citations are about describing hardware. I dug them out for a colleague. Evry 5 years or so I go back to these two works. The languages have some novel ideas. So I want to record them here and in my bibliography for future reference. The .Key PMS language describes computer systems at the Processor-Memory-Switch level. It has something of the power of a UML deployment diagram. However it does not show any software artifacts, but has a rich and well defined language for describing the qualities/attributes/properties of the "nodes" in the system. In fact PMS is one of the few computer languages to define a syntax for units so that you can specify a switch as handling `2000 char/s` (in MATHS: 2000.char/sec). This was in my mind when I defined the MATHS system from dimensioned numbers. .Key ISP is the Instruction Set Processor language and is a forerunner for languages like Verilog and VHDL. Two thoughts. .List If you ever need to know about the hardware from 1960-1971 the second citation ($BellNewell71 below) is a definitive survey. If you are a student looking for an independent study, honors project, or masters thesis then I'm willing to supervise work on PMS leading to a description in MATHS in my .See ./samples directory. .Close.List .Open BellNewell70 C Gordon Bell & Allen Newell The PMS and ISP descriptive systems for computer structure Proc AFIPS Spring Joint Comp Conf (??? 1970)pp351-374 .See http://research.microsoft.com/~gbell/CGB%20Files/PMS%20and%20ISP%20Descriptive%20Systems%201970%20c.pdf (PDF) =IDEA HARDWARE DESCRIPTION PMS Processor-Memory-Switch ISP Instruction-Set-Processor Also see .See BellNewell71 for details and examples of ISP and PMS. .Close .Open BellNewell71 C Gordon Bell & Allen Newell Computer structures: Readings and examples McGraw-Hill computer science series circa 1971 ISBN 0070043574 TK7888.3.B37 =EXAMPLES 1960s =SURVEY HARDWARE DESCRIPTIONS Burroughs CDC DEC PDP Deuce KDF9 IBM SDS UNIVAC .Close . 2008-11-10 Mon Nov 10 14:11 PSP TSP Tool I just put my PPI report .See ./PPI08.html online. This report explains what I been doing since my last promotion in the hope of winning a raise. A common managment technique for raising productivity ... even if it seems to slow me down as I collate the data and write the report. Now this is also the complaint made about PSP and TSP. And one of the solutions is to automate the data collection and report generation. There are several tools. I've just been told (thank you Paul Conrad) about this one. Let me know if you have any data. .Open Dashboard08 Project Dashboard Initiative Project Dashboard Sourceforge .See http://processdash.sourceforge.net/ =UNTESTED =TOOL PSP TSP GRAPHIC MANAGEMENT DEFECTS QUALITITES ESTIMATION Notes .Hole .Close . 2008-11-07 Fri Nov 7 10:11 Poppy Day Veteran's Day was called Armistice Day at first. In the UK (where I was born) it is now called Remembrance day. On the 11th of November just about every body buys and wears a little red poppy `in remembrance` of those killed in war. The money donated when you get your poppy goes to support veteran's and widows. .Image poppy.gif A Remembrance Day Poppy The poppy was chosen because of the poppies growing in the battle fields in France during the first world war (1914..1918). They are a symbol of sleep and so death. Please visit .See http://www.poppy.org.uk/ for more information. Meanwhile I plan to change the background of some frames on this web site in memory. . 2008-11-06 Thu Nov 6 14:11 Open Source research needed I've been tracking the Open and Free Source movement for a long while. I've used it since BSD2.9 got our first UNIX mini running on campus here in the 1980s. I've collected several dozen books, articles, and papers... and yet according to Carlos Santos there are so many things that we don't know -- like who is really doing the work and what corporations get out of letting their people work on an open/free project. .Open Santos08 Carlos Santos Jr. Understanding Partnerships between Corporations and the Open Source Community: A Research gap IEEE Software Magazine V25n6(Nov/Dec 2008)pp96-97 =SURVEY OPEN SOURCE Sourceforge Research has focused on volunteers not on employees encouraged to work on open source. Similarly literature is about companies letting their source code `go open`. No research showing where the effort com es from and how it translates into profits. .Close . 2008-11-05 Wed Nov 5 14:11 Catching up with Requirements History As noted below, I missed recording some research that $Maiden08 considers very important. So I have back tracked to it to see why. It turns out that this was in the area of modeling the stakeholders "Reality" and that I have papers on the need to do this -- including ontologies before they were ontologies -- back to the late 1970's. So the following provide evidence of the value of this approach. The second item is a retrospective on the technique and mentions the need for what I've been calling "Qualities" as part of the requirements -- again since the 1970's. .Open BorgidaGreenspanMylopoulos85 Alexander Borgida & Sol Greenspan & John Mylopoulos Knowledge Representation as the Basis for Requirements Specifications IEEE Computer MAgazine V18N4(Apr 1985)pp82-91 .See http://doi.ieeecomputersociety.org/10.1109/MC.1985.1662870 =ESSAY MODEL REALITY PURPOSE Object-Oriented AI ONTOLOGY parts IS-A TIMES RML Also see what happened .See [BorgidaGreenspanMylopoulos94] .Close .Open BorgidaGreenspanMylopoulos94 Alexander Borgida & Sol Greenspan & John Mylopoulos On formal requirements modeling languages: RML revisited SIGSOFT Proceedings of the 16th international conference on Software engineering pp135-147 .See =HISTORY RML MODEL REALITY PURPOSE Object-Oriented ONTOLOGY GIST KAOS Also see .See [BorgidaGreenspanMylopoulos85] Need QUALITIES -- non-functional requirements NFRs. .Close . 2008-11-04 Tue Nov 4 14:11 Interaction Design -- a history The word `design` is highly overloaded. It can mean a process or a product. When applied to software it can indicate the user's view of the product or the internal structure of the product. One of the clearest thinkers (and best writers) has just been interviewed about his contribution to "outside design": how to make the conversation or interaction between a machine and a human something that is good rather than bad. .Open Patton08b Jeff Patton A Conversation with Alan Cooper: The Origin of Interaction Design IEEE Software Magazine V25n6(Nov/Dec 2008)pp15-17 =INTERVIEW SOFTWARE DESIGN INTERACTION HCI VB Visual Basic Prototype PEOPLE TECHNOLOGY "it's creativity all the way down". Principles_of_interaction_design::={Efficacy, Conceptual Integrity, Grammar structuring primitives, Mapping control to use, Trustworthiness, Engagement}. See .List The Inmates are running the asylum .See [Cooper99] About Face .See [Cooper95] .Close.List .Close . 2008-11-03 Mon Nov 3 10:11 Requirements -- a History Neil Maiden has put together an excellent history of the theory and practice of requirments engineering. Most enjoyable and indicating that some things I've missed over the years -- in particular the spread of AI techniques into the techniques for expressing what stake holders wnat and need. In the folloiwng I've added links to items in my bibliography that may not be the same as the ones that Maiden cites. Where thre are no links there is an oportunity to add some items to my bibliography -- click here .See ./hole.html if you can fill in the gaps, and your work will be acknowledged in this blog and add to the 4k items in the bibliography. .Open Maiden08a Neil Maiden Requirements 25 years on IEEE Software Magazine V25n6(Nov/Dec 2008)pp26-28 =HISTORY 1983-2008 REQUIREMENTS 14 references 1970s: Requirements were monolithic and used natural language with "noise, silence, contradiction, ambiguity, and wishful thinking". VDM .See [Bekic70] and JSP .See [Jackson75] available but not used. Pencil and Paper 1977: Ross .See [Ross77] developed SADT notation (IDEF) and method .See [Ross85] and story telling. 1978: .See [Jackson78] System maintains a model of reality. Leads to JSD in the 1980s 1979: DeMarco .See [DeMarco79] , Gane&Sarson .See [GaneSarson79] , Yourdon .See [Yourdon75] & Constantine. DFDs. Logical vs Physical. STDs. Functional decomposition. Informal diagrams. structured analysis and design. First CASE tools help draw informal graphics. 1980s: Greenspan. Semantic networks, logic, frames model knowledge about situation. RML: the model is collection of objects of different types. Ontology: entities, activities, assertions. Leads to TROPOS, i*, KAOS (Knowledge Acquisition in Automated Specification). Goals and Constraints. Expert systems. 1980s: Stakeholders have difficulties articulating requirements. So, repertory grids, card sorting, Laddering. 1990s: Ethnography, HCI. Complexity of the working environment. 1998: Beyer & Holtzblatt .See [BeyerHoltzblatt94] .See [BeyerHoltzblatt95] : Contextual enquiry. 1999: Vicente: Cognitive work Analysis 2004: .See [MaidenGizikisRobertson04] : Inventing requirements. Today: better at identifying stakeholders, use cases and scenarios, quality requirements, reasoning about natural language, multiply viewpoints, detecting and handling conflicts, social techniques, Tracing requirements, tailoring to different domains, training analysts. Meanwhile: We are tackling larger and more complex systems. Also see .See [Maiden05] on requirements research. .Close . 2008-10-31 Fri Oct 31 13:10 Old tools still useful Sometimes it is very comforting to read that someone else agrees with you. Especially if that person is a well respected expert who does not know you. Hence my pleasure in Brian Kernighan's contribution to the celebration of IEEE Software's 25th Anniversary, below. I'd add a single thought: he uses these tools for handling code. I've also used them for analysis and design. As long as you stick to a line oriented format -- tables with tabs between columns, one short sentence or formula per line -- then the UNIX tools are still powerful and helpful. I'd also add `sed` and `awk` to his list. Then you can do Keyword In Context (KWIC) searches which are very handy... .Open Kernighan08 Brian Kernighan Sometimes the Old Ways are best IEEE Software Magazine V25n6(Nov/Dec 2008)pp18-19 =HISTORY PROGRAMMING Old tools still good and useful: grep, diff, sort, wc, find, shell scripts Good tools: do something better than manually, available everywhere, can be used creatively, not to specialized or intelligent. Need for tools to ashare a uniform representation -- for example ASCII. "I can often have the job done while experts are still waiting for the IDE to start up." .Close . 2008-10-30 Thu Oct 30 06:10 Sorry for the Vanishing Home Page It looks like that on October 28th I used the wrong tool to create my home page -- and removed a fair chunk of it. I make occasional back ups of my web pages and backtracked to a 2006 version ... that may have some broken links. The result has been uploaded and can be seen at .See ./index.html in the maion "body" frame. Let me know if you spot any broken links. . 2008-10-29 Wed Oct 29 09:10 Grammars used in Model Checking I've been arguing for using grammars in the analysis and design of systems and software since I was trained in `Jackson Structure Programming` in 1979. Prior to that I just use them for language design and translator construction. Basically a grammar is a natural way to define the possible patterns of data fowing in and out of a process. Further, using some sophisticated coding techniques, the grammars lead directly to a structure for the code that is guaranteed to work -- and reflect the client language and data. Pretty cool. But it is not inexpensive, needs special training, and the code is `interesting`. If you'd like to see what I mean try .See ./tools/br.ansi.c a C program to word-wrap (BR-eak) a piece of text. The structure of the program reflects two grammars that can be drawn like this .See ./tools/br.d.in.jpeg and .See ./tools/br.d.out.jpeg while the whole derivation of the code (using $MATHS) is in .See ./tools/br.d.txt and .See ./tools/br.d.html (rough HTML). Now someone have found another way to use grammars. You can express the possible calls and returns to an Application Programmers Interface and check that software is following the rules: .Open HughesBultan08 Graham Hughes & Tevlik Bultan Interfaces Grammars for Modular Software Model Checking IEEE Trans Software Engineering V34n5(Sep/Oct 2008)pp614-632 =DEMO GRAMMAR INTERFACE MODEL CHECKING EJB TOOL JPF Uses nested context free grammars with semantic elements <>. Meaning as traces including calls and returns from methods using structural operational semantics -- derivation rules. Interface grammar language.... Describes how EJB Persistance API is used. Algorithms for model checking. Experiments -- some executions took 13 seconds. .Close . 2008-10-28 Tue Oct 28 20:10 Avoiding decaying qualities Tom Gilb used to say that `Software Rusts`. It is what in England is called `Plumber Rot`: the legitimate work of maintaining a system leads to its structure being weakened. Tus we get a `bath tub curve` for costs. But we can also improve the structure of software by refectoring it. We can also bring up other qualities: performance, security, reliability, etc. by putting effort into it. So why not include test of qualities in regression testing to tell us what goals are not being met and give clues as to where to improve the software? .Open Cleland-HuangMarreroBerenbach08 Jane Cleland-Huang & Will Marrero & Brian Berenbach Goal-Centric Traceability: Using Virtual Plumblines to maintain critical Systemic qualities IEEE Trans Software Engineering V34n5(Sep/Oct 2008)pp685-699 =CASESTUDIES REGRESSION TESTING QUALITIES KAOS QAM SIG SOFTGOALS i* ATAM GCT GCT::acronym="Goal Centric Traceability". Put tests for qualities into regression testing and derive tests from goals. Tests can be done statically or by running code. But are automatically traced to impacts on quality goals. QAM::acronym="Quality Assessment Methods", These may be manual or automatic. They can be: executable models(simulations), Manually evaluated models, Runtime monitors, or test cases. Develops from .See [Cleland-HuangEtAl07] .Close . 2008-10-27 Mon Oct 27 18:10 Network Externalities Back when the first telephone companies were starting economists made a new discovery. The value of signing up with a particular company increase with the size of the network. This applies strongly to mass marketted software. The more people use a particular word processor the more value there is in buying that piece of software. See .See [Botting95b] and .See [Botting97a] for instance. Here is another example. The tremendous number of people using the current Internet (protocol IPv4) blocks the adoption of the new IPv6 protocol. People prefer incremental patches to keep the old Internet running. Whereas the standards seem to expect a completely change over -- until recently. .Open Geer08 David Geer To Boost Adoption IPv6 Proponents Back Once-Shunned Technology IEEE Computer Magazine V41n10(Oct 2008)pp16-19 =EXAMPLE TECHNOLOGY CHANGE IETF INTERNET PROTOCOL IPv6 (128 bit +authenticating and encrypted packets) may be better than IPv4 (32 bit). No need for DHCP with IPv6. But it is not being adopted. So standards body is allowing an new architecture using network-address Translation (NAT). Uses dual-stack routers. (dick)|- network externalities strike again. Converse of the inventors dilemma. .Close . 2008-10-25 Sat Oct 25 06:10 Updated list of Masters Projects If you are looking for a graduate project to carry out at CSE CSUSB, checkout .See ./project.html on this web site. . 2008-10-24 Fri Oct 24 17:10 Most dangerous blog Seems that some people really don't like the link in the next entry. See .See http://www.codinghorror.com/blog/archives/001178.html which also has a comparison of two ways of compressing files. . 2008-10-23 Thu Oct 23 11:10 The One Thing Every Software Engineer Should Know Again Jeff Atwood nails it. And he reads dirty books.... .See http://www.codinghorror.com/blog/archives/001177.html go and find out the one skill you need as a programmer that you've never expected to need. . 2008-10-22 Wed Oct 22 19:10 Quality is Job 1 Here we have an article that shows hoe tackling qualities first give rise to a less tangle and "slimmer" architecture. This is not new -- books have been written on the topic. .Open SangwanLinNaill08 Ragvinder S Sangwan & Li-Ping Lin & Colin J Naill Structural Complexity in Architecture-centric Software IEEE Computer Magazine V41n10(Oct 2008)pp96- =EXAMPLE QUALITIES DRIVE MODULE STRUCTURE fat tangles Tangle::=`dependencies that form cycles`. Fat::=`cyclomatic complexity of dependency graph`. Better structures have no `tangles`, few dependencies, and minimal `fat`. Express qualities as scenarios and assign business and developer priorities. Refactored structure to handle each scenario in order of priority. Claim: New architecture better than old. Compare with .See [Larman98] UP and .See [KrollKruchten05] RUP. .Close . 2008-10-21 Tue Oct 21 14:10 Estimation does not get better We have known for a long while that it is difficult to estimate how long a software project will take. Partly this comes from expecting software development to be like building a house when it is often more like walking through a minefield. But another source is the low estimation skills of programmers. Humphey's "Personal Software Process" (PSP) tackles this head on with many forms and statistics. The following paper shows that giving feedback on the accuracy of estimates doesn't improve later estimates. .Open GruschkeJorgensen08 Tanja M Gruschke & Magne Jorgensen The Role of Outcome Feedback in Improving the Uncertainty Assessment of Software Development Effort Estimates ACM TOSEM Trans Software Eng & Methodology V17n4(Apr 2008)#20pp1-35 .See http://doi.acm.org/10.1145/13487689.13487693 =EMPIRICAL ESTIMATION FEEDBACK Letting programmers see their estimation errors does not help them improve their future estimates -- especially if they use intuitive prediction methods. .Close . 2008-10-20 Mon Oct 20 20:10 More on E-speranto and logic As I predicted .See 2008-08-27 Wed Aug 27 13:08 An ancient controversy -- universal languages Neville Holmes has got a reaction to the use of a variation of Esperanto as an intermediate language for computers and Europe. In IEEE Computer Magazine V41n10(Oct 2008)pp6-7 Letters Patrick Durusau notes that people add ambiguity and idiosyncracies to any language they use -- including mathematics. But Holmes replies that usage as an intermediate language should stop semantic drift and creative inconsistencies. I'm updating the bibliographic item .See [Holmes08] to include the correspondence. I, personally find it interesting that Durusau note the different meaning given mathematical terms in different papers -- something that, perhaps, an online and formal repository of definitions .See ./maths/ might help. . 2008-10-18 Sat Oct 18 10:10 Types and Programming Languages Matt Richardson just posted (on my FaceBook Wall) a link to a description of the following book. I don't want to forget about it and may be able to use it in one of my classes. So the following is a place holder which I hope will expand. .Open PierceB02 Benjamic C Pierce Types and Programming Languages MIT Press (Feb 2002) ISBN 0262162098 =UNREAD THEORY DEMO ML TYPE SYSTEMS Praised .See http://www.briangoetz.com/blog/?p=58 More.... .Hole .Close . 2008-10-17 Fri Oct 17 15:10 Debugging tools for formal methods It is interesting that people are developing tools that let you find defects in formal specifications of software. Initially we thought that it was easier to get specifications correct than it was to program code that fitted the specification. But now we have Daniel Jackson's work on Nitpick and the Alloy language and tools that check properties of specifications. A recent example is in this publication: .Open HenkelReichenbachDiwan08 Johannes Henkel & Christoph Reichenbach & Amer Diwan Developing and Debugging Algebraic Specification for Java Classes ACM TOSEM Trans Software Eng & Methodology V17n3(Apr 2008)#14pp1-37 =CASESTUDIES TOOL DEBUG SPECIFICATIONS vs JAVA CODE TECHNICAL Formal specifications need debugging. A tool helps. .Close . 2008-10-16 Thu Oct 16 17:10 Software Reliability Increases Under Usage The following result fits with my experience. It also sounds paradoxical -- especially when seen from the normal point of view that reliability is a property of software. In this case there is clear evidence that a piece of software gets more reliable -- without being changed -- as it is used. In otherwords reliability is a relationship between a user (who can learn) and the software they are using. .Open JaloteMurphySharma08 Pankaj Jalote & Brendan Murphy & Vibhu Saujanya Sharma Post-release reliability Growth in Software products ACM TOSEM Trans Software Eng & Methodology V17n4(Apr 2008)#17pp1-20 .See http://doi.acm.org/10.1145/13487689.13487690 =EXPERIENCE RELIABILITY USAGE Users learn to work round the bugs. Proposes and tests model based on Failure_rate:=transient_failure_rate + steady_state_failure_rate. transient_failure_rate:= \lambda * \alpha**(-time_in_use). Model fitting handles the time when the product is sold -- monthly sales. .Close . 2008-10-15 Wed Oct 15 14:10 PhDs Found Useful Some one researched the technology of a current hot market and traced back where the ideas come from. It turns out the academic graduate theses are used in industry.... but it take 20 years for the ideas to become common mainstream technology. .Open EmmerichAoyamaSventek08 Wolfgang Emmerich & Mikio Aoyama & Joe Sventek The Impact of Research on the Development of Middleware Technology ACM TOSEM Trans Software Eng & Methodology V17n4(Apr 2008)#19pp1-48 .See http://doi.acm.org/10.1145/13487689.13487692 =SURVEY HISTORY MIDDLEWARE J2EE CORBA IBM BEW Oracle Nicrosoft Tibco Websohere RMI .NET etc RESEARCH PhDs 20 year lag between academic research and large mainstream market. PhD. Theses are important! .Close . 2008-10-15 Wed Oct 15 09:10 CSUSB is open . 2008-10-14 Tue Oct 14 17:10 Source code is a design document This is an interesting, and until recently highly controversial point of view. Indeed I'm sure that some will continue to reject the proposed theory until they die. .Open Reeves05 Jack W Reeves Code as Design: Three Essays developer.* Magazine .See http://www.developerdotstar.com/mag/articles/PDF/DevDotStar_Reeves_CodeAsDesign.pdf =ESSAYS TECHNICAL CODE DESIGN Three essays: "What Is Software Design?"(1992), "What Is Software Design: 13 Years Later"(2003), "Letter to the Editor"(1992). In engineering, design process is not complete until something has been built and tested. Engineering design is creative, and delivers instructions to build a product. The instructions can be carried out almost automatically. Evidence: Toyota, Motorola, Boeing, Lockheed. However, building and testing is many times cheaper for software than in traditional engineering. Verification expensive.. So, Software design should include build and test as part of an iterative loop. Source code is the design document. All previous documents are untested and so not reliable enough to be `the design`. But other documents are also needed. Example: unused domain information. Example: architecture. Source code ( =the design) is complex & evolving. Software is more like a society or organic system than a machine. So, Software design is an exercise in managing complexity. We therefore need good thinking about architecture and design before coding, but this must be checked by building and testing before it is reliable. No part of the process is complete by itself: think, code, build, and test are an essential (repeated) cycle of parts in software design. "We need good architecture[...] abstractions[...] implementations" but "we have not completed the process until we have written `and` tested code. Analogy: can you cross the river on the design for a bridge? Or does the design define how to build the bridge? "[...] programmers are not assembly line drones." "Less Able Programmers": do you want less able doctors? [you can't] substitute process for intelligence, aptitude, and experience." Why do we perceive debugging as wasted time? Early (traditional) design work is often needed but not complete until tested -- "first rough sketches". True design must reflect the structure of the product: hence high level source code. "designing software" <> "a software design". Process is not artifact. Comments are not adequate -- auxiliary documentation is more important than in other disciplines. Repeated phrase: "Any pretense otherwise is just silliness". "[...] if we could just find the right graphical design notation[...] I disagree." Engineering is about process not about whether we use CAD to render it. Focus on improving the (programming , debug, test) cycle. Does not note Petroski's examples of disasters where there where undocumented changes between the design and the actual object that was built. Compare with a recent interview .See [Shustek08] with Donald Knuth. .Close . 2008-10-14 Tue Oct 14 11:10 Campus Closed but... I'm telecommuting today since the campus is closed down. Watching my Email. Thinking about how to repair the dama to .See ./cs372/ schedule. I'll hold my office hours (2-3pm) online if everything goes as planned. I've dug up my old AIM account "richardbotting". I will also have FaceBook: "Richard John Botting" and Email open. The San Bernardino Sun .See http://www.sbsun.com/ has a good summary of the fire status. Pray that the winds drop... . 2008-10-13 Mon Oct 13 16:10 Function point estimation People are still trying to predict the size of the code of a project from a description of the functionality it provides. The size is a key cost driver for producing the program and so this is important. But still difficult to get right. .Open GencelDemirrors08 Cigdem Gencel & Onur Demirrors Functional Size Measurement Revisited ACM TOSEM Trans Software Eng & Methodology V17n3(Apr 2008)#15pp1-36 =EMPIRICAL PURPOSE METRIC SIZE ESTIMATE IMPROVEMENT FFP Measuring and predicting size is important for project management... More work is needed. .Close . 2008-10-10 Fri Oct 10 10:10 Bugs on FaceBook and IEEE I've been blessed with the ability to find bugs in software. It happens quite unconciously that I try the road less travelled and trip over a sequence the programmers did not expect. It has been very handy over the years. And very irritating to my colleagues. But sometimes this habit is a curse. This rant is inspired by a sequence of three bugs. First I noticed that if you go to a Facebook page by an abnormal route -- say directly to the URL of your own page, or from the PhD or SigmaXi "Join Group" pages then it claims you don't allow cookies when you try to login. A login from the page with the error message now works and you can join the group or whatever. This could be stupidity or malice. The failed login method of stealing passwords was used by a student in Cambridge University way back in the 1960s! But it could be an oversight by the programmers. Irritating. The IEEE is a premier society for electronic and software engineers. so you don'e expect a double error message when posting a comment on one of their articles: .Box Internal Server ErrorThe server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator, webmaster@blogs.spectrum.ieee.org and inform them of the time the error occurred, and anything you might have done that may have caused the error. More information about this error may be available in the server error log. Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request. Apache/1.3.39 Server at blogs.spectrum.ieee.org Port 80 .Close.Box It was, of course quite predictable that sending the message to the webmaster did not work: .Box Your message cannot be delivered to the following recipients: Recipient address: webmaster@blogs.spectrum.ieee.org Reason: Remote SMTP server has rejected address Diagnostic code: smtp;550-The recipient cannot be verified. Please check all recipients of this message. Remote system: dns;blogs.spectrum.ieee.org (pierre.livingdot.com ESMTP Exim 4.69 #1 Fri, 10 Oct 2008 09:48:21 -0700 ) .Close.Box It is a pity that it does not work on my own software. Someone else has to use it for the bugs to surface. Thank you for listening. Any comments will be editted and quoted here... especially if .See ./hole.html works! . 2008-10-09 Thu Oct 9 15:10 Reuse reduces fault density Here we have some evidence for a popular belief -- that reusing a component is better then making a new one. Note that the research did not show that it is cheaper to have a reuse process. It shows an improved quality in the code. .Open MohaghehiIctConradi08 Parastoo Mohaghehi & Sintef Ict & Reidar Conradi An Empirical Investigation of Software Reuse benefits in a large telecom Product ACM TOSEM Trans Software Eng & Methodology V17n3(Apr 2008)#13pp1-31 =EXPERIENCE REUSE CODE QUALITY REWORK ARCHITECTURE Significantly lower fault density in reused code. Reused components are modified less the more they are reused. .Close . 2008-10-08 Wed Oct 8 14:10 A New Approach to Formal Languages and Automata Here is one of those ideas that I wish had been around years ago when I was struggling to make sense of computer theory: automata, languages, grammars, etc.. It appears you can do most of it in terms of equations in various special algebras. Surely it wouldbe easier to learn and use the theories if they had a unified basis. So why not write a text book using equations as the basis? .Open Baetan08 Joe C M Baetan Calculating with Automata Montanari Festschrift .See [DeganoEtAl08] pp746-756 =EDUCATION THEORY ALGEBRA EQUATIONS AUTOMATA GRAMMARS KLEENE REGULAR EXPRESSIONS Demonstrates that most of standard theory can be taught using equations. .Close . 2008-10-07 Tue Oct 7 14:10 Bonus -- Good Issue of Doctor Dobbs on Agile Processes Just got the latest "Dr. Dobbs Best Practices Report by EMail" -- #101. Lot's of good reading. I'm particularly impressed by the figure quoted in the VersionOne Survey .See http://www.versionone.com/pdf/3rdAnnualStateOfAgile_FullDataReport.pdf (PDF) showing that Scrum is becoming the leading agile method. I'll have to add to my notes .See ./samples/methods.html#Scrum and if you can help why not try .See ./hole.html to help me fill the hole. I also like Eric J Bruno's .Key Requirements Traceability Matrix RTM as a summary document for requirements. You can use a spreadsheet. One row per requirement. .Table ID Description Design Doc Unit Test Test Results Status Include Next time .Close.Table (Status is color coded). This is not a new idea... see .See Wiegers99 for example. . 2008-10-07 Tue Oct 7 12:10 Asynchronicity needs Bags Here is a nice result. It demonstrates that if you want a system to perform asynchronously then it is not enough to connect processes by buffered connections using queues (First In, First Out) or stacks(Last In, First Out). You need bags(First in, Still Waiting) to properly decouple the processes. I've always like the FISH file: First In, Still Here for every day data processing. .Open BeauxisPalamidessiValencia08 Ramain Beauxis & Catuscia Palamidessi & Frank D Valencia On the asynchronous Nature of Asynchronous \pi-Calculus Montanari Festschrift .See [DeganoEtAl08] pp473-492 =THEORY NONSEQUENTIAL BAGS QUEUES STACKS PI-CALCULUS Proves that to get behavior equivalent to \pi[a] (Asynchronous Pi Calculus) you need a normal \pi calculus where communication is through buffered channels that act as buffers. Queues and stacks can not simulate all \pi[a] behaviors. .Close . 2008-10-06 Mon Oct 6 14:10 Modeling Biological Systems Here is a neat technique for generalizing Milner's Calculus so that interactions are not defined by paired inputs and outputs. .Open Quaglia08 Paola Quaglia On Beta-Binders Communications Montanari Festschrift pp456-472 .See [DeganoEtAl08] =IDEA MODEL BIOLOGICAL CELLULAR SYSTEMS CCS NON-SEQUENTIAL Instead of complementary paired actions (CCS) allows pairing of actions if they are of a compatible type. Defines syntax, equivalence, reductions, denotations, structural operational semantics,... Proves key results. .Close . 2008-10-02 Thu Oct 2 19:10 Straightforward Business Model in UML Proposed Normally proposals for ways of using the UML to model businesses have been overly complex -- to my eye. So here is a simple approach. .Open AstesianoReggioRicca08 Egidio Astesiano & Gianna Reggio & Filippo Ricca Modeling Business with a UML-based Rigorous Software Development Approach Montanari Festschrift pp261-277 .See [DeganoEtAl08] =DEMO UML BUSINESS MODELING MARS SOA REALITIES SYSTEMS ORGANIZATION OCL BM::discipline="Business Modeling". Use multiple UML2 views of business: Static + Organization + Business Process + Data. Model business processes in the context of other business processes. Model business entities and organization. Model activities precisely. Proposes stereotypes: <> for autonomous acts, <> for business worker, <> for business objects, <> external entities, <> organizational units. <> business process "use case". <> high level cases. .Close . 2008-10-01 Wed Oct 1 10:10 Attending a Webinar on Agile Methods This will be an intersting experiemnt. Steve McConnell is speaking on .Key Right sizing Agile Cnd .Key Construx experience, at 11 this morning. I intend to jot down any notes live and then post them to this blog. .List First Firefox updates itself and the Real Player insisted on updating. Why agile: .Set traditional was not getting the job done. Waterfall absorbs costs all the way thru but value comes at the end of the project. 80% thru with 0% functionality. Incremental -- a bit at a time. Functionality grows with time and cost. Deliver the most important functionality first - high cost first. Then diminishing returns at end. Agile lets you change plan as returns decrease and discoveries are made. More customer feedback. .Close.Set Full blown agile when fixed cost and time -- but want the biggest business value within the resource limited. History of "Agile"... a moving target. Always incremental and non-waterfall. Usually iterative -- but can have fixed requirments with incremental development. More code based than documentation. Families of practices. Agile = "Modern practices that work". Cost + Schedule + Functionality. Continuum of approaches fitting different needs. Predicatble projects are closer to waterfall. Identified activities {Requirements, Architecture, Detailed Design, Construction, Developer test/unit test, System test} may or may not be a sequence of phases. The .Key Life cycle model drives the success of an approach rather the particular practices. Variations depends on: %requirements up front, % design up front, %number of iterations, %Testing before the end of the project. Examples .Set Analysis of "Code and Fix" -- end up doing work at after the project. Waterfall -- miss requirements and design that is done at the end. XP -- more discipline, each increment is tested and releasable. Some churn. Less unexpected work at end. Evolutionary prototyping is similar. Pure Scrum -- works better. fewer surprises at end. Variation: more reqts up front. -- works well. .Close.Set Presented Lots of variations of life cycles. Effective practices (based on experiences and industrial reports) .Set Short release cycles -- nearly always valuable -- variations. Highly interactive release planning -- you can't plan more than 30 days but it is good to have a 30+ day plan! Time boxing -- works, but sprints and breaks are good. Empowered small crossfunctional teams: feature teams, represent all stakeholders on team. efficient and buy in. Involve active management: coaches and scrum-master, good for high discipline practice. exercise bike. Theory Y management. -- showed benefits. Coding Standards. Frequent integration and test. takes effort. needs compute power. worth the effort to set up. Need the test. Daily is good. Automated regression testing -- helpful. Unit test tools. Retrospectives at end of release -- good idea. Covey: sharpen the saw. Daily standup meeting -- accountability, not too long. Test first -- works pretty well. High discipline. Some extra benefits over just SQA. On-site customer? project community. "whole team". Theory-W (win) managment. Pair programming -- use selectively, junior programmers. many try it and give it up. Selective. .Close.Set When to use? First draw your .Key Agile profile -- Kiviat diagram: %reqts change/month, culture, dispersion, size, impact, personel experience. Summary -- high discipline needs support, verify that practices align with needs, busness value, have a realistic expectations and tradeoffs. Common Hurdles -- advert for Construx .See http://www.construx.com Iteration is more general than repeating a single cycle. Iterate quickly in areas of risk. .Close.List The above is my interpretation of the webinar.... your milage may differ. . 2008-09-30 Tue Sep 30 12:09 Web sites on Architecture One of the pleasures of being a member of ACM's Special Interest Group on Software Engineering is reading Marc Doernhefer's regular article where he takes a topic and looks for relevant web pages on that topic. This month he has been looking for the topic of architecture. I'm worried by the number of standards and approaches and the different meanings: .List Systems Architecture -- structure of systems that include programs Software Architecture -- the structure of sofware .Close.List .Open Doernhoefer08c Mark Doernhoefer Surfing the net for software engineering notes: Architecture Digest ACM SIGSOFT SEN V33n5(Jul 2008)p4-13 .See http://doi.acm.org/10.1145/1402521.1402530 =SURVEY WEB SYSTEMS SOFTWARE ARCHITECTURE DESIGN STANDARDS FRAMEWORKS TOOLS First discusses System Architecture including: .Set IEEE 1471 Website .See http://www.iso-architecture.org/ieee-1471 Department of Defense Architecture Framework (DoDAF) .See https://dars1.army.mil/IER/index.jsp Core Architecture Data Model (CADM) .see http://www.silverbulletinc.com/cadm/product.htm Zachman Framework .See http://zachmaninternational.com/ Federal Enterprise Architecture .See http://www.whitehouse.gov/omb/egov/a-1-fea.html The Open Group Architecture Framework (TOGAF) .See http://www.opengroup.org/togaf ... .Close.Set Second: Software Architecture .Set Software Engineering Institute .See http://www.sei.cmu.edu/architecture/index.html The Acme Project ar Carnegie Mellon .See http://www.cs.cmu.edu/~acme The famous 4+1 Model View of Krutchen .See http://www.ibm.com/developerworks/wireless/library/wi-arch11 .See http://www.cs.ubc.ca/~gregor/teaching/papers/4+1view-architecture.pdf Grady Booch .See http://www.booch.com/architecture Dr. Amnon Eden in Essex, UK .See http://www.eden-study.org .Close.Set Tools .See http://argouml.tigris.org .See http://www.fabforce.net/dbdesigner4 .See http://dev.mysql.com/workbench .Close . 2008-09-29 Mon Sep 29 18:09 Ugo Montanari Feshrift When a successful academic researcher comes to a special point in the career the people whohave been influenced by the academic get together and have a conference based on the whole body of work -- a `festschrift`. I've been asked to review the published proceedings of one of these. I'll be noting some of the papers that seem most relevant to this blog here as they come up. Meanwhile here is a placeholder or stub (which I will change in the bibliography later) and the description of the language `Ciao`. It looks like `Ciao` is a very interesting and powerful language indeed. I haope I can find time and a way to check it out in detail sometime. .Open DeganoEtAl08 Pierpaolo Degano & Rocco De Nicola & Jose Meseguer (eds) Concurrency, Graphs and Models: Essays dedicated to Ugo Montanari on his 65th Birthday LNCS 5065 Springer Verlag Berlin Heidelberg (2008) =FESTSHRIFT MATHEMATICS GRAPH THEORY CONCURRENCY NON-SEQUENTIAL CATEGORIES SEMIRINGS TOOLS HISTORY Notes: $CR Oct 2008 Includes .See [HermenegildoEtAl08] .Close .Open HermenegildoEtAl08 M V Hermenegildo & F Bueno & N Carro & P Lopez & J F Morales & G Puebla An Overview of the Ciao Multiparadigm Language and Program Development Environment and its Design Philosophy Montanari Festschrift pp208-237 .See [DeganoEtAl08] =ADVERT LANGUAGE Ciao TOOL THEORY FUNCTIONAL OO LOGIC CONSTRAINT Downloads .See http://www.ciaohome.org .See http://www.cliplab.org .See mailto:ciao@clip.dia.fi.upm.es 91 references .Close . 2008-09-26 Fri Sep 26 10:09 Changes on this site First -- I'm freeing up the look-and-feel by removing the font-families specified for the body (serif) and headers (san-serif). In MS IE and Safari you can specify your own style sheet. If you have this .As_is BODY{font-family:serif;} .As_is H1,H2,H3,H4{font-family:sans-serif;} in your stylesheet you can get the old look back again. This is comming from CSUSB's attempt to make everything more accessible. By the way -- if you want to write a stylesheet on a Mac OSX system I would suggest you don't use "Text Edit" which will convert your text in an HTML page that looks like it was plain text. This is an example of what I call "Artificial Stupidity". The very cleverness of the designers and programmers defeats the intentions of their user. By the way -- it is lovely to be able to drop through the MacOS GUI into a classic terminal. I felt quite at home. But I was surprised at how good it felt to be using `vi` rather than a GUI editor! I've also got my sabbatical project to the level where it meets some key requirements. (1) you can put MATHS into a form and get it rendered. (2) you can edit the form and try again. (3) you can send the finished contribution to me. (4) If the contribution fits the purposes of this web site then I can post it to this blog and other places. Here is the link .See ./hole.html if you want to try this out or comment on something on this page/web site. . 2008-09-25 Thu Sep 25 13:09 Formal Methods The topic of `Formal Methods` has just turned up in the ACM's Journal for all Members. They do offer much more reliable software but they can be expensive and are not well understood or liked by those who don't use them. .Open HincheyEtAl08 Mike Hinchey & Michael A Jackson & Patrick Cousot & Byron Cook & Jonathen P Bowen & Tiziana Software Engineering and Formal Methods Commun ACM V51n9(Sep 2008)pp54-59 .See http://doi.acm.org/10.1145/1378727.1378742 =SURVEY FORMAL MATHEMATICAL LOGICAL METHODS TOOLS QUALITIES RELIABLE COST Summary of three key note speeches from ICSE&FM 2007. Describes history: increasing dependability of hardware, more intensive use of software, more ubiquitous computing, no increase in software dependability. Formal methods can increase dependability. Jackson notes that good engineeing stays within the .Key normal design discipline associated with a given application domain. .Key Radical design leaves the normal and always decreases the dependability of the result. Therefore the need to develop special purpose disciplines for each domain. Patrick Cousot defines formal methods and the idea of abstraction. Mentions Astree. Byron Cook notes the explosion of complexity when there is concurrency and the attempts to overcome it. Conclusion reviews the history, describes .Key method engineering and states that the quest continues... .Close Meanwhile, I'm wrestling with a server that doesn't want to send my email.... So at this time my "hole" script reports success but the Email doesn't seem to be delivered. More on this later. . 2008-09-24 Wed Sep 24 17:09 Tool finds bugs in Java Seems like the Findbugs tool was useful to people working at Google: .Open AyewahEtAl08 Nathaniel Ayewah & William Pugh & David Hovemeyer & J David Morgenthaler & John Penix Using Static Analysis to Find Bugs IEEE Software Magazine V25n5(Sep/Oct 2008)pp22-29 =EXPERIENCE Google =SURVEY OPEN SOURCE TOOL FindBugs Java TECHNICAL QUALITY Mondrian A free static analysis tool finds real defects in real code ... Plus some false positives -- but misses some bugs. Survey of users shows it to be useful. .Close . 2008-09-23 Tue Sep 23 10:09 MATHS defined I'm starting to bring my work on my MATHS language onto the front burner in preparation for the release of a Beta tool for creating web pages, and submitting contributions to this web site. In 1999 I wrote a manifesto for the language laying out my dreams and requiremements .See ./maths/10_manifesto.html and today I added a citation for it .See [Botting99a] to my bibliography. Enjoy. . 2008-09-22 Mon Sep 22 05:09 Economics vs Technology One of the sadder patterns in the history of programming languages is that economics tend to trump technology. The better technology will fail when competing with economic forces. Similarly a new system has to make economic sense to the stakeholders -- even if it has less than ideal technology. Especially if the technology is new (bleeding edge) and fashionable. So I'm always interested in the economic strategy adopted by technology providers. Here is a recent article on one particular example: Microsoft vs Apple. Note -- that there are complications in this particular junction that the article does not cover. .Open Cusumano08 Michael Cusumano Technology Strategy & Managment: The Puzzle of Apple Commun ACM V51n9(Sep 2008)pp- .See http://doi.acm.org/10.1145/1378727.1378736 =ESSAY ECONOMICS PRODUCTS vs PLATFORMS MS tends to create platforms that encourage other businesses to get involved. Apple prefers a closed but higher quality (and higher priced) product. Comparison with Betamax vs VHS. .Close By the way -- I'm hoping to announce a major development in the technology for this weblog this week. . 2008-09-19 Fri Sep 19 09:09 Architeture and Risk Organizing complex software into modules is not so much driven by what the software does (as we thought in in the 1960s-1970s) but by the risks. The Software Engineering Institute of Carnegie Mellon made a study ot the risks that where mentioned in a set of architectural documents. They uncovered 99 different ones, grouped them by type and published a report in 2006. See Below. It has some interesting observations .Open BassNordWoodZubrow06 Len Bass & Robert Nord & William Wood & David Zubrow Risk Themes Discovered Through Architecture =EXPERIENCE RISK ARCHITECTURE ATAM QUALITY Tech Report CMU/SEU-2006-TR-012 ATAM::="Architecture Tradeoff Analysis Method". Lists 15 Risk Theme Categories: Availability, Performance, security, modifiability, integration, process and tools, requirements, allocation, documentation, Big Picture, Unrecognized needs, product lines, awareness, scope, coordination. Claims 99 risk themes. Reference to Boeing experience with ATAM and Charette's failure causes. Relation to business goals. Importance of "Performance" . No evidence that risks are independent of domain. One size does not fit all. Risks of commission and Omission. Omission more common. Odd fact: security was always a risk of omitting to do something. .Close . 2008-09-18 Thu Sep 18 13:09 XML again Here are a couple of articles on XML. One agues that different parsers perform differently on different tasks. The other argues that `real programmers` like XML and agile methods -- possibly for all the wrong reasons. .Open LamDingLiu08 Tak Cheung Lam & Jianxun Jason Ding & Jyh-Charn Liu XML Document parsing IEEE Computer Magazine V41n9(Sep 2008)pp30-37 =THEORY XML PARSING PERFORMANCE DOM SAX StAX VTD Different parsing tools/models perform best on different tasks. Sample: DOM good for data bases and SAX & StAX for streaming. VTD will need special hardware to perform quickly. .Close .Open Gorton08 Ian Gorton XML does Real Programmers a Service IEEE Computer Magazine V41n9(Sep 2008)pp100+98-99 =JOKE HISTORY QUICHE SPECIFICATION vs CODE DCE Corba PROCESS EMPIRICAL AGILE XML SERVICES AGENTS AI Real Programmers write code, late at night, just before the deadline. Agile allows real programmers to do what they want and provide the stakeholders with what they want. XP: "[...] every one prefers muffins and expresso to writing specifications." .Close . 2008-09-17 Wed Sep 17 14:09 One way to hatch a catestrophe Here is an ancient tale of bad engineering: .List Amateurish designs. Ignoring nay-saying experts. Pride. .Close.List And it is not a software project... but I agree with the author -- all software developers need to know about it. Note: recent events on MetroLink in California also show a pattern of experts saying that something is dangerous, and people being killed when the advice is not taken. .Open Neville-Neil08a George Neville-Neil Kode Vicious: Pride and Prejudice (The Vasa) Commun ACM V51n9(Sep 2008)pp25-26 .See http://doi.acm.org/10.1145/1378727.1378737 =HISTORY TECHNOLOGY RISK SAFETY The history of the `Vasa` Galleon (1626) shows how a leader pushing technology too far, against the advice of technical experts, lead to a catestrophe. .Close . 2008-09-16 Tue Sep 16 10:09 Distributed Code Reviews Bertrand Meyer reports that using the internet leads to better code reviews. He doesn't quote any data, but claims that the process is much more enjoyable and productive. Now `code review` is a proven way of finding errors and improving software quality, see .See [ArnoldTFuson94 ] (=ESSAY) .See [Baker97 ] (=EXPERIENCE) .See [BergClineGirou95 ] (=CORRESPONDENCE) .See [BishopWagner07 ] (=REPORT) .See [DownsA00 ] (=EXPERIENCE) .See [HallChapman02 ] (=EXPERIENCE) .See [Humphrey95b ] (=ADVERT) .See [JonesC96a ] .See [KupermanEtal05 ] (=REPORT) .See [Lussier04 ] (=EXPERIENCE) .See [Voas03 ] (=EDITORIAL =HISTORY) We also have a lot of data for formal `inspections` working well. More informal `walkthroughs` and `peer review` have also been used for decades... So it is good to learn that VoIP+Google Docs+Wikis make them more effective -- even for international teams. .Open Meyer08a Bertrand Meyer Design and Code Reviews in the Age of the internet Commun ACM V51n9(Sep 2008)pp67-71 .See http://doi.acm.org/10.1145/1378727.1378744 =EXPERIENCE REVIEW SQA WWW/Net VoIP wiki Skype X-Lite Google Docs EiffelStudio Design and code reviews can be carried out by an international team by using the web for text, chat, and voice communication in parallel. Give access to documents when inviting people to take part. Invite them to contribute to a document of issues. Web shared documents streamline the process. Reviewers post their issues and their comments on the issues into a shared document before the meeting. The authors responses are also posted. The meeting focusses on the interesting issues. The meeting uses VoIP (Voice over Internet Protocol) and chat (text) as well as editting the shared issues. Meetings are productive and not boring. Multimedia multitasking is common. No need for a secretary the discussions, conclusions and responses are already on file! Sample: .See http://dev.eiffel.com/reviews/2008-02-sample.html .Close . 2008-09-15 Mon Sep 15 11:09 Modelling Trust How can you make a website trustworthy? Sounds philosophical until you have a website that won't work unless your users trust it. There has been a lot written on it. Here is a summary of the best published papers: .Open OfuonyeEtAl08 Ejike Ofuonye & Patricia Beatty & Ian Reay & Scott Dick & James Miller How do we build trust into E-commerce Web Sites IEEE Software Magazine V25n5(Sep/Oct 2008)pp7-9 =SURVEY WWW cyberTRUST MODELS QUALITIES Literature survey .See http://www.computer.org/portal/pages/software/content/WebExtra.html Conclusions .Box Trust is a complex quality depending on several linked factors: .Set Technology Acceptance Model (TAM), .Box Which depends on the Usefulness and Ease-of-Use of the web-site. Ease-of-Use influences perceived Usefulness. .Close.Box Benevolence-Competence-Integrity framework (BCI), .Box Which depends on the perceived Risks and the site's Reputation. .Close.Box .Close.Set Usefulness influences Competence and Integrity. Risks influence Benevolence and Competence. Reputation influences Competence. All factors also directly effect Trust! .Close.Box .Close Note: This is a kind of domain modeling. An example of the kind of knowledge/modelling that is very difficult to encode in a visual way that has a formal semantics... We know how to model entities and relationshps between them. But influences and qualities don't fit the traditional logic of Entity-Relationship diagrams except in the general form. . 2008-09-12 Fri Sep 12 16:09 Request for Comment I've just seen a positive review of the following item. If you have read the book and have any bullet points, select the "socket hole" below and send them to me and I can (if they are short and to the point) add them to my bibliography. .Open Diehl07 Stephan Diehl Software Visualization: Visualizing the structure, behavior, and evolution of sofware Springer Verlag NY NY 2007 ISBN 3540465049 $CR 0809-0828 =UNREAD =TEXT GRAPHIC CODE TECHNICAL .Hole Diehl07 .Close Syntax: Put each bullet-point on a new line and put a space in front. I have tools to render it into HTML. Note: you must include a name and address to be published. You work will be creditted. . 2008-09-11 Thu Sep 11 18:09 Project cancelation rates Good discussion of past polls and a recent pair of polls: .Open EmamKoru08 Khaled El Emam & A Gunes Koru A Replicated survey of IT Software Project Failures IEEE Software Magazine V25n5(Sep/Oct 2008)pp84-90 =POLL 2006 2007 PROJECTS SUCESS FAILURE SIZE LENGTH STATISTICS Published work overestimates failure rate. In this poll about 16% were cancelled in 2005 and 12% were cancelled in 2007. Reasons given: uninvolved senior management, requirements/scope changes, lack of management skills, over budget, lack of technical skills, system not needed afterall, etc.. .Close . 2008-09-10 Wed Sep 10 13:09 Empirical vs Constructionist Research Hakan Erdogmus has written an interesting article on why empirical research is not done in software development. It lists excuses but not my excuses: (1) it is cheaper to sit and think and code. (2) You don't have to get permission from an `Institutional Review Board` to do experiments on human beings. But his list of excuses is excellent. .Open Erdogmus08 Hakan Erdogmus Must software research stand divided IEEE Software Magazine V25n5(Sep/Oct 2008)pp4-6 =ESSAY EMPIRICIST VS CONSTRUCTIONIST RESEARCH Gives a good description of the two types of research into software development. .Close The idea is that an article or paper can either be based on theory, opinion or some `data`. Over the years (Since .See [Fentonetal94] ) I have tagged the 4000+ items in my bibliography on software development with the kind of evidence presented. Here is a table of the commonest tags and my comments on them. Notice that the top category is definitely empirical. To look at some of these go here .See ./lab.html and input the tag... complete with the equals(=) sign. .Table Frequency Tag Comment .Row 489 =EXPERIENCE Draws conclusions based on real software development projects -- uncontrolled and may not transfer. Often biased towards reporting success. .Row 444 =DEMO Shows what a piece of software or tool can do. .Row 385 =ADVERT Makes claims without evidence being given. Includes a paper describing a Ph. D. Thesis. .Row 374 =THEORY A linking of assumption to results by reasoning. The assumptions may not fit any real situation. .Row 289 =ESSAY A balanced (`assay`) treatment of a topic or question. Must cover both sides and may come to a conclusion. .Row 229 =IDEA An idea for a method, tool, process, etc. that may or may not work. .Row 225 =SURVEY Results based on a `literature` survey of published results. .Row 138 =HISTORY Records and comments on past events. .Row 132 =EXPERIMENT Results found in a controlled (and so artificial) situation. Allows specific effects to be teased out but they may not move into a real situation. .Row 118 =TEXT Text books -- should state fairly well accepted ideas. .Row 83 =POLL Results of asking people in the field questions. .Row 73 =HOWTO Description of how to get desired results using given tools. .Row ... .Close.Table Conclusion -- there is a lot more empirical publications than anything else on software development. . 2008-09-09 Tue Sep 9 17:09 Agents Here are two recent articles -- one simplistic description of software development with agents and the other discussing the complex relationship between rules and emergent properties in systems of agents. .Open Mubarak08 Hisham Mubarak Developing Flexible Software using Agent-Oriented Software Engineering IEEE Software Magazine V25n5(Sep/Oct 2008)pp12-15 =ADVERT AGENTS JADE Java AOSE ::= "Agent-Oriented Software Engineering". Agents depend on a platform that lets them configure themselves to achieve their goals. The platform includes agent management, directory services, a message transport system, and an agent communication language. Article lists relevant websites. .Close .Open Varian08 Hal R Varian Designing the Perfect Auction =ESSAY GAME THEORY REQUIREMENTS MECHANISM DESIGN NONSEQUENTIAL ALGORITHMS ECONOMICS AGENTS Commun ACM V51n8(Aug 2008)pp9-11 .See http://doi.acm.org/10.1145/1378704.1378708 Games theory predicts the outcomes for a given mechanism, mechanism design produces a set of rules that gives a desired outcome, and computer science shows that some mechanisms have intractable computations. Mentions auctions for spectrum, stamps, flowers, eBay, Google, MSN, and Yahoo. Does not mention need to model the existing situtuation or domain. .Close . 2008-09-08 Mon Sep 8 14:09 Software Development ideas unstable Computer science has been a moving target for decades. Most of the topics I taught to freshers in the 1970's became high school before the decade was out. The research in my thesis entered the undergraduate curriculum within 2 years and disappeared with the arrival of standard graphics packages and powerful displays. A standing joke was that the teacher teaching Computer Graphics could always ask the same question in the final exam because the answer was different each year. Even in the most stable topic (theory), the arrival of the concepts of P and NP defined a new landscape that was not visible when I first taught theory. Phillipe Krutchen has gathered evidence that this process is continuing. .Open Kruchten08 Philipe Kruchten The Biological Half-life of Software Engineering Ideas IEEE Software Magazine V25n5(Sep/Oct 2008)pp10-11 =SURVEY IDEAS 1988..2008 Half_life(C)::=`The time taken before 50% of a chemical C is removed from a body`, example: Half_life(caffeine) =~= 3.5.hrs. Out of 50 items in IEEE Software from 1988 no more than 3 are still important. This implies a Half_life of about 5.years. Professional organizations enforce continuing professional development. More important to learn how to learn than learn the language/system of the day. (dick)|- Compare the half life used to model radioactive decay. (dick)|- Suggests exponential decay: amount (t) = amount (t0) * 2 ** ((t0-t)/ half_life) ). (dick)|- `Which ideas are strong enough to survive?` .Close . 2008-09-05 Fri Sep 5 13:09 Fear and Loathing of Upgrades -- Take 2 This is the first blog posted from our new iMac via a DSL connection. Fairly typically the Macintoshes had few problems and it took 60..80 mins to configure the Windows system. And the Mac OS X is built on Unix so I could use the `ssh` out of the box to post this entry and convert it to HTML and post it... Next stop.... plugins and more goodies... Time to relax... Back on Monday. . 2008-09-04 Thu Sep 4 15:09 Understanding Big Programs Some problems in software development do not go away. Forty years ago, starting out on my graduate work, I was faced with figuring out a program so that I could modify it. It was compiler and I had access to the machine code -- So I started to flow chart it (a manual version of the second most popular technique below). Only about 8,000 instructions. I was just getting lost on the 20th page of the flowchart when a faculty member looked over my shoulder and asked "What are you doing?" -- I explained. "Why don't you ask the supplier to give you the documentation?" I answered -- "What is documentation?" "Oh you know -- flowcharts and things like that". So I phoned up the company -- "Elliott Brothers" and they sent me all the design document -- the pseudocode for the compiler. Not bad technique for the 1960's. But then this was Tony Hoare's team. Now, in 2008, nobody suggested digging out the documentation to help figure out a set of code. Seems that (1) programmers don't expect to have any documentation, and so (2) programmers don't prepare for future maintenance by leaving bread crumbs and `silken clues` through the labyrinth of finished code. .Open RatanotayanonSim08 Sukanya Ratanotayanon & Susan Elliott Sim Inventive Tool Use to Comprehend Big Code IEEE Software Magazine V25n5(Sep/Oct 2008)pp91-92 =POLL Slashdot CODE UNDERSTANDING When asked how to comprehend a novel and large corpus of code Slashdot .See http://slashdot.org users answered .List Use code navigation tool to link names to definitions. Use tools to reverse engineer diagrams. Use debuggers. Print the code out and use color markers. I've had this problem too. Don't use tools -- use your brain + an "editor and grep". .Close.List (most frequent first). .Close . 2008-09-03 Wed Sep 3 15:09 Recovered Item on Benchmarks My paln to get to the secondary backup copy (see next item) in my office worked -- I had to open the Palm Pilot desktop and copy/paste the two items into a scratch file and then synchronize, and then copy/paste them back again. Here is one with the irrelevant property of having more authors than any other item in my bibliography. .Open DaCapo08 Stephen M Blackburn & Kathryn S McKinley & Robin Garner & Chris Hoffman & Asjad M Khan & Rotem Bentzur & Amer Diwan & Daniel Feinberg & Daniel Frampton & Samuel Z Guyer & Martin Hirzel & Antony Hosking & Han Lee & J Eliot & B Moss & Aashish Phansalkar & Darko Stefanovic & Thoms VanDrunen & Daniel von Dineklage & Ben Wiedemann Wake Up and Smell the Coffee: Evaluation methodology for the 21st century =ADVERT JAVA BENCHMARKs PERFORMANCE METRICS Commun ACM V51n8(Aug 2008)pp83-89 .See http://doi.acm.org/10.1145/1378704.1378723 Developing a useful benchmark is time consuming. Using them needs understanding of relevant workloads, good experimental design, and rigorous analysis. Benchmark research is underfunded. .Close . 2008-09-02 Tue Sep 2 08:09 Backups and disasters Sometime since the last four days I've managed to delete my "buffer" of bibliographic items. This held on a Palm E2 `todo` list. Each work day I take one or two of the items and write a short blog entry about it. So some of the less interesting ones wait in the buffer, starved of attention for a few weeks... The Palm is synchronized with a couple of laptops. And I must have synchronized the deletion between the Palm and the `old Dell` at home. However, the second `new Dell`, at work should have the older items on it. A long way from the "disaster". So I've just retyped the following new item directly into the laptop ready for uploading. I'll pick up the rest of them when I get into my office tomorrow. Now the rule: .Key Always Backup Data and then keep a secondary backup copy, a long way away, of your backup data. This has been a common part of data processing system design since the first "backing store". Scientists working on long computations (200 hours, say) always included check points to save the data calculated in case the system crashed or the power was cut. And software developers are wise to distribute their source code and run a version control system! . 2008-09-02 Tue Sep 2 08:09 Crosscutting concerns and bugs Now back to the reconstructed item, It presents some evidence that .Key Aspect Oriented Programming and the .Key Don't Repeat Yourself (DRY) principle are valid. .Open Eaddy08 Marc Eaddy & Thomas Zimmermann & Kaitlin D Sherwood & Vibhav Garg & Gail C Murphy & Nachiappan Nagappan & Alfred V Aho Do Crosscutting Concerns Cause Defects IEEE Trans Software Engineering V34n4(Jul/Aug 2008)pp497-515 =EMPIRICAL ASPECTS REQUIREMENTS CONCERNS CROSS-cutting CODE QUALITY BUGS Requirements mapped into concerns. Reverse engineered concern->code map and the bug->code mapping and deduce concern->bug relationship in corpus of Java code. Defects tend to be associated more with wide-spread concerns than with total amount of code implementing a concerns. .Close . 2008-08-29 Fri Aug 29 08:08 Questions and answers from Programmers .Open SillitoMurphyVolder08 Jonathon Sillito & Gail C Murphy & Kris De Volder Asking and Answering Questions during a programming change task =EXPERIMENTS QUESTIONS vs TOOLS IEEE Trans Software Engineering V34n4(Jul/Aug 2008)pp434-451 Lists the 44 types of questions asked as programmers work on changing code. Classifies them in to 4 types. Tools do not support integrating information from many questions or more complex types of question about understanding structures. .Close . 2008-08-27 Wed Aug 27 13:08 An ancient controversy -- universal languages Neville Holmes has opened a can of worms... or more prosaically a box of old press clippings, booklets, notes etc. He has suggested a simplified form of Esperanto might be useful in the European Union and the computer world. .Open Holmes08 Neville Holmes The European Union and the Semantic web =ADVERT UNIVERSAL LANGUAGES E-speranto ITL IEEE Computer Magazine V41n8(Aug 2008)pp108+106-107 E-speranto::="a simplification of Esperanto". Esperanto::="the most popular artificial universal language". .Close I wonder whether there will be another flame war like in "Computer Weekly" in England in 1978. An RWar (War of Religion) that I found myself dragged into about the relative merits and demerits of various languages as intermediate languages used in machine translation between natural language. I'll list some of the items in this storm in a tea cup shortly but first how I got involved. I came out of my Ph. D. work (1971) convinced that the hard part of programming was describing the domain of the software clearly, unambiguously, and (hopefully) simply. I also believed that computers would be turning up every where. So I foresaw the need for a universal computer-friendly language. I was alos biased towards mathematical and logical expressions -- they had worked well in my graduate work on computer graphics. In other words: I saw semantics as a key problem for developing software -- understanding what the stakeholder's mean and translating this into code. So I collected languages and notations. These days you can check them out on the Wikipedia: .See http://en.wikipedia.org/wiki/Basic_English ( < 1,000 words! ) .See http://en.wikipedia.org/wiki/Blissymbol .See http://en.wikipedia.org/wiki/Dutton_Speedwords .See http://en.wikipedia.org/wiki/Esperanto .See http://en.wikipedia.org/wiki/Loglan .See http://en.wikipedia.org/wiki/Shavian These convinced me that a couple of thousand primitives would be all that would be needed.... Also that I like Loglan. Lately I've discovered that Loglan has an evolved rival: .See http://en.wikipedia.org/wiki/Lojban and some the work I did looking for the properties of words has be subsumed by the .See http://en.wikipedia.org/wiki/Cyc project and modern ontologies.... because the semantics is now seen as a problem on the web. Further, these days most methods include a `domain modeling` step which works out the logic of the user's domain. Further data bases have help us evolve methods like `normalization` for discovering the underlying logical structure of the data underneath the physical forms. Now back to the controversy in the 1978. I'm sure I'm missing some of the letters and articles but here are the ones I have preserved. .Open Kelly78 Ian D K Kelly How Esperanto can aid machine Translation =ADVERT Esperanto ITL UNIVERSAL LANGUAGE Computer Weekly (UK) (Jan 19 1978)p16 States six criteria: rich, computer text, precise, regular, humanized interface, existing corpus. Argues that $SLUNT is not proven rich enough, but Esperanto fits all criteria. .Close .Open Sebborn78 Peter Sebborn Problems of language transaltion by machine =ESSAY ITL UNIVERSAL LANGUAGE Computer Weekly (UK) (1978)p16 Having an ITL would reduce the number of translators form O(n^2) to O(n). Something is lost in tanslation. .Close .Open Botting78a Richard J Botting Loglan -- a more flexible language =ADVERT Loglan Mathematics Logic ITL UNIVERSAL LANGUAGES Computer Weekly (UK) n598 (Feb 16 1978)letters Response to .See [Kelly78] Argues that Loglan fits Kelly's criteria better. .Close .Open Kelly78a Ian D K Kelly Loglan -- a more flexible language =ADVERT Esperanto ITL UNIVERSAL LANGUAGES Computer Weekly (UK) (Mar 16 1978)p20 Rebuts .See [Taylor78] Argues that Sanscrit might fit the criteria best and has several centuries of formal syntax. .Close .Open Singh78 Kable S Singh Loglan -- a more flexible language =LETTER ITL UNIVERSAL LANGUAGES Computer Weekly (UK) (Mar 16 1978)p20 Need to choose ITL quickly! .Close .Open Long78 Chris Long Logical =LETTER ENGLISH LOGIC ITL UNIVERSAL LANGUAGES Computer Weekly (UK) (Mar 16 1978)p20 You can write English logically! .Close .Open Goshawke78 Walter Goshawke qadvantages of Number Language =ADVERT NUMBERS ITL UNIVERSAL LANGUAGES Computer Weekly (UK) (Mar 16 1978)p20 SLUNT::="Spoken Language Numeric Translation". More details in Computer Weekly (UK) (Sep 1 1977) .Close .Open Venture78 Alec Venture Loglan -- a more flexible language =LETTER Esperanto vs Loglan Volapuk LOGIC ITL UNIVERSAL LANGUAGES Computer Weekly (UK) (Mar 23 1978)p19 Rebuts Taylor78 and Botting78a. .Close .Open Easton78 Frank M Easton Esperanto Success =ADVERT Esperanto ITL UNIVERSAL LANGUAGES Computer Weekly (UK) (Mar 23 1978)p19 Rebuts Botting78a "Loglan unheard of". .Close .Open Love78 C G Love Lack of Support for Loglan =ADVERT Esperanto Computer Weekly (UK) n598 (Mar 30 1978)p16 States that Esperanto has many speakers and political support. .Close .Open Mankin78 R Mankin Loglan -- a more flexible language =LETTER Esperanto vs Loglan Volapuk LOGIC ITL UNIVERSAL LANGUAGES Computer Weekly (UK) (Apr 13 1978)p16 Argues that an ITL must be artificial so that it does not grow, adapt, and develop dialects! Rebuttal: Esperanto is used widely and yet has no dialects. .Close .Open Williams78 Alison M Williams Growing oposition to English as an ITL =LETTER English ITL UNIVERSAL LANGUAGES Computer Weekly (UK) (Apr 20 1978)p?? Examples of countires abandoning English as their second language in school. .Close .Open Taylor78b G A R Taylor The case for teaching Esperanto more widely to scientists =LETTER Esperanto ITL UNIVERSAL LANGUAGES Computer Weekly (UK) (Apr 20 1978)p?? States that Esperanto is easy to read and write. However notes that other texts in other langages have to be rewritten before they can be translated... .Close .Open Botting78b Richard J Botting Languages at the Crossroads =ADVERT Loglan Mathematics Esperanto ITL UNIVERSAL LANGUAGES Computer Weekly (UK) n598 (April 27 1978)p4 Response to .See [Love78] Calls for "an Intermediate Text Language that benefits language translation and not use computers to help Esperanto" Need to examine many alternative solutions to a problem. .Close .See ./dick78.gif (Photo from article). .Open Moss78 Chris Moss The Value of Loglan as a useful tool in Machine translation =ADVERT Loglan ITL UNIVERSAL LANGUAGES Computer Weekly (UK) (Jun 15 1978)p4 Describes Loglan in more detail. .Close It would be nice to think that this is the end of the debate. Somehow I don't think so! . 2008-08-26 Tue Aug 26 10:08 Virtualization From the "everything old is new again" file. Here is a note on .Key virtualization -- when several independent programs/applications share a common CPU+RAM. I think this trick was first done on the .Key Atlas supercomputers in England in the early 1960s -- along with virtual memory and time sharing. It turns out that security is harder when using virtual machines. .Open Vaughn-Nichols08 Steven J Vaughan-Nichols Virtualization Sparks security concerns =ESSAY SECURITY VIRTUAL MACHINE Hypervisor VMware Hyper-V Xen IEEE Computer Magazine V41n8(Aug 2008)pp13-15 Since the 1960s it is possible for several virtual machines/systems to run on a single CPU. A special program (supervisor, hypervisor, executive) controls resources and makes each system/program work as if it was the only program on the machine. This was first done on supercomputers, then on mainframes, and so on down to PCs. How virtual machines makes security harder to maintain than when each application/system ran on a separate computer. .Close . 2008-08-25 Mon Aug 25 13:08 Testing Services Not much to add today's citation (below) other than to invite you to also see $Meyer08 last Thursday(below). .Open TsaiEtAl08 W T Tsai & Xinyu Zhou & Yinong Chen & Xiaoying Bai On testing and evaluating service-oriented software =CASESTUDY SOA SERVICES TESTING CRM IEEE Computer Magazine V41n8(Aug 2008)pp40-46 Using statistical analysis to select tests. Can test many services in parallel. CRM::="Coverage relationship model", Tsai et al in 2007. .Close . 2008-08-22 Fri Aug 22 08:08 Check in Early and Often The "Coding Horror" blog/mailing list .See http://www.codinghorror.com/blog/ has done it again with the missive posted 21 Aug 2008 02:59 AM CDT. This describes how I prefer to develop code and even what I've shown students. Quote from .See http://www.codinghorror.com/blog/archives/001165.html .Box Perhaps what we need is a model of software accretion. Start with a tiny fragment of code that does almost nothing. Look on the bright side -- code that does nothing can't have many bugs! Test it, and check it in. Add one more small feature. Test that feature, and check it in. Add another small feature. Test that, and check it in. Daily. Hourly, even. You always have functional software. It may not do much, but it runs. And with every checkin it becomes infinitesimally more functional. .Close.Box Image: A pearl in an oyster .See http://www.codinghorror.com/blog/images/oyster.jpg . 2008-08-21 Thu Aug 21 21:08 Meyer on Testing Bertrand Meyer has been a leading language designer and methodologist for a decade or two. Here he shares his conclusions on testing. .Open Meyer08 Bertrand Meyer Seven Principles of Software Testing =ESSAY TESTING IEEE Computer Magazine V41n8(Aug 2008)pp99-101 Principles .List Testing means trying to make the software fail. Tests are not a substitute for specifications. Regression tests: Any failure must become permanent test... Determining succes vs failure should be automatic -- use oracles. Base oracles on contracts. Good testing has both manual and automatic tests. Evaluate testing using objective and explicit criteria. The most important property for a test is the number of faults uncovered as a function of time. .Close.List .Close . 2008-08-20 Wed Aug 20 20:08 Rich Internet Applications I've just visitted a demonstration of MicroSofts SilverLight plugin so that I can look at real time medal counts in the Olympic games ($TBA) and then read about the new technologies for doing exciting things on web pages. .Open Lawton08 George Lawton New ways to build rich internet applications =ADVERT RIA Ajax Google GWT Microsoft ASP.Net Silverlight Adobe Flash AIR Flex JavaFX IEEE Computer Magazine V41n8(Aug 2008)pp10-12 RIA::="Rich Internet Applications". Technology for more powerful clients in a client-server system -- mainly as plugin to a browser. Several competing new systems. .Close . 2008-08-19 Tue Aug 19 12:08 People of Computing .Open Doernhoefer08b Mark Doernhoefer Surfing the net for software engineering notes: Computer People ACM SIGSOFT SEN V33n4(Jul 2008)p7-16 .See http://doi.acm.org/10.1145/1384139.1384149 =SURVEY WEB BIOGRAPHIES PEOPLE Allan Turing, John von Neumann, John W Mauchly, J Presper Eckert, C A R Hoare, Edsger Dijkstra, David Parnas, Grace Murray Hopper, Barry Boehm, Frederick Brooks, Brian Kernighan, Dennis Ritchie, Ken Thompson, Alan Perlis, Niclaus Wirth, Donald Knuth, Richard Hamming, Edgar Frank Codd, Gordon Bell, Gary Kildall, ... .Close . 2008-08-18 Mon Aug 18 16:08 Leroy Seifers dies of Cancer Those who suffer from from cancer and listen to American `National Public Radio` .See http://www.npr.org/blogs/mycancer/index.html will miss him. As he said -- knowing you are not alone is important. Spare a thought for him, his family, and for all who have been diagnosed with cancer. Wikepedia -- .See http://en.wikipedia.org/wiki/Leroy_Sievers My cancer is still, as far as I can tell, quiescent; thanks to hormone treatment. . 2008-08-15 Fri Aug 15 18:08 Donald Knuth Donald knuth's work casts a gigantic shadow accross my life. His books on the "art of Computer Programming" have inspired my research and teaching and tantalysed me. So the following interview interested me. It also has a couple of interesting quotations. One makes the case for the kind of tight feedback loop between user and programmer that is in XP. The other is completely opposed to one of the agile rules of good code. I agree with his comments on comments. .Open Shustek08 Len Shustek (Ed) Interview -- Donald Knuth: A Life's Work Interupted =CLASSIC =HISTORY ART STRUCTURED LITERATE PROGRAMMING TeX Commun ACM V51n8(Aug 2008)pp31-35 .See http://doi.acm.org/10.1145/1378704.1378715 p32: "almost every five minutes as you are writing code, a question comes up that was not addressed in the specification" p34: "the key to good exposition is to say everything twice: informally and formally" p34: "In writing a computer program, it is also natural to say every thing in the program twice" -- once for the human reader and once for the computer. .But (XP)|- "Don't Repeat Yourself". .Close.But Comments should explain why, what does not work, and any subtleties. .Close . 2008-08-14 Thu Aug 14 13:08 Fads and Silver Bullets Two articles in the latest Communications of the ACM discuss the fads that keep popping up in software development. The first is a light hearted tour of current and past .Key Silver Bullets and the second studies the rise and fall of the CORBA standard for handling distributed objects. For an expert discussion of the same phenomen see .See 2008-06-25 Wed Jun 25 11:06 No Silver Bullets Again below. .Open Bell08 Alex E Bell Software Development amidst the whiz of silver bullets =JOKE FADS XML UML OO WEB SERVICES Commun ACM V51n8(Aug 2008)pp22-24 .See http://doi.acm.org/10.1145/1378704.1378712 Names some previous failed fads. Describes current (200n) fads. Fads sound good but do not solve the real problems of software development. .Close .Open Henning08 Michi Henning The Rise and Fall of CORBA =HISTORY STANDARDS OMG MIDDLEWARE CORBA OBJECT-ORIENTED DISTRIBUTED NET NONSEQUENTIAL vs WEB DCOM SOAP XML Commun ACM V51n8(Aug 2008)pp53-57 .See http://doi.acm.org/10.1145/1378704.1378718 CORBA_history::=bleeding_edge_technology; popular_middleware; obscure_niche_technology, -- why? Two technical issues: complexity and missing features, Reasons endemic in a democratic open consortium of customers and vendors. OMG_process::=customers generate a fuzzy and possible umimplementable RFP; vendors propose their own rival solutions with no implementation; solutions are merged with no reference implementation. Process does not create high quality standards. Proposals .Box Only standardize existing best practice. No standard approved without a reference implementation. No standard approved without being used on realistic projects. .Close.Box Compare open source projects .Box Ideas developed as competing working solutions. It is more important to say "No" than to say "Yes". A dictator or cabal is useful for saying "No" to bad RFPs. Compare .See [Shirky03] .See [DenningYaholkovsky08] on problems with getting collaborative solutions. .Close.Box (dick)|- UML is another OMG standard of growing complexity with no reference implementation... .Close . 2008-08-13 Wed Aug 13 15:08 Mathematicians in the Movies In the previous post on this topic (below) I forgot a most excellent protrayal of a sane mathematician. It was an Australian movie called "The Bank". The mathematician is hired by a bank to develop software that will let them predict stock market changes precisely enough to make a lot of money.... From the Mandelbrot fractals for the titles (which turn out to be relevant) to the final twist it was excellent. And you didn't have to be mathematically literate to appreciate the characters and the plot. Reccommended -- if you can find it -- "The Bank" .See http://www.cinemaguild.com/thebank/HTMLindex.html (links to a Flash trailer, stills, etc etc). By the way -- I've rescheduled my fall office hours and will be back on campus next Tuesday 19th August, not Wednsday. See .See ./plan.html . 2008-08-12 Tue Aug 12 15:08 Everything old is new again Back in the 80's I worked on the performance of disk based data structures. I had original met this when optimizing data base performance in SSADM ( .See ./samples/methods.html#SSADM ) by `denormalizing` data and other tricks during `Physical Design Control`. Moving from the logically correct `normal` data base to a tuned design would make the difference between a feasible system and one that was too slow. The key paper .See [PechuraShoefler83] demonstrated that the time to access a record on a disk was directly proportional to the number of tracks moved: T = a + b * t, where `t` is the number of tracks and `T` the time. This leads one to be wary of accessing data at random on a disk (where `t` = `F`/3, where `F` is the number of tracks in the file). Serial access was the better way to access a large number of records on disk. From this it followed that many of the formula that hold for algorithms that use RAM do not hold when the there is so much data that it is spread out on a disk. For example, a binary search of an array of `n` data items takes an average time of `log(n)` if the data is in RAM, but if it covers a large piece of a disk then the time is `O(n)` .See [Botting88]. So I was attracted by the title of the following article, and then gratified by some of the conclusions. .Open KunkleCooperman08 Daniel Kunkle & Gene Cooperman Solving Rubik's Cube: Disk is the New RAM Commun ACM V51n4(Apr 2008)pp31-33 =DEMO CLUSTER DISK PERFORMANCE QUALITIES BANDWIDTH LATENCY Many disks give the same bandwidth as RAM when accessed by many CPUs. But must avoid random access to disk. Use disk sorts + collation + RAM caches instead. .Close . 2008-08-11 Mon Aug 11 16:08 Back from Oceanside I've been pleasantly offline for 7 days. Now for the latest, local, event involving .Key PSP -- the Personal Software Process. .See [Humphrey94] =ADVERT PSP . . . .See [Humphrey95a] =TEXT PSP IMPROVEMENT ESTIMATION METRICS . . . .See [Humphrey95b] =ADVERT for . . . .See [Humphrey96] =advert for PSP . . . .See [Humphey97] =TEXT PROCESS PEOPLE CMM PSP IMPROVEMENT PAPERWORK STANDARDS . . . .See [Humphrey00] =TEXT PROCESS PEOPLE TEAM CMM PSP IMPROVEMENT PAPERWORK MANAGEMENT . . . .See [Humphrey00b0] =SURVEY Etc. $PSP is a way of improving one's ability to develop software by following a defined series of steps and taking detailed measurements on the artifacts produced in each step. This is followed by doing statistics on the measurements. Thus you can make better estimates and also spot improvements. This is all inspired but Quality Control techniques that are standard in factories. There are two problems with the $PSP found in Watts Humphreys. One is tendency to encourage "Big Design Upfront" with detailed design artifacts being developed before code: .See http://c2.com/cgi/wiki?ExtremePspExperience The other is the time taken to gather the data using forms. Paul Conrad .See ./seminar/20060519PaulConrad.html proposed developing Eclipse plugins to gather the stats. Now we have Tom Gigler's .Key Moops ! .Open Gigler08 Tom Gigler Moops: A Web Implementation of the Personal Software Process Reporting System =DEMO TOOL PSP AUTOMATION PROCESS WEB/NET OPEN SOURCE PHP/MySQL CSCI655 CSUSB MS Project (May 2008) .Close . 2008-07-31 Thu Jul 31 16:07 Taking a Break I'll be out of town and offline for most of next week. By the way I'm now on .Key Facebook .See http://www.facebook.com/people/Richard_John_Botting/1341350809 and will probably using it during the coming quarter. . 2008-07-31 Thu Jul 31 15:07 Good Source and Open Source First a welsome to "Kode Vicious" a new column on the Communications of the ACM. Second a nice summary of the growing status of open source and the various resarch directions associated with it. .Open Neville-Neil08 George V Neville-Neil Kode Vicious: Beautiful code exists, if you know where to look =COLUMN SOURCE CODE BSD BROOKES PROTOTYPING Commun ACM V51n7(Jul 2008)pp23-25 .See http://doi.acm.org/10.1145/1364782.1364791 First quotes a piece of "Good" code -- deep in the BSD Kernel. Good code -- version numbers, named constants, objects in C, separate CPU dependent from CPU independent code. Prototyping -- use it to find out where the difficult problems are not to give marketting something "pretty". .Close .Open Laplante08 Phillip A. Laplante Open Source: The Dark Horse of Software? =SURVEY RESEARCH OPEN SOURCE Computer Reviews (Jul 2008) .See http://www.reviews.com/hottopic/hottopic_essay_09.cfm .Close . 2008-07-30 Wed Jul 30 16:07 More on the dark side of XML It's good to see more on the diseases associated with XML -- even if this article is not easy to read. .Open WildeGlushko08 Erik Wilde & Robert J Glushko XML Fever =ESSAY XML HYPE HARMFUL Commun ACM V51n7(Jul 2008)pp40-46 Lists the various strains of XML fever according to the experience of the XML users. The best thing about XML is its worst feature -- being able to easily create complex new formats for data. Example: using natural language for tag and attribute names does not make XML .Key self describing. It does not define the semantics. Problems handling non-tree-structured data. Disease: Using XML with no schema. XML tools encourage data oriented documents -- not multimedia. RDF::="Resource Description Framework". .Close For more on this topic see $Spinellis08 and $YAML below. For an early diagnosis see .See [Hohpe02] from 2002. . 2008-07-29 Tue Jul 29 13:07 Change of Plan I've come into campus/office one day early this week. Need to be home tomorrow... . 2008-07-29 Tue Jul 29 11:07 Requirements Engineering on the Web I'm a fan of the ACM Software Engineering Notes journal/magazine. I read the "RISKS to the Public..." column in each issue. I also look at Mark Doernhoefer's column reviewing relevant web pages. So here is my picks for his latest column plus a link to the article on the ACM web site. .Open Doernhoefer08 Mark Doernhoefer Surfing the Net for Software Engineering Notes: Requirements =REVIEW WEB/NET REQUIREMENTS ACM SIGSOFT Software Engineering Notes V33n3(May 2008)pp7-16 .See http://doi.acm.org/10.1145/1360602.1360606 Includes .Set The Atlantic Systems Guild .See http://www.systemsguild.com/index.html Joel Spolsky's Blog .See http://www.joelonsoftware.com Techrepublic .See http://articles.techrepublic.com.com/5100-3513-6146544.html Functional Specification Tutorial .See http://www.mojofat.com/tutorial Cal Poly on Non-Functional Requirements .See http://users.csc.calpoly.edu/~jdalbey/SWE/QA/nonfunctional.html Undreamt Requirements .See http://softwaresurvival.blogspot.com/2007/03/undreamtrequirements.html IDEF .See http://www.idef.com/idef0.html .Close.Set .Close By the way I've fixed the broken YAML link from May below... . 2008-07-28 Mon Jul 28 17:07 Many names for pursuit of quality systems I see that one of my hobby-horses has just turned up in the literature again. The question is how to ensure that software works. Over the decades I've advocated or seen advocated many techniques. For example: .Key SQA (Software Quality Assurance) emphasized adapting techniques use in manufacturing goods and in particular inspections. Inspections are still a practical, effective technique for finding defects, and an active research topic (see below). .Key V&V (Validation and Verification ??) is another buzz phrase for testing and manual review techniques for checking: (1) the software works as specified, and (2) the specification give the stakeholders what they want. In my experience you can produce software that is defect free as long as you have a lot of extra time to develop .Key proofs of correctness. It took me months to prove that the machine code routines in my graphic system did precisely what I wanted. THe bugs then appeared in the unproven pieces of code. I was able to extend them to some strange environments: COBOL for example, but the techniques do not scale. I've spent several years with .Key data directed methods of program design. These avoid proofs by constructing software that clearly must work. A precise grammatical definition of the input and output of a program is mapped directly into the code that produces the required output from the given input. Combine these methods with SQA (above) makes the production of working data processing programs a slow but reliable process. .Key Model-checking also avoids the need for program proving by making a mathematical abstraction of the solution and a logical model of the requirements. Then the various model-checking tools search cases where the solution does not produce the required results. These are very effective but again not cheap. .Open Hoffman08a Leah Hoffman In Search of Dependable Design =ESSAY RELIABILITY CORRECTNESS RISKS BUGS Commun ACM V51n7(Jul 2008)pp14-16 History: Intel Pentium Bug, FBI virtual case file, IRS tax-processing Impact of software on life and estimated costs of defects is increasing... NIST estimates $59.5 billion lost per year. Daniel Jackson: Need for precise requirements. Model checking .See Hoffman08b Eiffel .See [Meyer90] .See [Meyer91] $Alloy Booch: human communication is critical, not coding. .Close .Open Hoffman08b Leah Hoffman Talking Model-checking Technology =INTERVIEW HISTORY MODEL CHECKING VERIFICATION FSM TEMPORAL LOGIC Commun ACM V51n7(Jul 2008)pp112+110-111 Interview with Turing prize winners E Allen Emerson & Edmund M Clark & Joseph Sifakis Painful birth: theoretically trivial and practically impossible! Handle programs that do not stop. Avoid humans proving programs. Based on finite state abstractions of program+hardware and requirements specified in temporal logic. If property is not satisfied by abstraction then procedure gives a diagnostic trace of the bad behavior. Problem: State Explosion: no of cases to consider can grow exponentially with the size of the model. Benefits: precise specifications. Limits: 10^100 states! Microsoft has one used for device drivers! .Close .Open CobleighAvruninClarke08 Jamieson M Cobleigh & Gregory Avrunin & Lori A Clarke Breaking up is Hard to do: An Evaluation of Automated Assume-Guarantee Reasoning =EXPERIMENT TOOL AUTOMATED VERIFICATION NONSEQUENTIAL Ada Code FLAVERS LTSA ACM TOSEM Trans Software Eng & Methodology V17n2(Apr 2008)#7pp1-52 Given a system with two or parallel subsystems can we compute the necessary and sufficient conditions for the whole to perform as specified. FSF::="Finite State Verification". Using the L* algorithm to find assume-guarantee conditions can slow the process but doesn't waste memory. Some assume-guarantee conditions discovered where large: 250 states. Not known if this is the best one. .Close . 2008-07-25 Fri Jul 25 10:07 How to get from use case requirements to design class diagrams First a quick heads-up. I've updated my .See ./plan.html to show that I will be on campus on all but one Wednsday until the new year starts. Check it out! Also -- I've now got a FaceBook entry and one or two friends:-) Here are some intriguing results comparing different types of developers, different tools (including pencil and paper), and different ways of approaching object-oriented design. A key result is that with professionals the method and tool doesn't make a difference. However for students the techniques made (contradictory) differences to the qualities of diagrams. SO it appears that experience is a great leveler. .Open AndasSjoberg05 Bente Anda & Dag I Sjoberg Investigating the role of use cases in the construction of class diagrams Empirical Software Engineering V10n3(Jul 2005)pp285-309 $CR 0807-0688 =EXPERIMENT HOWTO DESIGN CLASS DIAGRAM USE CASE DOMAIN MODEL UML TOOLS Rose Tau Experiemnted with students and then with professionals. Compares two methods for going from usecases to design class diagrams: derivations vs validation. derivation:= use_case_text->domain_model; sequence_diagrams; design_class_diagram. validation:= use_case_text-> initial_class_diagram; sequence_diagrams; do( validate; extend). Measured time, completeness, and quality (coupling and cohesion). Tools didn't add to diagram quality with either students or professionals. Tools slowed down students but not professionals. Students got more complete design classes using validation rather than derivation. Students got better quality designs with the derivation method. Professionals -- no significant differences found. .Close . 2008-07-24 Thu Jul 24 16:07 Object-Oriented Software Process Modeling I thought the following might be be interesting, but the authors do not seem to be aware of previous proposals or with the Object-Management-Group's attempts to design an OO modeling technique for software processes. .Open BorsoiBecerra08 Beatriz Terezinha Borsoi & Jorge Luis Risco Becerra Definition and modeling of process using object orientation ACM SIGSOFT Software Engineering Notes archive V33n3 (May 2008) Article No. 2 =IDEA PROCESS MODEL OBJECT-ORIENTED Compare to earlier proposal .See [JaccheriPiccoLago99] E^3 OO process language. .But Why not just use the OMG_SPEM? OMG SPEM ::="Software Process Engineering MetaModel", .See http://www.omg.org/technology/documents/modeling_spec_catalog.htm .Close.But .Close . 2008-07-23 Wed Jul 23 13:07 What is a Requirements Engineer I'm always suspicious that any document doesn't quite match the reality it attempts to capture. Just a feeling that some level of detail will be missing between a digitized model and the continuous actuality. "The amp is not the teritory" as Korzibski put it. So I expect curriculums to miss vital objectives and standards to some how miss the spirit -- even tho' both are vital and useful. Here is a description of a standard curriculum for requirements engineers. .Open Paech08 Barbara Paech What is a Requirements Engineer? =STANDARD CERTIFIED REQUIREMENTS ENGINEER IEEE Software Magazine V25n4(Jul/Aug 2008)pp16-17 .See http://cerified-re.de/en Gives headings for new syllabus for certifying basic knowledge for requirements engineers. Industry-oriented Part of the SWEBOK -- Software Engineering Body of Knowledge. But how to certify experience and skill? .Close . 2008-07-22 Tue Jul 22 16:07 Statistics about projects Recent publications have quoted some interesting statistics. Robert Glass reports his discovery --decades ago -- that even thorough "all-path" testing does not find 60% of errors. Les Hatton has experimented with the use of checklists when inspecting source code -- and finds that checklists made no significant difference. Most of the difference in finding errors is due to the skill of the inspector. A detailed study of open source projects shows how the complexity of the source code suddenly changes -- both in magnitude and in form. Diomedis Spinellis has counted the use of formatting in code and discovered that more than half of the characters in the code are their to make the code more readable by humans. Finally, a group of researchers have experimented with the use of the UML in maintainence and found that it improves the quality significantly for a non-significant delay. So: don't rely on testing alone, but have good inspectors check your code and UML. And, as always lay out code in a readable way. .Open Glass08c Robert L Glass Two Mistakes and Error-Free Software: A Confession =ANECDOTE TEST COVERAGE vs ERRORS IEEE Software Magazine V25n4(Jul/Aug 2008)pp96+95 In the 1970's Glass analysed testing data base and discovered that 35% of errors where omissions and 40% only appear if a combination of pieces of code were taken -- 75% of errors not found by testing every piece of code. In 1981 analysed errors that are uncovered after going live. 60% were omitted code, and 23% were failing to reset data. Conclusion: good testing does not expose most errors. .Close .Open Hatton08 Les Hatton Testing the value of checklists in code inspections =EXPERIMENT INSPECTIONS CHECKLISTS IEEE Software Magazine V25n4(Jul/Aug 2008)pp- No evidence that checklists decreased the number of undetected faults in a program. Idea to use capture-recapture techniques. Tried both allowing engineers to use checklists and mandatin that some used checklists. Effectiveness : the best engineers found 10 times as many faults as the worst engineers. Two person teams can increase per centage found from (average) 53% to 76%. Raw Data .See http://www.leshatton.org/Data_Inspections_05_06_2007 .Close .Open SangwanVercellone-SmithLaplante08 Raghvinder S Sangwan & Pamella Vercellone-Smith & Phillip A Laplante Structural Epochs in the complexity of software over time =ANALYSISB COMPLEXITY METRICS XS Structure 101 IEEE Software Magazine V25n4(Jul/Aug 2008)pp66-73 XS::Metric="Excessive Structural Complexity", Tangles + Fat! In open source development complexity slower increases and trhen suddenly drops. The drop in complexity occurs as complexityanges levels. .Close .Open Spinellis08a Diomidis Spinellis The way we program =ANALYSIS OPEN SOURCE CODE COMMENTS LAYOUT DOCUMENTATION IEEE Software Magazine V25n4(Jul/Aug 2008)pp89-91 Figure 1 is an excellent obfuscated piece of C code. Also did the stats on 2 dozen open source projects. More than half of the source code is there to help developers communicate with each other not with the computer. .Close .Open DzidekEtAl08 Wojciech James Dzidek & Erik Arisholm & Lionel C Briand Realistic Empirical Evaluation of the Costs and Benefits of UML in Software Maintenance =EXPERIMENT UML MAINTENTANCE EFFECTIVENESS VALUE Oslo Java Eclipse BESTWeb IEEE Trans Software Engineering V34n2(May/Jun 2008)pp407-432 Use 20 real developers to maintain real software! BESTweb:=`Internal bibliographic data base on software cost and effort estimation`. Realistic (1..2 weeks) tasks. Half had UML diagrams. Replicates on .See [Arisholm06BriandHoveLabiche06] UML improves quality significantly with only a 14% worse time. .Close . 2008-07-21 Mon Jul 21 12:07 Set of articles on Managing software projects Back in the office again to give the older Dell it's monthly updates. This time experimented with taking the bus to campus while carrying the machine. Now to see if I can get it home again. The following will be of most use to managers, tho's there is little surprising here. .Open IacovouNakatsu08 Charalambos L Iacovou & Robbie Nakatsu A Risk profile of offshore-Outsourced Development Projects =SURVEY OFFSHORE DISTRIBUTED DEVELOPMENT Commun ACM V51n6(Jun 2008)pp89-94 It sounds like the usual suspects: lack of management commitment, miscommunicated requirements, Inadequate user involvement, Failing to manage expectations, Poor change control, developers don't understand the business or the technology, unexpected costs. .Close .Open WatsonEtAl08 Richard T Watson & Marie-Claude Boudreau & Paul T York & Martina E Greiner & Donald Wynn Jr The Businesss of Open Source Commun ACM V51n4(Apr 2008)pp41- =POLL MANAGERS CEOs OPEN SOURCE ONE SIZE OSSg2 Trolltech Qt Qtopia MySQL Sleepycat Berkely DB JBoss JEMS Hibernate Tomcat Hire the best programmers and pay well. Dual licensing: free to use, license to modify and sell. .Close .Open HallEtAl08 Tracy Hall & Helen Sharp & Sarah Beecham & Nathan Baddoo & Hugh Robinson What do we know about developer motivation =SURVEY =METAANALYSIS MOTIVATION IEEE Software Magazine V25n4(Jul/Aug 2008)pp92-94 Developers motivation is not a simple thing but complex and includes these specific ones: challenge, change, benefit, problem solving, team work, science, experiment, and best practices. .Close . 2008-07-18 Fri Jul 18 05:07 Back We flew in Monday night and it took until Midnight to get home. Add to this that our internal clocks are 8 hours forward.... So at 4 this morning (lunchtime in England) I found my self reading the IEEE Software Magazine V25n4 (Jul/Aug 2008). It is a special issue dedicated to devloping .Key software for scientists. The editorial introduction (see page 19 and Figures 1 and 3) describes how scientists continually adjust there requirements as they use the software -- thus causing major problems to software engineers with a non-itterative life cycle. This fits well with a paper/article I read 30 years ago ( .Hole ) which showed that 90% of the runs of software in a large, well run, laboratory failed. It turned out that a scientist evolves the software until it produces the required result and then discards and moves on to a new program. Quite different to data processing where a program is developed and then used for years (with small changes). Here you get a clear maintenance phase made up of small changed plus occasional catestrophic rewrites and replacement as the technology and/or stakeholders change. The only constant is iteration -- even in the Tower of London. Which has been rebuilt and modified and patch for a 1000yeras... by the way -- it is worth a visit. Remind me to to write up the failure of interaction design in the new rolling stock on South Western Railways -- 100% of a small (4), non-scientific sample of users couldn't figure out how to open or close the door of the new lavatories. . 2008-06-29 Sun Jun 29 07:06 Taking a break I'm about to fly home to England until July 14th. Wish me luck.... I'll restart this weblog in the middle of next month. . 2008-06-28 Sat Jun 28 09:06 Expensive user or user interface mistakes Who should pay if the user mistypes a number and the interface does not do a " .Key Sanity check " that would have found the error? .Open OlsenK08 Kai A Olsen The $100,000 Keying error IEEE Computer Magazine V41n4(Apr 2008)pp108+106-107 + Correspondence V41n6(Jun 2008)p7 =EXPERIMENT RISK USER INPUT ERROR Fossbakk System accepted an extra digit in an account number and sent money to wrong account. In experimental web-based simulation with "confirm" 124/1,778 transactions had errors. 29% of wrong number had extra digits in a sequence of repeated digits. Modulo 11 would find all but 3. Confirmation does not catch common errors. Always spot and highlight too many digits -- (Sanity check) Need other checks of all user input. Example: modulo 11 CRC. (Alan Quirt)|- typed comma for period and multiplied payment 100 times. (dick)|- give a picking list rather than expecting user to input characters. .Close . 2008-06-27 Fri Jun 27 13:06 Positive demonstrations The literature of software development is full of papers and articles demonstrating a new idea, methid, technique or technology ad make large claims as to the value of the idea... It is only in the lat five or six years that solid experimental and exmpirical work has started to appear to back up these ideas. So here are two positive and plausible ideas... (1) use Aspects to implement Features in an iterative "feature-driven" process. (2) Use tools that combine text and diagrams in a seamless way. .Open ApelLeachSaake08 Sven Apel & Thomas Leach & Gunter Saake Aspectual Feature Modules IEEE Trans Software Engineering V34n2(Mar/Apr 2008)pp162-180 =DEMO FEATURES FOP + ASPECTS AOP ITERATION PRODUCT LINES AFM AFM::="Aspectual Feature Module", combines iterative Feature Oriented Programming (FOP) with Aspect Oriented Programming(AOP). .Close .Open Dori08 Dov Dori Words from Pictures for Dual-Channel Processing =DEMO TOOL GRAPHIC NATURAL LANGUAGE SYSTEM DESIGN MODELLING OPM OPD OPL OPCAT FSM Commun ACM V51n5(May 2008)#7pp47-52 Claims that automatically linking diagrams to text makes process more intuitive. .See [MillerJ02] .Close . 2008-06-26 Thu Jun 26 11:06 Standards for Small Enterprises More evidence (also see .See [OktabaEtAl07] ) that software develpment standards do not fit all companies equally. .Open LaporteAlexandreRenault08 Claude Y Laporte & Simon Alexandre & Alain Renault Developing International Standards for Very Small Enterprises IEEE Computer Magazine V41n3(Mar 2008)pp98-102 =STANDARDS SMALL ENTERPRISES VSE ONESIZE ISO/IEC WG24 Survey shows that small enterprises don't implement ISO standards because (1) no resources, (2) not required, & (3) standards are difficult bureucratic and don't fit small businesses. Working Group 24 is developing special standard `profiles` and packages for small enterprises. Some enterprises will try out the new standards -- real soon now. See .See http://profs.logti.etsmtl.ca/claporte/English/VSE/index.html .See http://www.cetic.be/indexEN.php3 (dick)|- This might fix the problems recently reported with ISO/IEC standards .See [Glass07a] .Close . 2008-06-25 Wed Jun 25 11:06 No Silver Bullets Again One or two papers make a gigantic impact on software engineering. Fred Brookes's 1987 article "No Silver Bullets" is one of these... ten years later people are still discussing it's thesis: Software development is in essence difficult. .Open FraserManci08 Steven Fraser & Dennis Manci No Silver Bullet: Software Engineering Reloaded IEEE Software Magazine V25n1(Jan/Feb 2008)pp91-94 =REPORT OOPSLA PANEL HISTORY STATUS Brookes Werewolf Fred Brookes + David Parnas + Linda Northrop + Aki Namioka + Dave Thomas + Ricardo Lopez + Martin Fowler. Guess who turned into a werewolf! Video on YouTube! All because of .See [Brooks87] Also see .See [Cox90a] .See [Harel92] .Close . 2008-06-24 Tue Jun 24 14:06 Cones and acronyms A couple of essays on software development. Both refer to the idea of the cone of uncertainty. One has too many acronyms, but summarizes a lot of accumulated wisdom. .Open Boehm08 Barry Boehm Making a Difference in the Software Century IEEE Computer Magazine V41n3(Mar 2008)pp32-38 =ESSAY IDEAS ACRONYMIC CATCHPHRASES ONESIZE OSUFA BITAR IKIWISI DAVAS SISOS TANIA Rapid change vs THWADI::="Thats How We've Always Done It". Uncertainty and Emergence. Cone of Uncertainty. .See [Armour08] BITAR::="Buy Information To Avoid Risk", Do extra things to reduce uncertainty. IKIWISI::="I'll know it when I see it". So Iterate. Dependability DAVAS::="Dependability As Value Assured to Stakeholders". Example of conflicting values in a well known failed project. Diversity. OSUFA::="One Size Fits All". Culture makes a difference in the adoption of process standards. SISOS::="Software Intensive Systems of Systems". OSUFA leads to failure Interdependence. TANIA::="There Are No Islands Anymore". No part of a system or of a process is isolated. Figure 5, p36: Activities >< Phases >-> Level_of_activity, CF RUP. $SISOS need more time for Architecture and Risks. .Close .Open Armour08 Phillip G Armour The inaccurate conception Commun ACM V51n3(Mar 2008)pp13-16 =ESSAY ESTIMATION UNCERTAINTY LIFECYCLE Cone_of_uncertainty::=map[t:time]([1/f(t) .. f(t)]* actual ), for some dcreasing function f. "Describes how estimates get more accurate as a project proceeds". At that start of new product estimates are between [0.25 .. 4.0] times the actual value. Tightens as uncertainties are removed. Express estimates as a distribution mapping qualities to probability of success. S shaped curve. commitment is not an estimate. .Close . 2008-06-23 Mon Jun 23 16:06 Experiments on TDD and Pair programming Two recent ideas in programming are (1) test driven development .See [Beck01] .See [Reifer02] .See [ErdogmasMorisioTorchiano05] and (2) Pair programming. I've documented quite a few papers and articles about these particular tricks. In test-driven design you write the tests before you write the code and in pair programming changes to code are made by one person while another person watches and makes comments. These two following experiments try to find out how these two techniques work. .Open JanzenSaidian08 David S Janzen & Hossein Saidian Does Test-Driven Development Really Improve Software Design Quality? IEEE Software Magazine V25n2(Mar/Apr 2008)pp77-84 =EXPERIMENT TEST TDD CODE TECHNICAL QUALITITIES Evidence that TDD is associated with simpler and better tested modules. Two myths: TDD means (1) write all tests first or (2) automate all the testing. .See [JanzenSaiedian05] TDD::process=High-level design; TDD_design_and_code; test. TDD_design_and_code::= unit_test; code; refactor; O(TDD_design_and_code). .Close .Open LiuChanNosek08 Kim Man Lui & Keith C C Chan & John Teofil Nosek The Effect of pairs in program design Tasks IEEE Trans Software Engineering V34n2(Mar/Apr 2008)pp197-211 =EXPERIMENT PAIR PROGRAMMING vs LONE PROGRAMMING APTITUDE Used aptitude tests to act as a surogate for programming and eliminate language skill effects. Pairs substantially outperformed individuals in procedural/algorithmic design tasks. Pairs substantially outperformed individuals in deductive problem solving. Fewer errors. Faster time. .Close . 2008-06-21 Sat Jun 21 08:06 VBScript Samples I've just been asked .Box canyou providesample vb scripts From: .Key Nsunil .Close.Box Nsunil didn't give me an EMail address to reply to, so I'll reply here. This site does have examples of code in many languages but nearly all of them have been written by students as part of their course work. See .See ./samples/ for these. When I have written up a language it is to help me learn the language. So far nobody has tackled any members of the VB (Visual Basic) family. .Hole VB By the way -- this site does not host answers to home work questions. . 2008-06-20 Fri Jun 20 14:06 Toulmin Arguments Rebuttals I've been researching the work of Stephen Toulmin and its use in Reqirements Engineering. I've reworked .See [HaleyLaneyMoffettNuseibeh08] a little as a result and have added a new pair of directives (.But and .Close.But) to my MATHS language. Here is the background reading. See .See [ChesnevarMaguitmanLoui00] for a history. .Open Toulmin58 Stephen Edelston Toulmin The uses of argument. Cambridge [Eng.] University Press, 1958 BC177 =THEORY INFORMAL LOGIC ARGUMENT RATIONALE Developed into text .See [ToulminRiekeJanik78] .Close .Open ToulminRiekeJanik78 Stephen E Toulmin & Richard Rieke & Allan Janik An introduction to reasoning Macmillan, c1979. New York BC177 .T59 =TEXT INFORMAL LOGIC ARGUMENT RATIONALE GRAPHIC Based on .See [Toulmin58] Toulmin_argument::=data "--->" O(qualifier) claim ", " warrant O(backing) O(rebuttal) . .As_is Backing .As_is | .As_is Warrant .As_is | .As_is Data -------------> (Qualifier) Claim .As_is | .As_is Rebuttal Toulmin_argument::=following .Net Claim::Utterance, conclusions Data::Utterance, facts Warrant::Utterance, general rule linking the data to the claim. Backing::Utterance, credentials when the warrant is not convincing enough. Rebuttal::Utterance, restrictions which apply to the claim. Qualifier::Phrase, possibly, likely, probably, certainly, presumably, necessarily. .Close.Net .But .See [Loui08] .See [HaleyLaneyMoffettNuseibeh08] .Close.But .Close .Open Loui08 Ronald P. Loui A Modest Proposal for Annotating the Dialectical State of a Dispute SCRIPTed V5n1(2008)#176 .See http://www.law.ed.ac.uk/ahrc/script-ed/vol5-1/loui.asp =ESSAY REBUTS Toulmin diagrams KISS RATIONALE .See [ToulminRiekeJanik78] Just list the data for a conclusion underneath the conclusion with the rebuttals etc ?(hidden) beside them. Or use a simple tree diagram: children support parents and rebuttals have a heavy horizontal link to what they rebut. .Close . 2008-06-18 Wed Jun 18 15:06 Design as Iteration Here is a collection of papers and articles on the topic of how to design software. First $DenningYaholkovsky08 bewail the lack of tools that help people become a team that can solve a wicked problem. $WirfsBrock08 suggests some steps to help design. $Glass08b notes the impossibility of supporting a single designer's intuitive process with current technology. He notes that design is iterative... a common theme. $HadarLeron08 show that object-oriented design is not obvious but has to be overlaid on top of intuitive ideas. $HallRapanottiJackson08 propose $POSE -- a new way to manage and document the design process. This is the first method that has explicit backtracking steps the replace previous designs by better ones. Also one which seems to be able to work with many and all notation. Finally $Patton08a praise iterative design methods that test early and test often. .Open DenningYaholkovsky08 Peter J Denning & Peter Yaholkovsky Getting to "We" Commun ACM V51n4(Apr 2008)pp19-24 =ESSAY TOOLS PEOPLE TEAM WICKED PROBLEMS SYNERGY DESIGN Charettes Collaboration is when people create synergistic solutions|strategies Notes that tools support communication, coordination and cooperation rather than collaboration. .Close .Open Wirfs-Brock08 Rebecca J Wirfs-Brock Design Strategy =ESSAY DESIGN PROBLEMS TECHNIQUES TEAM IEEE Software Magazine V25n3(May/Jun 2008)pp14-15 Design is hard -- you need to choose your battles. Focus on What?? First share/note stories about hopes,wishes, fears, convictions, ... . Sort out certainties, unknowns, nagging concerns. In meeting all (write; read; note) stories. Find out stakeholder priorities and desired qualities -- it can drive design. Distinguishes: core design work | revealing design problems | the rest. Revealing problems tend to be wicked. Focus on the core first. Don't forget domain models. .Close .Open Glass08b Robert L Glass Software design and the Monkeys brain =ESSAY DESIGN ITERATION CREATION Commun ACM V51n6(Jun 2008)pp- 2008)pp21-22 Research showed mental design process: understand problem; create solution; do(test; modify); tests OK. Tools & methods slow process down. Unless can record directly the designers brain! .Close .Open HadarLeron08 Irit Hadar & Uri Leron How Intuitive is Object-Oriented Design =EXPERIMENT STUDENTS LEARNING OO DESIGN Commun ACM V51n5(May 2008)pp- 2008)#7pp41-46 Distinguishes two different modes of thought: S1 and S2. S1: fast, automatic, effortless, unconcious, and inflexible. S2: slow, concious, effortful, but relatively flexible. S2 acts a s amonitor and critic of S1. Inheritance is backward(S1). Surface features (S1) lead to bad OODs. Confusing abstract and concrete classes (S1). Identifying coding with development (S1). It is hard to replace S1 with S2. .Close .Open HallRapanottiJackson08 Jon G Hall & Lucia Rapanotti & Michael A Jackson Problem Oriented Software Engineering: Solving the Package Router Control Problem IEEE Trans Software Engineering V34n2(Mar/Apr 2008)pp226-241 =DEMO POSE METHOD ENGINEERING DESIGN ANALYSIS ARGUMENTS RATIONALE ITERATION PROCESS POSE::="Problem Oriented Software Engineering", based on Jackson's Problem Frames .See [Jackson01] , using informal or formal satisfaction arguments that target stakeholders, refinement, iteration, backtracking, etc., Models a problem+solution as a set of Domains+Solution+Requirements .As_is D[1],...D[2], S |- R A Gentzen Sequent! Domains have a name(N) and description(E) that mentions phenomena: controlled(c), observed(o), and unshared(p): .As_is D(p)[o]^c = N : E Solutions are a domain. Requirements have a name and description that constrains(c) certain phenomena and refers (r) to other phenomena: .As_is R[r]^c = N : E. Progress is made by transforming problems (like inference rules in SOS or Natural Deduction). Each transformation has NAME and an adequacy argument. Arguments have a Justification, Includes, Concerns, Phenomena, and Resulting Problems (if any). Sample of Problem Transformations .List CONTEXT INTERPRETATION Justify a new description of a domain. REQUIREMENT INTERPRETATION Justify an expanded requirement SOLUTION INTERPRETATION Justify the expansion of the solution. Example: nSep. Separation into independent parts. Example: applying the MVC pattern. Example: Using an analogic model. SEPARABLE PROBLEM Explain how one problem becomes a set of independent problems PROBLEM PROGRESSION Changes requirements SOLUTION EXPANSION Moves known components into environment and generates a set of problems to be solved. Backtracking. Justify the abandonment of a previous solution and replacement by a new one. .Close.List Has been tested in a safety critical system -- avionics -- using Alloy. Development involves learning about the context of the problem as well as about the requirements and solutions. Justifications must satisfy the stakeholders. Different stakeholders will need different justifications. Development is an iterative activity. Concerns lead to backtracking. .Close .Open Patton08a Jeff Patton Getting Software RITE =ADVERT RAPID ITERATIVE TEST EVALUATION RITE vs FORMAL TESTING IEEE Software Magazine V25n3(May/Jun 2008)pp20-21 RITE::="Rapid Iterative Testing and Evaluation". RITE_iteration::=do(test; fix). Problem: your shiny new software confuses your stakeholders. Solution: Acceptance testing. Defines formal testing. Compares to lite testing of paper low-tech prototypes initially. RITE -- pool of users, lots of iterations, electronic share prototypes. Not specs but prototypes. .Close . 2008-06-17 Tue Jun 17 10:06 Mathematicians and Movies I guess it all starts with Archimedes running naked through the streets of Syracuse .See http://www.jola-montessori.com/psm/80/articles/math.html , bearing in mind that the ancient Greek athletes were naked.... But then you have "A Beautiful Mind" showing the peril of a mind that can see patterns anywhere... and then "Proof" where the daughter of a dead and insane mathematician may just be starting to show the same brilliance and possible instability. In both cases the movies are very well made and the acting most excellent. But do you really have to be crazy to do mathematics -- I hope not. But it is peculiar how you can suddenly see something that becomes in retrospect entirely obvious -- especially in a field that you know well. So last night at 3am I realized that my MATHS system may be capable of expressing Russell's Paradox.... and then at 6am that I'd already noted the danger of eXtreme BNF --(XBNF) defining sets that can not exist. Hence an update to .See ./papers/rjb08.xbnf.html a old seminar paper. By the way, but not unrelated, I just revized the wikipedia entry on Russell's "Axiom of Reducibility". . 2008-06-16 Mon Jun 16 16:06 Finding Defects in software One of the topics I researched and wrote up while with the British Civil Service (1968-82) was .Key Software Quality Assurance -- how can youi be sure that a piece of software has zero defects, even though it is written by people who make mistakes. We had a half-a-dozen techniques including Desk Checking, Peer Review, Walkthroughs, and Fagan's Inspections. Fagan's technique .See [Fagan76] was one of the few software techniques that generated evidence of its effectiveness. Here are the key properties of Fagan Inspection: .List Can be carried out on any artifact. Looks for major defects that cause the software to misbehave and minor defects which lead to lower quality but no bug. Is organized by a moderator. Work is driven by check lists of things to look for. Inspectors first work alone and then have a meeting to review and collate what they have found. The producers of the artifact do not take an active part in the hunt for bugs. ... The moderator collects statistics on the defects found and tunes the check lists, the rate of inspection, etc. for find as many defects per unit time. .Close.LIst Shull and Seaman have recorded how this evidence helped the technique be adopted in NASA. .Open ShulSeaman08 Forrest Shull & Caroline Seaman Inspecting the History of Inspections: an example of evidence-based technology diffusion IEEE Software Magazine V25n1(Jan/Feb 2008)pp88-90 =HISTORY INSPECTION NASA SQA TECHNICAL CODE QUALITY How evidence of effectiveness and adaption of method moved Fagan inspections from IBM to throughout NASA during the late 80's and early 90's. .Close . 2008-06-14 Sat Jun 14 10:06 Catching up on some reading If I had had a proper course on logic then I would have learned of Ramsey's work on the foundations of mathematics when I needed it -- 40 years ago. As it happened, I've just finished studying the following which shines a brilliant light on a book ("Principia Mathematica") that has had a very powerful influence on my thinking. The line of thinking lead to $MATHS. The good news is that Ramsey's work does not invalidate MATHS. .Open RamseyFP60 Frank Plumpton Ramsey (ed R B Braithwaite) Foundations of mathematics and other Logical Essays Littlefield Adams, Paterson NJ 1960 =ESSAYS PHILOSOPHY LOGIC MATHEMATICS TYPES PROBABILITY Essays, papers, reviews, and notes dating from the 1920s. .List Published .List The Foundations of Mathematics 1925 Mathematical Logic 1926 On a Problem of Formal Logic 1928 Note on the preceeding paper 1926 Facts and Propositions 1927 .Close.List Unpublished .List Truth and probability 1926 Further Considerations 1928 Last Papers 1928 .Close.List Appendix: Critical Notice of L Wittgenstein's "Tractatus Logico-Philosophicus" .Close.List PM::="Principia Mathematica", .See [WhiteheadRussell63]. Dispenses with PM's pphilosophical .Key axiom of reducibility by using Wittgenstein's `Tractatus Logico-Philosophicus`. .Box PM gives a syntactic definition set of special `predicative` truth functions to avoid paradoxes and then has to assume that all sets (for example) of objects of a given type can be expressed using one of these functions. Ramsey uses a semantic definition from Wittgenstein that makes any truth function `predicative`. .Close.Box Argues for the need for a theory of types. Does not discard axioms of infinity and selection. .Box PM's .Key Axiom of infinity asserts the existence of an infinite domain, Needed to define infinite numbers. Because, in PM, numbers measure the size of sets of objects of a particular type. Indeed a number is a set of all sets with the same size of that type. So the largest number for a given type is = to the size of the type. PM's .Key Axiom of selection is equivalent to the Axiom of Choice .See wikipedia .Close.Box .Close . 2008-06-13 Fri Jun 13 15:06 Workload and workflow Understanding (=? documenting) the work needed for various tasks is a useful step in developing software. Here are two articles on the two uses of the information. .Open SmithAJ07 Alan J Smith Workloads (Creation and use) Commun ACM V50n11(Nov 2007)pp43-54 =ESSAY PERFORMANCE QUALITIES BENCHMARK .Close .Open GilDeelmanEtAl07 Yolanda Gil & Ewa Deelman & Marc Ellisman & Thomas Fahringer & Geoffrey Fox & Dennis Gannon & Carole Goble & Miron Livny & Luc Moreau & Jim Myers Examining the challenges of Scientific Workflows IEEE Computer Magazine V40n12(Dec 2007)pp24-32 =REPORT CONFERENCE NSF DATA PROCESS DFD MODELS SCIENCE .Close Does anybody know why the Innoculate update process downloads a complete new executable `and` runs at normal priority? Is it just one of the usual suspects for bad software: {stupudity, ignorance, malice, ...}. . 2008-06-12 Thu Jun 12 17:06 Fear and loathing of upgrades -- and bugs Below you will find .See 2008-05-30 Fri May 30 10:05 Fear and Loathing of Upgrades Part 2 .See 2008-05-27 Tue May 27 20:05 Fear and Loathing of Upgrades the previous episodes in the saga of upgrading my Palm Tungsten -- I may finally have got the handheld and its two laptops to agree on a collection of categories for Contacts. It only took a couple of weeks. Meanwhile here are some statistics about bugs: (1) bugs don't fit a Pareto distribution. (2) You can't tell if a change is clean or buggy by looking at its statistics. Perhaps Kim&Whitehead&Zhang should try the time of day when the change was made. The folk theorem is that work done after 4pm on Friday always needs fixing. .Open Zhang08 Hongyu Zhang On the Distribution of Software Faults IEEE Trans Software Engineering V34n2(Mar/Apr 2008)pp301-302 =EXPERIMENT STATISTICS PROBABILITY FAULTS BUGS DEFECTS MODULES Eclipse For x:[0..], Pareto(x)::= 1-(\gamma/x)**\beta. Weibull(x)::=1 -exp(-(x/\gamma)**\beta). Weibull predicts % of faults in % of modules better than Pareto in Eclipse. .Close .Open KimWhiteheadZhang08 Sunghun Kim & James Whitehead Jr & Yi Zhang Clasifying software changes: Clean or Buggy IEEE Trans Software Engineering V34n2(Mar/Apr 2008)pp181-196 =STATISTICS OPEN SOURCE CHANGES SVM Has a definition of a buggy change -- a change that is later changed and described as a bug/fix etc. Analyses a dozen open source projects. Doesn't find a simple way to recognise a change that contains a bug vs a clean change. .Close . 2008-06-11 Wed Jun 11 15:06 Map -- Sort -- Reduce .Open DeanGhemawat08 Jeffrey Dean & Sanjay Ghemawat MapReduce: Simplified Data Processing on Large Clusters Commun ACM V51n1(Jan 2008)pp107-113 =EXPERIENCE FUNCTIONAL PROGRAMMING Google DATA C++ LIBRARY FP Very large numbers of problems have been programmed to run on large clusters. Each is written as two (2) functions: map: Key> List(Key>< Value), reduce: Key>List( Value), System applies map to some data, sorts data by key and passes it to reduce. map ->sort -> reduce All the concurrency, distribution, fault tolerance etc. Is provided by the system not the programmer. Note: the idea uses functions in LISP and FP(Jim Bachus) and standard in MATHS. Similar techniques used in UNIX/Linux scripts. .Close . 2008-06-10 Tue Jun 10 17:06 Language Design -- English XML BPEL DynAlloy I designed my first language before I was taught to program. It was a way of recording operations for a manual calculator. This must have been in the summer of 1963 or 1964. In my first year at college I learned my first programming language (something more primitive than FORTRAN I) and designed my second language as a way to encode flowcharts for input into a computer. Very primitive. Never implemented. The next attempt was a combination of logic and programming mostly done while commuting from Clapham to Uxbridge later in the 1960's. It was inspired by LISP -- but with fewer parentheses. In my graduate work I developed a language for drawing graphics in Algol 60 -- PICTALGOL. It was implemented as a library of procedures. It was used in a few projects in the early 1970's. Meanwhile I started work on ways to record mathematics and logic in a computer readable form. This lead to PINAPL ( PINAPL Is Not A Programming Language) in the 1980s and $MATHS in the 1990s onward. I still working on this. I will say nothing of the shorthand I worked out for taking notes that I started in the 1970's and am still tinkering with to this day. No mention of the two dozen programming languages I've learned and used. So, I'm always interested in new languages and what people say about old ones. Robert Glass has recently noted the ambiguity of English grammar and phonetics -- how do you pronounce "Gough"? Spinellis gives a very brief style guide for using XML well. Louridas shows how a special XML document type can define a business process. Finally, Frias et al show that an extension of Alloy enables the faster analysis of specifications. .Open Glass08 Robert L Glass On the impurity of the English language IEEE Software Magazine V25n2(Mar/Apr 2008)pp96+95 =ESSAY ENGLISH LANGUAGE PHONETICS AMBIGUITY .Close .Open Spinellis08 Diomidis Spinellis Using and Abusing XML IEEE Software Magazine V25n2(Mar/Apr 2008)pp88-89 =EXAMPLES XML VERBOSE LANGUAGES INTEROPERABLE SCHEMA STYLE Don't use XML without defining a DTD. Use standard schemas if possible. Design own schemas to be used & to express meanings. Eg. Use meaningful tags with attributes in tags! .Close .Open Louridas08 Panagiotis Louridas Orchestrating web services with BPEL IEEE Software Magazine V25n2(Mar/Apr 2008)pp85-87 =ADVERT BPEL XML PROCESS WEB/NET SERVICES BPEL ::xml= "Business Process Execution Language" 36 line "Hello World". p87: Lists resources. process:=partner_links; variables; fault_handlers; sequence. First understand the business requirements. .Close .Open FriasEtAl08 Marcello F Frias & Carlos G Lopez Pombo & Juan P Galeotti & Nazareno M Aguirre Efficient analysis of DynAlloy Specifications ACM TOSEM Trans Software Eng & Methodology V17n1(Dec 2007)#4pp1..34 =DEMO SPEED DynAlloy vs Alloy SPECIFICATION MODEL CHECKING HOARE TRIPLES Instead of traces defines {pre}action{post}. Much faster than Alloy. .Close . 2008-06-09 Mon Jun 9 12:06 Notes on Requirements There has been a spate of publications on the connections between technological solutions and business needs. I'll list the citations and notes below. But here is my personal list of things I know about Requirements: .List You shouldn't think of requirements as an artifact or as a phase. There are a process, a discipline, a work in progress from the start of a project thru to its obsolescence and replacement. .See CaoRamesh08 Requirements never go away, they mutate as technology and processes are changed. Get out of your office and out from behind the machine. Go to where the problems are. `You can learn a lot by just looking.` Plan interviews. Avoid rigid development processes .See Codefirst07 What the stakeholders require is not technology but what it can do for them. Your enterprise only needs technology to support its real business needs. Data and information is central to meeting enterprise needs. .See RagowskyLickerGefen08 .See Maiden08 .See DiesteJuristoShull08 .See WagnerPiccoli07 First provide the data, but also provide the desirable qualities: usability, safety, security, etc., to fit the enterprises needs. .See Boegh08 .See TondelJaatenMeland08 .See HaleyLaneyMoffettNuseibeh08 .See Patton08 Technology often has a bigger effect on qualities than on the information provided. You have to `understand` the real world situation before you propose solutions. Understanding has more value than artifacts and documents. .See DiesteJuristoShull08 Express user functional requirements as simple and specific stories .See Desilets08 .See Mugridge08 first. Identify the user. Identify what they need. What qualities? Executable artifacts (even bad ones) are more valuable than documents that can't be executed. .See WingM07 .See Rainsberger07a So tests are a valuable expression of requirements. .See CaoRamesh08 .See MartinMelnick08 .See Mugridge08 Can you describe, in detail, what is currently done and how your solution fits into this process? .See WagnerPiccoli07 .Key Only connect -- design connections into the current systems information flows. There is no logical process that derives technical solutions fit what stakeholders say they need. You have to invent and create solutions and then show that the fit the enterprise requirements. .See Maiden08 You can use tools to connect documented requirements to code. .See MohanRamesh07 .See BurgeBrown07 .See Cleland-HuangEtAl07 Manuals don't introduce new solutions .See RagowskyLickerGefen08 -- you need to give training and support. Throwing a SRS for a new products over a wall for engineers to develop doesn't work well. .See SafayiniEtAl08 .See CaoRamesh08 .See WagnerPiccoli07 Iteration/Evolution often works well. Both the user's needs, the system requirements, can all the code all evolve together. .See CaoRamesh08 But beware the requirements creep that kills projects or makes them unprofitable. .Close.List .Open RagowskyLickerGefen08 Arik Ragowsky & Paul S Licker & David Gefen Give me Information, Not technology Commun ACM V50n12(Jun 2008)23-25 =POLL INTERVIEWS CIOs =HISTORY MIS IS IT DYSFUNCTIONAL REQUIREMENTS vs TECHNOLOGIES DATA Business users value information and information services. They perceive IT as providing technology not business value. Technology is not about fixing the projector in the conference room. Too much technology is bad. Vendors do not help by promising too much. Technical manuals do not help, either. Systems/Business analysts should focus on user and managers as partners. Find out what information services are needed and only then proceed to Research and Development (R&D) of technology and technical requirements. Avoid solving non-problems. Listen. Avoid technical Jargon. Talk business. .Close .Open Maiden08 Neil Maiden User Requirements and System Requirements IEEE Software Magazine V25n2(MAr/Apr 2008)pp60- = USER SYSTEM REQUIREMENTS Distinguish user requirements from system requirements. Need both, separately. A user requirement comes from a user and describes a new property of the domain or business process. Goals. A system requirement describes a desirable property of the new system. `The system shall ...`. Use cases or other structured text. Implementing system requirements should lead to satisfying user requirements -- Satisfaction arguments. It is a design task to move from user to system requirements. .Close .Open SafayiniEtAl08 Frank Safayini & P Robert Duimering & Kimberley Zheng & Natalia Derbentseva & Christopher Poile & Bing Ran Requirements Engineering in New Product Development Commun ACM V51n3(Mar 2008)pp77-82 =CASESTUDY COMPANY INTERACTION COMMUNICATION REQUIREMENTS SAP Company divided by functions with outsourced software development. Requirement Engineers separated from Market Sponsors by a Feasibility Analyst. Requirement Engineers had helpful knowledge but had a weakness with coordination. Requirement Engineers found less help especially with coordination, knowledge, and communication. In terms of functions, REs were helped by the software developers. The project manager and feasibility analysts and operations were helped by the REs. Examples: when Market Sponsors change requirements halfway thru a project the REs see it as unhelpful,.... In reverse, MS finds RE jargon unhelpful. Article includes proposals. Notes that reorganization would be a good idea that would not fly. (dick)|- Sounds like the company Dilbert works for. The lists of unhelpful behaviors should be studied by practitioners. No reference to Yourdon's analysis of Market vs Engineering speech. No discussion of possible technologies. .Close .Open CaoRamesh08 Lan Cao & Balasubramaniam Ramesh Agile requirements engineering practices: an empirical study IEEE Software Magazine V25n1(Jan/Feb 2008)pp60- =INTERVIEWS 16 FIRMS AGILE REQUIREMENTS BENEFITS CHALLENGES PURPOSES TESTS QUALITIES Identified 7 practices each with benefits & challenges. .Box Face-to-face communication not documents. Iterating (requirements, priorities, planning, reviews, & acceptance tests). Prototypes. Test driven development(TDD). .Close.Box challenges: forgotten qualities, wrong architecture, lack experience of TDD... .Close .Open DiesteJuristoShull08 Oscar Dieste & Natalie Juristo & Forrest Shull Understanding the customer: What do we know about Requirements Elicitation IEEE Software Magazine V25n2(MAr/Apr 2008)pp11-13 =SURVEY USER REQUIREMENTS ELICITATION Many techniques and results, see .See http://www.computer.org/potal/pages/software/articles/s2voe.html Summary: Plan interviews in advance! Plan a Structure. Include general question when new to a domain. Introspective techniques are less useful. Sorting techniques not as useful as interviews but sometimes quicker. .Close .Open Desilets08 Alain Desilets Tell Me a Story IEEE Software Magazine V25n2(MAr/Apr 2008)pp14-15 =EXPERIENCE USER REQUIREMENTS STORIES Express user goals as simple, specific, and concrete stories about particular people getting valuable things. .Close .Open Boegh08 Jorgen Boegh A New Standard for Quality Requirements IEEE Software Magazine V25n2(MAr/Apr 2008)pp60- =STANDARD QUALITIES MANAGEMENT MODEL MEASUREMENT REQUIREMENTS EVALUATION ISO/IEC 25030 SQuaRE ISO 9126 Quality model{ {External, Internal}><{Functionality, Reliability, Usability, Maintainability, Portability}, Quality in Use {Effectiveness, Productivity, Safety, satisfaction }} Distinguish: computer system, mechanical part, Human process. Computer system: hardware, software, and data -- all with qualities. Stakeholder needs ->(definition)->Stakeholder requirements ->(Analysis)-> System Requirements. Many more details... .Close .Open MohanRamesh07 Kannan Mohan & Balasubramaniam Ramesh Tracing variations in software families Commun ACM V50n12(Dec 2007)68-73 =PROJECT KNOWLEDGE MANAGEMENT REQUIREMENTS DESIGNS PRODUCT LINES REUSE WHY Analysis & Design of system to help manage product lines for 2 companies. Do more than link requirements to designs . Figure 1. UML. Variable requirements link to variation points in designs. Variation points linked to variants, mechanisms, and justifications. Interactions + conflicts + dependencies + constraints... Provide integrated environment that can be used by whole organization: engineering, sales, marketing, etc. .Close .Open BurgeBrown07 Janet E Burge & David C Brown Software Engineering Using RATionale Journal of Systems and Software V81n3(2008)pp 395-413 =EXPERIMENT =DEMO TOOL REQUIREMENTS DESIGN RATIONALE IDE SEURAT Eclipse Java RATspeak inference Faster maintenance for nonexperts (only) Who were the subjects? What is cost of capturing the rationale? .Close . 2008-06-06 Fri Jun 6 06:06 Four thousande plus items in Bibliography As I post my notes on my reading on software development I also place them in a searchable bibliography. This started 20 years ago. It now has 4521 items! You can search it by going to .See ./biba.php and inputting a word or phrase -- it will accept regular expressions as well. Or you can try .See ./lab.html for a slightly different search engine. The search generates a list of items showing the items unique tag and a set of keywords describing the content. The identifier is also a link that extracts the item. Every item is given a unique tag, key or identifier so you can easily link to it. At the end of the listing is a link to a search engine that gathers the texts and citations into a non-standard HTML bibliography on the topic. Please use these tools. . 2008-06-06 Fri Jun 6 06:06 Security and Requirements Two articles on security form IEEE Software Magazine. One on Java techniques and the other a literature survey of the methods. .Open Lai08 Charlie Lai Java Insecurity: Accounting for subtleties that can compromise code IEEE Software Magazine V25n1(Jan/Feb 2008)pp13-19 =DEMO TECHNICAL Java SECURITY Example of sompromisable singleton pattern. .Close .Open TondelJaatenMeland08 Inger Anne Tondel & Martin Gilje Jaaten & Per Hakon Meland Security requirements for the rest of us: a Survey IEEE Software Magazine V25n1(Jan/Feb 2008)pp20-27 =SURVEY SECURITY REQUIREMENTS Table 1: SQUARE, Haley et al, Bostrom et al, CLASP, MICROSOFT, APvrille et al, Fernandez, van Wyk & McGraw, Peterson Tasks: definition, objectives, misuse/threats, assets, coding standards, categorize & Prioritze, Inspect & Validate, Process planning. .Close More below. . 2008-06-05 Thu Jun 5 10:06 Security Requirements Engineering The following paper and article both describe processes for sorting out security requirements. Jeff Patton's article argues that explicit goals and metrics for them is helpful for selecting the correct features to implement next. The paper is much longer and more complex but worth study, if only to observe the subtle interplay between formal logic (proving that a system is secure) and informal arguments (challenging the assumptions that were made in the proof). .Open HaleyLaneyMoffettNuseibeh08 Charles B Haley & Robert Laney & Jonathon Moffett & Bashar Nuseibeh Security Requirements engineering: A Framework for Representation and Analysis IEEE Trans Software Engineering V34n1(Jan/Feb 2008)pp133-153 =CASESTUDY SECURITY REQUIREMENTS METHOD Describes a complex process and set of languages that work from security goals, to assets that are to be protected (compare .See [Stoneburner06] ), to requirements, thence to arguments for a particular system design satisfying the requirements, and so to the assumptions that can be rebutted, and the mitigation of the rebuttals and so forth. Security requirements are non-functional requirements and are closely related to the context of the machine being designed. Must expose assumptions about the machine and its context. Arguments that the system satisfies the requirements lead to lists of assumptions that can be challenged (WHY?) and rebutted. Rebuttals lead to mitigators that change the context. Hence an iterative process designing a more secure system. Uses Jackson Problem Frames ( .See [Jackson95c] .See [Jackson01] ), Toulmin type arguments, Propositional logic, and a causal logic based on `Event 1` shall cause `Event2`. Outer_argument::jargon=`Formal logic showing the design satisfies the requirement and exposing assumptions` Inner_argument::jargon=`Explores assumptions in terms of rebuttals and mitigators`. Process involves engineers and stakeholders in intense and fruitful discussion. (dick)|- Compare the .See [Lakatos76] model of the mathematical process. Also methods used to achieve safety. .Close .Open Patton08 Jeff Patton Ambiguous Business Value Harms Software Products IEEE Software Magazine V25n1(Jan/Feb 2008)pp50-51 =HARMFUL AMBIGUITY REQUIREMENTS FEATURES vs =ADVERT GOAL + METRIC GQM IRACIS::acronym="Increase Revenue, Avoid Costs, Improve Service", .See [GaneSarson77]. Brainstorm->cards; cluster; Vote on priority (ceiling(|clusters|/3) votes per person), metrics, Poster .Close . 2008-06-04 Wed Jun 4 20:06 Teams and Technology What technology should a distributed team use when developing software? What new technologies can we use in our systems? .Open ThomasBostromGouge07 Dominick M Thomas & Robert P Bostrom & Marianne Gouge Making Knowledge Work in Virtual Teams Commun ACM V50n11(Nov 2007)pp85-90 =POLL 13 MANAGERS 30 PROJECTS DISTRIBUTED TEAMS COMMUNICATION TECHNOLOGY MATHODS ICT::="Information and Communication Technologies". More than 20 different ICTs. It is not enough to make technology available. Problems: team volatility, time pressue, interoperability all lead to work stopages and managerial intervention. All teams used audio confeences, EMail, and the phone. >70% used: Fax, project management, calendar, IDEs,many-to-many chat, versioning, instant 1-1 messaging,... Intervention:=(opportunity | problem) triggers leader actions and changes; aim for higher participation and capacity, leading to project outcomes. May have to shut down an ineffective technology as well as promote a better one. Triggers: outside the team, inadequate tools, breakdown of trust and relationships, interference in group work, member knowledge. Interference:turnover, cultural difference, physical distance, time zones .Close .Open BrownShipmanVetter07 Jeff Brown & Bill Shipman & Ron Vetter SMS: The Short Messaging Service IEEE Computer Magazine V40n12(Dec 2007)pp106-110 =STANDARD SMS PROTOCOL CELL MOBILE PHONE Shortcodes WAP EMAIL SMS::protocol="Short Message Service", not just for teenagers, also connects to the web and EMail. .Close .Open Heyman07 Karen Heyman A new virtual private network for today's mobile world IEEE Computer Magazine V40n12(Dec 2007)pp17-19 =STANDARD SECURITY PROTOCOLS WWW/NET UDP IPsec TCP SSL VPN .Close . 2008-06-03 Tue Jun 3 19:06 Having a Fit Luckily I'm not having a fit about the local IRS office not letting us get in line for a sailing permit, or about my anti-virus software grabbing 90% of the bandwidth to download a complete new executable on Tuesdays and Thursdays.... But a proposes way of documenting requirements in an executable form -- a test expressed as a scenario with tabular steps. .Open MartinMelnick08 Robert C Martin & Grigori Melnick Tests and requirements, requirements and tests: a Mobius Strip IEEE Software Magazine V25n1(Jan/Feb 2008)pp54-59 =ADVERT REQUIREMENTS TESTS FIT TABULAR SCENARIOS FIT::tool=http://fit.c2.com , Framework for Integrated Testing .See ./samples/methods.html#Fit .Close .Open Mugridge08 Rick Mugridge Managing Agile project requirements with storytest-driven development IEEE Software Magazine V25n1(Jan/Feb 2008)pp68-75 =DEMO REQUIREMENTS TESTS FIT TABULAR SCENARIOS FitLibrary::=http://sourceforge.net/projects/fitlibrary/. FitNesse::=http://www.fitness.org/. Also see .See ./samples/methods.html#Fit .See [MartinMelnick08] .Close . 2008-06-03 Tue Jun 3 10:06 Out Source and Open Source Four items in this batch. First a report of changes in outsourcing, then two books and a paper on F/OSS (Free/Open Souce Software. We have a text book on the technology and system, a political economists view of why open source has been successful, and a report of open source being used to teach software evolution/maintenance. .Open Leavitt07 Neal Leavitt The Changing World of Outsourcing IEEE Computer Magazine V40n12(Dec 2007)pp13-16 =ARTICLE OUT SOURCING TRENDS DISTRIBUTED Consolidation. More countries. Smaller tasks/projects/companies. More complex systems. Not just the cost! .Close .Open DeekMcHugh07 Fadi P Deek & James A M McHugh Open source: technology and policy Cambridge UP NY NY 2008 ISBN 0-521-88L03-X =TEXT Open source .Close .Open Weber05 Steven Weber The success of open source Harvard University Press Cambridge MA ISBN 0674018583 $CR 0611-1091 =HISTORY SOCIAL POLITICAL ECONOMICS OPEN SOURCE CODE F/OSS (dick)|- Excellent survey by an outsider of the open source phenomenon. (dick)|- Last chapter has too much social science jargon. (dick)|- Only spotted one error: confused JavaScript with Java. (dick)|- Some small omissions: in the 60's software was bundled with the hardware & user groups shared their developed software, KDE may be a pun on Sun's CDE, Wikipedia, ... .Close .Open PetrenkoEtAl07 Maksym Petrenko & Denys Poshyvanyk & Vaclav Rajlich & Joseph Buchta Teaching Software Evolution in Open Source IEEE Computer Magazine V40n11(Nov 2007)pp25-31 =ADVERT SC EVOLUTION OPEN SOURCE EDUCATION CVS SC::="Software Change". Software_Change_Process::= Initiation; locate_concept; analyse_impact; (testing & (prefactoring; actualization; change_propagation; postfactoring)); new_baseline. CVS -- change version system for source code control and to provide data for grading. Note: difficult to set up. Students must get special training and practicebefore being let loose on the real code. Students work on realistically sized code and make realistic changes. Graduate students act as managers -- either for one team or all teams. Grades based on CVS records and interviews. Student opinions collected. .Close . 2008-06-02 Mon Jun 2 19:06 Fear and Loathing of Complexity The following reflects my own beliefs: .Open Santini07 Simone Santini Making computers do more with Less IEEE Computer Magazine V40n12(Dec 2007)pp124+122-123 =ADVERT SIMPLE TECHNOLOGY WEB/NET UPGRADES Argues that invisible downloads into a personal machine is a kind of trepass. Argues for using the simplest non-invasive technology for software and web pages. .Close . 2008-05-30 Fri May 30 10:05 Fear and Loathing of Upgrades Part 2 Below I described how well the Palm Tungsten Software upgraded from an `E` to an $E2. But when I updated the Palm Desktop on my office laptop ( .Key Part2 ) things were not as good. (1) The desktop crasshes if you are viewing a daily calendar and try to look at your to-dos at the same time. (2) most of my categories in the calendar have gone.... Events at work looked like they were for my wife. Not good.... spending time putting the categories back. (3) The `Media` application (Photos and videos) decided that it should send all its photos to the hand-held, even if they were duplicates. Spent time removing them. And my own personal cradle -- a rather nice Chinese Panda .See ./palmpanda1.jpg -- no longer fits the new handheld+cable:-( Well I wonder what will happen next. 16:05 Ugly First the story so far: Installing the upgraded Palm desktop software lead to the Palm E2 losing all the categories. Going back to the back machine deleted them from that back up system. Oddly each application on the palm behaves differently when you recreate deleted categories. The "Tasks" application accepts them and places the records back in the right (old) categories. The "Calendar" accepts them and assigns the event to categories so that most are right, but some are wrong. The "Memo" and "Contacts" application on the desktop refiles items in deleted categories as "Unfiled" so that you have to go thru it and file them correctly their -- even tho' the handheld has the categories OK! The cost: 2..3 hours of refiling on the laptop. Then I discovered that if you force the HotSynch to update the desktop from the palm top, AND if they have the same categories listed then the Memos and Contacts get filed in the category. To be precise, this is how I read the warning message that "File Categories" are not updated when the handheld over-rides the desk-top. Note that the data has not been normalized. These are all the kind of anomalies found in a less than third normal form data base. Notice that there is clearly no reuse of code or designs between these different parts of the Palm software. . 2008-05-29 Thu May 29 20:05 Economic ideas I agree with the first idea below: figure the value at risk of data as well the total cost of ownership. I'm not so sure about Michael Wing's code-centric view of software. .Open TallonScannell07 Paul P Tallon & Richard Scannell Information Life Cycle Management Commun ACM V50n11(Nov 2007)pp65-69 =IDEA ECONOMICS DATA RELIABILITY COST VALUE RISK Can't mitigate all risk without high cost. Low costs can mean unacceptable risks. Keep the `total cost of ownership` of data ballanced with the `value at risk` -- cost of losing the data. information_life_cycle::= capture application decline. Value highest in the application phase. value at risk: graph frequency vs busines consequence of various events. .Close .Open WingM07 Michael Wing On the Economics of Software ACM SIGSOFT Software Engineering Notes V32n6(Nov 2007)pp8-9 =IDEAS CODE ECONOMICS PROTOTYPING QUALITY VALUE COST Code is one of the most valuable artifacts -- even if it is of bad quality. The value comes from it being used. The cost of code has a complex relation to its quantity. Each relase costs twice as much. .Close . 2008-05-28 Wed May 28 18:05 Components and Reuse Here are an article and a paper on components in engineering. The first is about how a technical `solution` to a `problem` leads to new problems. The second is a comparison of different component frameworks: .Open OshriNewellPan07 Han Oshri & Sue Newell & Shan L Pan Implementing Component Reuse Strategy in complex environments Commun ACM V50n12(Dec 2007)pp63-67 =CASESTUDY ENGINEERING REUSE PEOPLE MEETINGS DOCUMENTATION HARDWARE R&D RATIONAL Engineers unhappy with reuse: exploration became exploitation + too many meetings. The design of a component does not record its rationale. Proposes that meetings to present new components should be held in laboratory with technical tools to demo ideas. Problems with `redesign feedback loops` and time needed to reuse previous work. (dick)|-management confused research with development. .Close .Open LauWang07 Kung-Kiu Lau & Zheng Wang Software Component Models IEEE Trans Software Engineering V33n10(Oct 2007)pp709-724 =SURVEY MODULES ARCHITECTURE EJB COM .NET CORBA PECOS UML2.0 SOFA ... .Close . 2008-05-27 Tue May 27 20:05 Fear and Loathing of Upgrades We spent Memorial Weekend looking for a place to retire: cooler than San Bernardino, near libraries, entertainment, and affordable on pensions. One realtor talked about how he wouldn't be tackling any searches of the Multiple Listing Service until the system was upgraded. I always loathed the effort involved in upgrades -- inserting endless CDs (UNIXen) or a long World Wide Wait for downloads (or both)... and the occasional MS windows freeze when the MS upgrade collides with the touch pad driver on one laptop.... I Stan Kelly Bootle's dictionaries there used to be a "Riddle Song" with the line: I promised my love an upgrade without any crying. Plus the punch line I was lying. I particularly fear new software because I am blessed with the ability to discover bugs. It happens without thought. As the old saying had it "Nothing is fool proof -- fools are too ingenious". So I was not looking forward to upgrading my Palm Tungsten E to an E2. It was forced: the battery charger for the old E was held together with toothpick splints, the glue on the keyboard had broken, the digitizer was consistently about 1/8 inch low on the bottom left of the screen and horrifically slow on the middle left of the screen, and the on-off button had arthritis. A system has to be this bad to force me to upgrade. So I ordered a replacement from Palm. And expected it to arrive on next Thursday. And tried to not worry about it. Would the 17Mb of data move to the new machine? How do I move the encryption software to the new machine? Would the digitizer have similar fault? What new bugs would I have to work around. The .Key E2 arrived today at about noon. All undamaged... and it took 3 hours to charge the battery. The CD updated the Software on the Back up lap top -- and installed all the data and the old applications with the first hot-synch! Pretty good going. A slight glitch when I didn't set the date and found I had no todos or scheduled events -- the E2 was set to 2005 -- which crashed the OS:-( Another small crash in the notepad when testing the digitizer:-( My grafiti shorthand has gone and needed reprogramming. And I've gained some categories that I don't want -- and since I can only have 15 all my Vendor contacts moved into unfiled:-( In summary -- much better than I feared. We will see what happens next. See $Part2. . 2008-05-23 Fri May 23 06:05 Workflow determines a helpful interface This paper reports an experiment that shows that helpful user interfaces can be automatically constructed from a model of the what the user has to do. The result provides the context for the work which helps non-experts to do the work. .Open ZouZhangZhao07 Ying Zou & Qi Zhang & Xulin Zhao Improving the usability of e-Commerce Applications Using Business Processes IEEE Trans Software Engineering V33n12(Dec 2007)pp837-855 =EXPERIMENT USER INTERFACE BUSINESS WORKFLOW MODEL XML Java Tools derive user interface directly from an encoded model of the workflow and the needed data, forms, and functions. Result improves usability for non-expert users. Screens show Navigation + Processes + Tasks + Workspace panes/frames. The workspace shows only the relevant screens for current Tasks. .Close . 2008-05-22 Thu May 22 12:05 Evidence for an old fashioned step being useful My campus .See http://www.csusb.edu/ has a long history of fairly painless changes in Information Technology(IT). This includes the recent implementation of a system wide ERP. Last year the faculty started to use the new `CMS` system for handling rosters, adds, drops, and grades. The reading below states that on two other campuses, even though faculty were involved in developing new IT, they did not like the resulting system -- in one case it has dubbed a failure and completely redeveloped. Here is the citation: .Open WagnerPiccoli07 Erica L Wagner & Gabriele Piccoli Moving beyond participation to achieve successful IS design Commun ACM V50n12(Dec 2007)pp51-55 =CASESTUDIES USER PARTICIPATION DESIGN ERP FAILURE ANALYSIS CS372 Users were really involved with current system not the new one until the project was went live. Start by focusing on what users are doing in current system. Get user stories of current challenges and successes. Analysts must learn to translate user expertise into designs that fit. Change SDLC to include iterations after it goes live. (dick) |- 3 known techniques confirmed. (dick)|- presumes "Big Design Up Front", A more incremental approach gets users involved within their current work process. .Close Now, here is story that explains why CSUSB has not had failures like this. When I arrived, in 1982, the registration process was based on a main frame computer and punched cards. Each department had a faculty representative sitting in the gym handing out cards to students. These card represented seats and acted as tickets. A classic "visual record" system. But I knew that this was about to change -- I had made sure to court my colleagues in the "Computer Center". Experience with software development lead me to worry about the change. To be honest I worry about all upgrades -- I'll write something on "Fear and Loathing in Upgrades" real soon now. In this case, the system being changed was central to the enterprise and it would be a large change. So I was worried. Then I saw, across the gym, the systems analyst in charge of the project. He was observing what was going on. He checked on each of the departmental "booths". He was also frowning. When he came by, I asked him what he felt. He said there was a lot going on that nobody had mentioned in meetings. It was at that moment I knew that the new system would be an improvement of the old one. So, in 1982 computer professional knew something that some current computer professionals have forgotten -- the importance of studying the current system. In the 1970's the first step is to analyze the current system -- know what people do, know what is good about it, know what is bad, know what is supposed to done vs what actually happens. Perhaps, the movement that proposed skipping this step and focusing on the "Essential System" may have encouraged many places to abandon a useful practice. The other suggestion of expecting changes to be made after the project goes live has also been a part of software development for decades -- plan to throw one away, you will anyway. . 2008-05-21 Wed May 21 19:05 Unsafe software Here are a couple of articles on attempts to establish procedures for assuring the safety or at list trustworthiness of software. Both articles take a pessimistic view of government procedures and standards. .Open BishopWagner07 Matt Bishop & David Wagner Risks of E-Voting Commun ACM V50n11(Nov 2007)p120 =REPORT TECHNICAL SOURCE CODE REVIEW VIRAL RISKS SECURITY QUALITIES The authors found buffer overruns, hard-coded encryption keys, dumb pseudo-encryption, dumb passwords etc. in all voting systems. Federal tests did not disclose the flaws. Code review did. Voting systems must be transparent. Need for audits. .Close .Open Thomas07 Martyn Thomas Unsafe Standards IEEE Computer Magazine V40n11(Nov 2007)pp109-111 =REVIEW STANDARDS PROCESS ISO 61508 DO-178 Based on a recent NRC Report. Safety is a systems property not just a software one. Three_Es::= Explicit safety claims + Evidence + Expertise. We don't have the evidence to substantiate the claims specified in the current standards. .Close . 2008-05-20 Tue May 20 19:05 Ruby on Rails Here is a short introduction to a very popular way to rapidly develop a web-based application .Open BachleKirchberg07 Michael Bachle & Pauk Kirchberg Ruby on Rails IEEE Software Magazine V24n6(Nov/Dec 2007)pp105-108 =DEMO RUBY ROR TECHNICAL WEB PLATFORM RAPID PROTOTYPING MVC Also compares with Apache Struts, Tapestry, Cocoon, and ASP.NET .Close . 2008-05-19 Mon May 19 14:05 Practical research and standards Robert Glass is something of a gadfly but sometimes he reports something that is novel, reliable, and has practical implications... in this case about a well known standard having problems. I've matched it to a report on how standard software imporvement process had to be tuned to their environment. I've added a report that confirms one of the blessed Glass's claims: software projects do not fail as often as some have reported: a 60% success rate is common. .Open Glass07a Robert L Glass A Research project with important practitioner-oriented findings Commun ACM V50n11(Nov 2007)pp15-16 =REPORT EXPERIMENT STANDARD ISO/IEC 9126 QUALITIES DESIGN METRICS H Al-Kilidar & K Cox & B Kitchenham, The use and usefulness of the ISO/IEC 9126 standard, Proc ISESE 2005 conference. The standard was ambiguous and not easy to use (by student teams). .Close .Open OktabaEtAl07 Hanna Oktaba & Felix Garcia & Mario Piattini & Francisco Ruiz & Francisco J Pino & Claudia Alquicira Software Process Improvement: the Competisoft Project IEEE Computer Magazine V40n10(Oct 2007)pp21-28 =STANDARD IMPROVEMENT SOUTH AMERICAN SMALL ENTERPRISE CMMI VSE ISO MOPROSOFT One size does not fit all: small enterprises need special software improvement methods. .Close .Open SauerEtAl07 Chris Sauer & Andrew Gemino & Blaize Horner Reich The impact of size and volatility on IT project performance Commun ACM V50n11(Nov 2007)pp79-84 =POLL SUCCESS SIZE CHANGE UK BUDGET SCHEDULE SCOPE 2/3 projects succeed (according to their managers). CF .See [Glass05] More effort (person*months) increases risk of failure. Changing team increases risk of failure. Moving targets increases risk of failure. .Close . 2008-05-16 Fri May 16 06:05 Incubating Projects In the traditional systems life cycle a critical first stage is deciding what projects to tackle, gathering information that is needed to develop the software, organizing a team, etc. It appears the Free/Open Source communities have spontaneously developed well defined procedures which can turn a single person's vision in to a project that the community is committed to. Here is a comparison of the Apache and the Eclipse processes for incubating projects. .Open DuenasEtAl07 Juan C Duenas & Hugo A Prada G & Felix Cuado & Manuel Santillan & Jose L Ruiz Apache and Eclipse: Comparing open source project incubators IEEE Software Magazine V24n6(Nov/Dec 2007)pp90-98 =EMPIRICAL COMPARISON 2 F/OSS PROCESSES PROJECT INITIATION LIFE CYCLE Incubation is the process of developing and defining new project/subprojects to be further developed and integrated into a the current (evolving) system. Apache and Eclipse have well defined processes and share many features (Table 1 page 97) .Close . 2008-05-15 Thu May 15 17:05 Started Organizing MATHS Project I've decided to treat my sabbatical project as a sample project: .See samples/maths.html so that it will use $MATHS (the notations and tools) to develop $MATHS (the tools and notations). I've copied some of the items below into a new blog. You can always findout what is going on -- spread over several blogs by visitting my home/index page .See ./index.html , by the way. . 2008-05-14 Wed May 14 18:05 The Choice Uncertainty Principle Lot of exercise today: walkinging and weights first thing, then getting leaves out of the pool, then walking accross the parking lot carrying this old Dell for its monthly dose of updates,... But a pleasant morning in the library checking out Jerry Weinberg's `Introduction to General Systems Thinking` and `Principia Mathematica` chapter *93. Brought home a book of F P Ramsey's papers on logic and philosophy. Now here is an interesting new `working rule` from Peter Denning .Open Denning07b Peter J Denning The Choice Uncertainty Principle Commun ACM V50n11(Nov 2007)pp9-14 =ESSAY RACE HAZARDS ARBITRATION SYNCHONISATION NON-SEQUENTIAL METASTABLE STATE flipflop Buridan CUP ::= "No choice between near-simultaneous events can be made unambiguously within a preset deadline". 9 refs. Many examples: hardware, software, and mundane. .Close . 2008-05-13 Tue May 13 14:05 What people think about software development projects Here are a couple of papers that are based on "Surveys of the literature". .Open CarmelAbbot07 Erran Carmel & Pamela Abbot Why 'nearshore' means that distance matters Commun ACM V50n10(Oct 2007)pp40-46 =SURVEY 150 ARTICLES DISTRIBUTED PROCESS LOCATION OUTSOURCE OFFSHORE SHORING SOURCING nearshore ::= low geographical temporal cultural linguistic political economic historical distance to lower wage software development. Some places are both exporters and importers of software work. .Close .Open UmeshJessupHuynh07 U N Umesh & Len Jessup & Minh Q Huynh Current issues faced by technology entrepreneurs Commun ACM V50n10(Oct 2007)pp60-66 =SURVEY PRESS FINANCE ECONOMICS SKILL OUTSOURCING FIT USABILITY TAMSM Market dominance depends on overcoming hurdles rather than the quality of the idea. Outsourcing can be both a resource and a challenge. hurdles: finance, skill, fit customers, fitting existing products, ease of use, security, useful. TAMSM ::="Technology Acceptance and Market Success Model". Based on TAM 1989. .Close Meanwhile -- working on requirements and the available technologies for my sabbatical project, and sorting out leaks in (1) my accounting and (2) a bath room tap. Also reviewing the syntax and semantics of documentation in my MATHS language -- .See ./maths/notn_13_Docn_Syntax.html .See ./maths/notn_14_Docn_Semantics.html .See ./maths/notn_15_Naming_Documentn.html etc. . . 2008-05-12 Mon May 12 14:05 YAML -- XML considered harmful My favorite blog just sent me an excellent article .See http://www.codinghorror.com/blog/archives/001114.html which says something that I have been thinking ever since XML was invented -- that it may not be the best solution for all your data encoding needs. As evidence the author gives is using .Key YAML which is both easier to read and still 99% unambiguous. Like my own $MATHS language it use white space to indicate structure. But it goes further by having no open+close bracketing syntax. It is all done by indentation. Much the same way CODIL did (does?). More in .See ./samples/languages.html#YAML I'm tempted to formalize YAML into my $MATHS language as a long format for complex objects: CIRCLE( center=> POINT( x=>1, y=>2 ), radius => 10 ) .As_is .Open.YAML .As_is center: .As_is x : 1 .As_is y : 2 .As_is radius : 10 .As_is .Close.YAML But this will need some thought about current features of MATHS and how simple implementation might be. Can it be done with the UNIX standard tool kit -- sed/auk/...? By the way I've added some links to Polya's book "How to Solve It" below. . 2008-05-09 Fri May 9 17:05 Sabbatical Project -- MATHS My sabbatical project is not making much progress. The next post is typical of the reading that I have been doing that indicates that there may not be a `market` for a simple, formal notation for mathematics -- even if designed to have a lot in common with programming languages. The language exists .See ./maths and has stabilized over several years personal use. My project is to add a new feature heading in the direction of a wiki. In the project I was hoping to move in the direction of a wiki-style site that used the language with a lot of people contributing information, notes, samples, and so on. Yesterday I looked into a "PHP Phrasebook". It is full of warnings about the bad things can do if they supply data and some of the things you can do to avoid them. I knew about the risk of passing HTML code with "