Lambda the Ultimate

inactiveTopic Flexibility
started 8/17/2001; 6:03:44 AM - last post 8/23/2001; 10:33:20 AM
Ehud Lamm - Flexibility  blueArrow
8/17/2001; 6:03:44 AM (reads: 783, responses: 5)
One of my crusades is for flexible software. Seems like too obvious a goal? Think again. Most software in existence lives inside large orgainsations and is built using the time honred system of patch-oriented programming. Code that has a layered design: layers and layers of history - but usually lakcs an overall design the provides for flexible software evolution.

There are several approaches for making software felxible, and there are several meanings that can be attached to the concept. I want to concentrate on mechnisms that enable you to customize and extend the the software with as little programmer support as possible.

Two classic designs are tabe driven design in which large parts of the system are controlled by factored-out tables, and embedded languages. The former is a bit forgotten these days, or so it seems. It was much more prominent in earlier days until OOP. But one should keep in mind the OOP is is used by programmers where as the table driven approach can empower users.

The language based approach is, I am sure, well known.

I have no reason to think one of these approaches excludes the other.

Would LtU agree that most flexible sw systems they encountered used at least one of these apporaches? How would you characterize the effect of embedded languages on sw flexiblity - based on actual real life experience? Example are more than welcome!

Ehud Lamm - Re: Flexibility  blueArrow
8/20/2001; 1:02:37 PM (reads: 829, responses: 0)
I was asked a question today that maybe someone here can help me with.

In Hebrew I use two terms to distinguish between the ease with which code can be modified (flexibility of the code) and the ease with which the software itself can support different uses (adaptability?).

For example a good OOP design may help to achieve the first goal, a table driven system may achieve the second. MS Excel may be an example of succeeding with the second goal - and I can't tell about the first goal without looking at the code.

Common English terms for these two concepts?

Chris Rathman - Re: Flexibility  blueArrow
8/21/2001; 7:27:06 AM (reads: 822, responses: 0)
I'd probably just use the term tight to describe both scenarios. :-)

Not really sure which words you're looking for, but here's a couple. Might also help if you defined the negatives (i.e. code that is Spaghetti, or software that is narrowly Focused).

For the first: Manageability, Extensibility, Reusability, Modularity.

For the second: Adaptability, Flexibility, Robustness.

Ehud Lamm - Re: Flexibility  blueArrow
8/21/2001; 1:28:16 PM (reads: 799, responses: 0)
Opposites.

For the first use, I think the best negative would be hard to maintain. Making changes is hard.

For the second, maybe something like rigid.

Of the terms you suggest, I kind of like using extensibility and adaptability. Robustness is also good.

Thanks.

John Lawter - Re: Flexibility  blueArrow
8/23/2001; 10:22:29 AM (reads: 792, responses: 1)
I'm curious; what are the two terms in Hebrew ?

For the first term, I think malleable is appropriate (Perhaps also pliable). For the second, I would use adaptability or versatility. Robustness to me implies reliability, or the ability to continue proper function under adverse conditions.

Ehud Lamm - Re: Flexibility  blueArrow
8/23/2001; 10:33:20 AM (reads: 851, responses: 0)
You speak Hebrew?

The terms I use in Hebrew are not official in any sense of the word. I use "gmishut leshinuim" and "gmishut".

"gmishut" is flexibility. So the first term would translate as "flexibity for changes" and the second simply means flexibility.

Thus the first term is about changing the software (i.e., the code) where as the second is about the flexibility of the software as is.