Blunder Dome Sighting  
privacy 
 
 
 

Hangout for experimental confirmation and demonstration of software, computing, and networking. The exercises don't always work out. The professor is a bumbler and the laboratory assistant is a skanky dufus.



Click for Blog Feed
Blog Feed

Recent Items
 
Republishing before Silence
 
Command Line Utilities: What Would Purr Do?
 
Retiring InfoNuovo.com
 
Confirmable Experience: What a Wideness Gains
 
Confirmable Experience: Consider the Real World
 
Cybersmith: IE 8.0 Mitigation #1: Site-wide Compat...
 
DMware: OK, What's CMIS Exactly?
 
Document Interoperability: The Web Lesson
 
Cybersmith: The IE 8.0 Disruption
 
Cybersmith: The Confirmability of Confirmable Expe...

This page is powered by Blogger. Isn't yours?
  

Locations of visitors to this site
visits to Orcmid's Lair pages

The nfoCentrale Blog Conclave
 
Millennia Antica: The Kiln Sitter's Diary
 
nfoWorks: Pursuing Harmony
 
Numbering Peano
 
Orcmid's Lair
 
Orcmid's Live Hideout
 
Prof. von Clueless in the Blunder Dome
 
Spanner Wingnut's Muddleware Lab (experimental)

nfoCentrale Associated Sites
 
DMA: The Document Management Alliance
 
DMware: Document Management Interoperability Exchange
 
Millennia Antica Pottery
 
The Miser Project
 
nfoCentrale: the Anchor Site
 
nfoWare: Information Processing Technology
 
nfoWorks: Tools for Document Interoperability
 
NuovoDoc: Design for Document System Interoperability
 
ODMA Interoperability Exchange
 
Orcmid's Lair
 
TROST: Open-System Trustworthiness

2005-06-22

 

MDDi: Integrated Tool Chains for Software Development

ACM News Service: FP6 Project Aims to Increase EU Competitiveness in Software Systems Development.  Uh, “programmers put on your chains and mechanize?”  Maybe not.  The MDDi project is making the Eclipse Model Driven Development integration (you parse that, I gave up, but I think it’s e[MDD]i sort-of—oh, it’s Eclipse MDDi).  The expectation is that the open-source modeling tool will provide an integrated tool chain to help European system engineers make new software.

It bugs me that this is heralded as an economic maneuver to avoid falling behind those pesky Americans and Japanese and reduce the cost of software development.  That’s a peculiar motivation for wanting to improve the quality of software delivery.

The 2005-06-15 CORDIS News article starts out a little more affirmatively, based on conversation with Serge Salicki: “Europe is faced with the double expectation from end-users of better, more complex and more reliable software systems, developed in an increasingly shorter time span at reduced costs.” 

The overall program is a European Sixth Framework Programme (FP6) project called MODELWARE.  It is this effort that has the objectives of

  • Reducing the cost of software systems while increasing the productivity [of development] by 25 per cent [the statement of work uses a lower number]
  • Lead to commercialization of the solution [uh, so where does open-source come in?]
  • Ensure industry adoption

MODELWARE (MODELing solution for softWARE systems) seems to be a two-year project and [e]MDDi is emerging about half-way through.  Hmm.  And we have new nomenclature: modellisation for becoming model-centric, somehow in contrast to being code- and document-centric in our development methodologies.  The pilot applications (air-traffic control, for example) seem rather ambitious, too.

I think my problem is with the blurb and the puffery, not the objectives of the effort.  The idea is to produce open development platforms for software and services, and when we figure out what open means here, we can assess the value of the approach.  One aspect of “open” is the choice of Eclipse as a development platform, although the participation of IBM in the effort is understated in the materials at the project site.

I find fixing on a specific platform (in the sense Eclipse is used here) to be unsatisfying.  I think it’s more than Eclipse is not my platform of choice.  I’m wondering, rather, whether the methodology is abstracted enough that it can be rehosted and retargeted with the Model-Driven Development used to accomplish that.  I’m curious about that.

 

Dynamic Languages Improve Software Quality?

ACM News Service: Testing, Testing, One to Three, TestingThere’s something about this blurb that sets my teeth on edge.  Not all the teeth, just the ones at the back.  Let’s see if I can figure out what’s off for me, since so much of the full article is just fine.  From the blurb we get that

  • The advancement of software development to attention on best practices and codification brings with it a focus on testing.
  • The testing process has been helped by dynamic programming languages (with Python, Smalltalk, and Scheme as examples).
  • The ability to change instructions in running programs and to modify them after deployment is the enabling feature.  Huh?  My emphasis – dh:]
  • The use of XML schema assessment is taken as an example of continuous testing?  [Well, it is a dynamic process that can lead to improved input validation, but that has nothing to do with the choice of programming language nor does it get very deep into the kind of validation that applications require.]

It’s the last two that leave me at “Huh?”

I don’t doubt that there is growing and welcome use of dynamic languages, like original Basic in its day but with much greater scope of application.  The Python (and EcmaScript) languages have great appeal for certain kinds of utility computing.  The ease of integration with components created elsewhere is no small part of the charm, and the increased ability to produce components and applications usable elsewhere is completing the circle.

This ease of testing is in the hands of developers during development and when the developer is the user.  This works in the small (look at the popularity of Perl) but I don’t think it is exactly enterprise-ready.  And for me, modification after deployment strikes me as about as smart as instructing people to modify the Windows registry.  It’s one of those “all warranties are voided and remember to sign your life-insurance waiver before getting on this ride” moments.  I’m sure the IT department will be thrilled to start getting calls from executives who’ve been hacking the business-intelligence application.

The part that throws me has to do with deployment of solutions with languages that, as the result of dangerous design cleverness, are inherently insecure and exploitable.  I think the comparision with C++ and other production languages (including Java and the .NET family as well) is awkward in that regard.  

Sean McGrath’s 2005-06-10 ITworld.com article takes a more leisurely pace.  There is an important progression of levels of software correctness:

  1. It gets the job done enough for the boss to keep me on the payroll  [the survival view of correctness: ha, ha, didn’t catch me!].
  2. It passes all the tests we wrote and there are haven’t been any bug reports in some time [a phenomenon that is the same as nobody using it, too; I am happy to point out that continuing to pass a test suite is not a mark of dynamicity].
  3. We proved it to be bug free [sic] using a formal, mathematical method.

What I find interesting about this is that when you get to formal mathematical methods, unless the proof mechanism jumps in your face when an alteration breaks the proof, this is all for a very static world, and mucking with code after the proof of function (not bug-freeness) is a serious no-no.  For one thing, one may need to ship the proof with the software, and it passing a verification may be a condition on acceptance for installation. 

At the heart of this nice little progression is a misunderstanding about what one can prove.  One cannot prove that a program is bug-free either.  Proving a program correct is not the same as proving a program to be free of bugs.  I know that sounds strange, so I will leave that to be mulled over and argued with.

There seems to be confusion of the programmer’s desire to increase the efficiency of code-and-fix development cycling and with the desire to produce correct code.  It is great to shorten the code-test-repair-rinse-repeat toil of developers, but that is a bit like saying all we need is to do what we already do more, better, and faster.  It certainly fits the programming by trial-and-error-discovery-of-a-program approach to producing software.  What has us think that will do much to increase the correctness and reliability of the result?

There’s interesting linkage to Bruce Ekel and Tim Bray on this matter, and I find Tim’s appraisal not so decontextualized as Ekel’s (and McGrath’s).  I don’t think the availability of strong typing and of exception mechanisms are the problems.  It’s really about handling failure modes.  That dynamic languages have different failure modes is fine, but I wouldn’t want an end-user to see the failure modes, and that’s what happens in those models (as you’ll notice when a web page vomits an EcmaScript or other exception at you).  There are a lot of ways to deal with failure modes in a disciplined way, and no dynamic language of the kind we have right now will save us from failure modes that pertain to the application, not the programming model.

2005-06-20

 

Rigorous Software Engineering at the Application-Domain Integration Level

ACM News Service: Microsoft Research Aims to Ease Development.  Early in my experience with Grace Hopper, I recall a presentation on the introduction of programming languages into IT operations.  She told of the following simple way that she found to overcome the “real programmers don’t Flowmatic” (or Cobol) syndrome:

  • Find some bright kid in computer operations that wants to get into development and turn them loose with the manual and the compiler.
  • As expected, the bright kid (the same ones we recruited whenever they showed up among the maintenance and operations folk) would quickly become quite productive, producing small useful programs that were seen to be needed.
  • The new performer was promoted into a programming position and continued to be rewarded for the high productivity.
  • Other programmers are forbidden to use the new tool.

This came back to me when I noticed that the chosen venue for exploring and proving out the ideas for Rigorous Software Engineering is the new Microsoft Research India center in Bangalore. 

John Ribeiro’s 2005-06-13 ITworld.com article expands on a number of key ideas:

  • There is little or no narration of the work [courtesy of Jon Udell] that is done in software, and that creates difficulties for integrators (among others) who need to dig into the code to arrange for its integration into a larger system.
  • The institutional memory of software designs and architectural decisions need to be preserved some other way.
  • Rigorous Software Engineering is proposed for taking the level of abstraction of the programming closer to the application domain, so this becomes the level of modification and maintenance, using code-generation techniques to move from that level down to lower levels where the software is expressed to the computer.
  • I always wonder how this sort of thing is tested and debugged.  The MSR-India researcher said they intend to create tools that “provide visibility into the system and the way it is functioning at various levels of abstraction.”  That sounds like a valuable way to make sure the higher-level expression has been compiled in a way that preserves essential application behavior.

This is not unlike the Model-Driven Architecture (MDA) view, at a high-altitude of comparison.  I find this appealing, although I wonder whether the rigorous codification of design rules from near-application solution space to platform-specific solution space will be too demanding.  I don’t know. I am curious about that and about how performance factors enter into consideration. 

I do look forward to schemes of this kind for what they show us is involved in near-application modeling as well as reconciliation of problem space and solution space in ways where our clients may be able to check whether we’re building and integrating what they expect.

 

 
Construction Structure (Hard Hat Area) You are navigating Orcmid's Lair.

template created 2004-06-17-20:01 -0700 (pdt) by orcmid
$$Author: Orcmid $
$$Date: 10-04-30 22:33 $
$$Revision: 21 $