From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=BAYES_00,INVALID_DATE, MSGID_SHORT autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,b19fa62fdce575f9 X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 1994-12-05 02:51:34 PST Path: bga.com!news.sprintlink.net!pipex!sunsite.doc.ic.ac.uk!uknet!hrc63!gec-mrc.co.uk!paj From: paj@gec-mrc.co.uk (Paul Johnson) Newsgroups: comp.lang.ada Subject: Design problems (was Re: Why don't large companies use Ada?) Message-ID: <6010@gec-mrc.co.uk> Date: 5 Dec 94 10:19:34 GMT References: <3aa7jo$7j@Starbase.NeoSoft.COM> Organization: GEC-Marconi Research Centre, Great Baddow, UK X-Newsreader: TIN [version 1.2 PL2] Date: 1994-12-05T10:19:34+00:00 List-Id: Robert I. Eachus (eachus@spectre.mitre.org) wrote: > In article <5994@gec-mrc.co.uk> paj@gec-mrc.co.uk (Paul Johnson) writes: > > We were also using a library versioning system, and of course this > > basic stuff was in a library. So when you changed it, everything > > else had to be recompiled. What with all the other book-keeping > > associated with making a change, it held up the project for a full > > day. > This is Ada trying to tell you something, learn to listen. Yeah. I know. But I was working as contract labour on that project so my opinions counted for zilch. This wasn't just the dimension libraries. All the data structure libraries suffered from this. The analysis document contained Data Flow Diagrams and the bubbles communicated through types defined in a Data Dictionary. So all the data types were implemented in low-level library packages for access by the procedures that implemented the bubbles. Every time a data type needed to be added or modified, a low-level package had to be checked out, and this triggered a recompile of everything above. C and C++ suffer from similar problems in "include" files. If they had taken an "object based" approach to low level design (packaging up data structures with the relevant operations) then things would have been different. But structured analysis doesn't group things like that, so they didn't either. To be fair, the management knew this was a problem as well, but they were well into the lifecycle by then (this was the Version 2 release), so the design was pretty much cast in concrete. We were also working with two compilers (development platform and target platform), one of which had a bug that caused it to reject the dimension libraries. So one version was coded with subtypes and one with ranges. Most of the time we managed to produce code that worked with both, but not always. So then some arbitrary module halfway up the hierarchy had to have a version forked off and separately maintained. We had a paper-based change-control system running, and we certainly needed it. This was the first Ada project by this team. They commented that next time they used Ada they would know how to do it right. But by then something else would be flavour-of-the-year, and they would be back at the bottom of the learning curve again. I will say that, despite the problems, we produced code on-time and on-budget. It was expensive code, but we knew ahead of time how much it would cost. Code was reviewed before being checked back into the development version, so the bug rate was fairly low. It was just that some bugs were very expensive. Paul. -- Paul Johnson | GEC-Marconi Ltd is not responsible for my opinions. | +44 245 473331 ext 3245 +-----------+-----------------------------------------+ Work: | You are lost in a twisty maze of little Home: | standards, all different.