soft-eng@MITRE.ARPA (Alok Nigam) (11/03/88)
Soft-Eng Digest Thu, 3 Nov 88 V: Issue 41 Today's Topics: 'Runaway' Computer Projects Call for Papers/Participation CASE Environments, maintenance ethics Instructional CASE tools desired Quality Metrics in Software Re: Software Maintenance Software Library Software Maintenance Structured Editor vs. Text Editor (2 msgs) Wanted: Info on Full-Featured CASE Tools w/Real-Time Support ---------------------------------------------------------------------- Date: 30 Oct 88 13:22:13 PST (Sunday) From: Rodney Hoffman <Hoffman.es@Xerox.COM> Subject: 'Runaway' Computer Projects In the November 7, 1988 issue, 'Business Week' has a two-page story headlined "IT'S LATE, COSTLY, INCOMPETENT -- BUT TRY FIRING A COMPUTER SYSTEM: Companies get stuck with 'runaways' that trample all over their budgets and reputations." Nothing amazingly new, but a good summary of the problems, with several case histories. >From the article: "A recent Peat Marwick Mitchell & Co. survey of 600 of the accounting firm's largest clients highlighted the problem: Some 35% currently have major runaways.... In 1986, [a management consultant] set up a group at Peat Marwick to rein in runaways. Since then, he has had $30 million in revenues from nearly 20 clients...." Two sidebars are of interest: A SAMPLING OF 'RUNAWAY' PROJECTS * ALLSTATE INSURANCE. In 1982, with software from Electronic Data Systems, the insurer began to build an $8 million computer system that would automate it from top to bottom. Completion date: 1987. An assortment of problems developed, delaying completion until 1993. The new estimated price: $100 million. * CITY OF RICHMOND. In 1984 it hired Arthur Young to develop a $1.2 million billing and information sytem for its water and gas utilities. Completion date: March, 1987. After paying out close to $1 million, Richmond recently canceled the contract, saying no system had been delivered. Arthur Young has filed a $2 million breach of contract suit against the city. * BUSINESS MEN'S ASSURANCE. In 1985 the reinsurer began a one- year project to build a $500,000 system to help minimize the risk of buying insurance policies held by major insurers. The company has spent nearly $2 million to date on the project, which is in disarray. The new completion date is early 1990. * STATE OF OKLAHOMA. In 1983 it hired a Big Eight accounting firm to design a $500,000 system to handle explosive growth in workers' compensation claims. Two years and more than $2 million later, the system still didn't exist. It finally was finished last year at a price of nearly $4 million. * BLUE CROSS AND BLUE SHIELD UNITED OF WISCONSIN. In late 1983 it hired Electronic Data Systems to build a $200 million computer sytem. It was ready 18 months later -- on time. But it didn't work. The system spewed out some $60 million in overpayments and duplicate checks before it was harnessed last year. By then, Blue Cross says, it had lost 35,000 policyholders. [Several of these are discussed in more detail in the article.] --- HOW TO KEEP A PROJECT UNDER CONTROL * Before designing the system, get suggestions from the people who will use it. * Put senior, nontechnical management in charge of the project to help ensure that it is finished on time and within budget * Set up 12-month milestones -- interim deadlines for various parts of the project * Insist on performance clauses that hold suppliers legally responsible for meeting deadlines * Don't try to update the system in midstream, before the original plan is finished ------------------------------ Date: 1 Nov 88 19:55:57 GMT From: sei!gibbs@pt.cs.cmu.edu (Norman Gibbs) Subject: Call for Papers/Participation Call for Papers THIRD SEI CONFERENCE ON SOFTWARE ENGINEERING EDUCATION PITTSBURGH, PENNSYLVANIA JULY 17-18, 1989 The SEI Conference on Software Engineering Education is an annual conference that brings together educators from universities, industry and government to discuss issues of mutual interest, with the goal of promoting educational improvements for the emerging discipline of software engineering. The program committee invites papers and proposals for panels and special sessions on all aspects of software engineering education. We are interested in discussions of successful experiences at any level (industrial, undergraduate, graduate) and on any pertinent topic. We are particularly interested in papers and proposals in the following areas: - Industry Education Issues: How should in-house education and training be structured to be most cost-effective? What is an effective mix of in-house, vendor, university, and technology-based education and training? How can education and training be integrated with process groups or other technology transfer mechanisms? - Teaching Large Systems Issues: How can concepts of large software systems be taught within the constraints of the educational setting? Can the objectives of reuse be extended from the level of algorithms and data structures to the realm of large systems architectures? How can we teach the team cooperation and communication skills required for building large systems? How should we teach system integration testing? - Foundations for Software Maintenance: What disciplines and principles underlie the skills required for software understanding and modification? How can these skills be taught and their importance communicated early in the curriculum? - Teaching Issues of Embedded Systems: What are the foundations and principles of embedded, real-time, distributed, and concurrent systems? How can these be taught in a personal computer-based educational environment? All papers will be refereed. The proceedings will be published by Springer-Verlag in its Lecture Notes in Computer Science series. Authors should submit five copies of complete papers by February 10, 1989. Notification of acceptance or rejection of papers will be sent March 10, 1989. Final versions of accepted papers in camera-ready form must be received by April 17, 1989. Authors will be asked to sign a copyright release form. Papers, proposals and requests for additional information should be addressed to: Norman E. Gibbs ARPAnet: gibbs@sei.cmu. CSEE Program Committee Telephone: (412) 268-77 Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Program Committee Alan Adamson, IBM For the SEI: Jon Bentley, AT&T Bell Labs Mark Ardis John Brackett, Boston University Maribeth Carpenter Rick Cobello, General Electric Lionel Deimel James Collofello, Arizona State Charles Engle Richard Fairley, George Mason Robert Firth Susan Gerhart, MCC Gary Ford Hassan Gomaa, George Mason Norman Gibbs David Lamb, Queen's University John Goodenough Dieter Rombach, Maryland Harvey Hallman Rebecca Smith, Hewlett-Packard John Maher James Tomayko, Wichita State Scott Stevens David Weiss, SPC Nelson Weidermann The Software Engineering Institute (SEI) is a federally funded research and development center operated by Carnegie Mellon University. Part of its mission is to promote and support software engineering education throughout the educational community. ------------------------------ Date: Mon 31 Oct 88 17:33:50-EST From: G. Batt <BATTG@a.isi.edu> Subject: CASE 1) Over 100 vendors are offering CASE tools that purportedly increase productivity from 10% to 1000%, yet none has verifiable proof to the claims. 2) The Department of the Air Force claims to have over four years of software development backlog. The Navy and Army either refuse to make those facts public or haven't bothered to measure the backlog - I believe the latter. 3) The Department of Defense sticks to the waterfall paperwork monster of DoD-STD 2167A that generates 48 lines of text per line of Code (per SEI). Increased productivity is almost impossible under those conditions. 4) The Navy Supply Systems Command has standardized on the Texas Instruments CASE tool IEF without any command working for them having used it (to my knowledge). 5) Everyone from Barry Boehm to Ed Yourdon claims that CASE will increase software productivity. Ed Yourdon is even building a tool with your institution that will have a repository of software modules that will be recallable by an expert system for reuse. 6) At the Navy Postgraduate School we are attempting to teach Computer Systems students how to improve software qualify and software productivity. My thesis research is an attempt to find those commands in DoD and firms associated with DoD using CASE tools, quantify how the tools have effected the life cycle of software developed using CASE and most importantly what realistic expectations both end users and systems developers should have by the adoption of CASE. The thesis research is be conducted for the Department of the Navy and is public domain information that will be available through the Navy Postgraduate School. ----------------------------------------------------------- CASE **** Computer Aided Software Engineering I-CASE **** Integrated Computer Aided Systems Engineering Thanks for reading this message! I am researching how CASE and I-CASE are effecting the Life Cycle of Software Development (including those required to comply with DoD-STD 2167A and 2168). I would like to talk to both software development managers and end-users regarding applications software that has been developed using CASE tools. If you are using CASE or I-CASE (Excelerator, Design Aid, CASE 2000, Code generators, Code regenerators, etc.) please send me mail with Points of Contact (Names, E-mail address, and Phone numbers) at: BATTG@A.ISI.EDU or 2753P@NPS.ARPA. Gary T. Batt Naval Postgraduate School SMC 1994 Monterey, CA 93943 ------------------------------ Date: Mon, 31 Oct 88 21:34:35 CST From: johnson@p.cs.uiuc.edu (Ralph Johnson) Subject: Environments, maintenance I will disagree that the Lisp machine environment is best---I think that Smalltalk has the better environment. Although the documentation is not as well done, the libraries are better organized, and the tools in the environment are every bit as good. Of course, I have never used a Lisp machine long enough to be an expert in it, and the Lisp machine experts around here have never used Smalltalk. I only know one person who has a fair bit of experience with both. He prefers Smalltalk, but a sample size of one is not significant. The ability of a system to support software reuse depends in large part on the quality of its library. The Smalltalk library excels in building user interfaces, while Lisp machines are mostly used for AI and so probably excel in that area. There is no doubt that object-oriented programming (which is a lot more than "programming with objects") can dramatically reduce the cost of software maintenance. Careful use of polymorphism and inheritance can greatly reduce the size of a system. Reuse of software and design can reduce the effort in learning what a system does and how to change it. The main reason that maintenance is so expensive is that it is very hard to figure out how existing system work and so be able to change them. Thus, object-oriented programming can greatly reduce the cost of maintenance. ------------------------------ Date: Tue, 1 Nov 88 16:42:18 -0500 (EST) From: Leslie Burkholder <lb0q+@andrew.cmu.edu> Subject: ethics I'd appreciate lists or accounts of ethical problems faced by software engineers in practicing their profession. ------------------------------ Date: 27 Oct 88 20:07:18 GMT From: edrbtsn@iuvax.cs.indiana.edu (Ed Robertson) Subject: Instructional CASE tools desired Our department is planning to establish an instructional laboratory for CASE (Computer Aided Software Engineering) tools. This lab will be for graduate and advanced undergraduate students. Our budget is limited so we are looking for advice on the most cost-effective software and hardware. The hardware environment for this lab will almost certainly be 286-class machines or Macs (hard disk, enough primary memory, decent monitor & mouse). However, we don't expect to be able to afford Sun-Apollo class machines. The software we are looking for includes tools for specification and design (data flow, entity-relationship, HIPO, Warnier-Orr, Jackson, ... diagrams), implementation (change and configuration control, generic application generation), testing, verification and validation, and project management (PERT, milestones, and other scheduling, resource managment, ...). Any suggestions about inexpensive, high-quality software (and hardware) would be appreciated (especially public-domain software). I would appreciate hearing from other institutions with experience in setting up such a lab. ------------------------------ Date: 28 Oct 88 20:57:31 GMT From: mnetor!motto!russ@uunet.uu.net (Russell Crook) Subject: Quality Metrics in Software I am looking for references (both practical and theoretical) on metrics that can be applied to software quality. I have no idea what research has been done on such things; I imagine that things like number of bugs found per [module, line, program, system], number of reported problems, average time taken to correct a given problem, ratio of design time expended to coding time ... whatever has been done (or even proposed to be done) could be used. Reports on language issues (i.e., certain languages make it easier to write "high quality" programs than others, general availability of certain software tools in certain environments (e.g., "lint" for C, PFORT for profiling Fortran-66)) are also of interest. Please send e-mail; if there is enough information, I will post a summary of what is found. ------------------------------ Date: 31 Oct 88 04:31:32 GMT From: tektronix!reed!psu-cs!warren@bloom-beacon.mit.edu (Warren Harrison) Subject: Re: Software Maintenance It's funny someone should ask about software maintenance just now. I just returned from about a week in Phoenix at the Annual Conference on Software Maintenance. Anyone seriously interested in maintenance should start with the proceedings of the last four or five CSMs. They can be ordered from IEEE (I saw at least the last two proceedings for sale at the conference). You might also want to check into the Software Maintenance News Newsletter (?) published by Nicholas Zvegintzov - call 718-816-5522 $30 per year. Not much research, but well worth teh price to see what the issues seem to be and how they are being attacked by commercial groups. ------------------------------ Date: 1 Nov 88 21:50:32 GMT From: mailrus!ulowell!cg-atla!duane@ohio-state.arpa (Andrew Duane) Subject: Software Library I have just been placed into a Corrective Action Team at my company to look into the issues involved with starting and running a company-wide software library. This library would serve primarily as a safe place to archive "part-numbered" product code at release time. This is code that is REQUIRED in various product lines, and should be shared among projects. It is not entire projects, but simple pieces that will need to be used elsewhere now and in the future. Examples are: * Production kernel drivers for one of our in-house built boards. * The standard composition package for our composition machines. * Diagnostic boot ROMs for various sun3-based products. * Useful bitmap/mouse menu packages and fill routines. All of these items (and we have many more) share several attributes: they are written once to a spec, and then will need to be used in other places besides where they were originally written. They are actual product code: we sell them with our machines, and customers would like to know that composition would be the same on CG model 1 and CG model 2 and CG model foobar-12345. The software engineers on the various projects currently use a very informal approach; I need the driver to this board, so I call up someone else that I know uses it and get his local pathname to copy it from. The obvious result is a chaos of different versions, bug fixes that only make it to some machines, and so on. I am interested in how other companies deal with this. We are trying to keep it as simple as posible, knowing how engineers even hate to be forced to use (ACK!) sccs. We envision something like a UUCP public archive site (on ethernet) that keeps an index of what is available and allows retrieval of copies, almost like a lending library. The problem is how to ENFORCE putting these pieces there, and how smooth the ruffled managerial feathers when they find out they won't get the credit for writing this piece of code in their department. Please try to E-MAIL (decvax is the preferred route). I will summarize if I get enough useful responses. Andrew L. Duane (JOT-7) w:(508)-658-5600 X5993 h:(603)-434-7934 Compugraphic Corp. decvax!cg-atla!duane 200 Ballardvale St. ulowell/ \laidback Wilmington, Mass. 01887 cbosgd!ima/ \cgeuro Mail Stop 200II-3-5S ism780c/ \wizvax ------------------------------ Date: Tue, 01 Nov 88 17:35:49 PST From: PAAAAAR@CALSTATE.BITNET Subject: Software Maintenance I'd like to stir this up a bit so I'll stick my neck out on a preposterous prognostication:-)} (time for a beard trim). ** SOON, ALL SOFTWARE ENGINEERING WILL BE MAINTENANCE ** The reason for this conclusion is the following: First Last spring I was drawing a diagram of the trad "Sofware Life Cycle" for a class. It was a Data Flow Diagram that showed: External entities like 'System', 'users',... Data stores like 'Requirements' 'Specifications' 'User Documentation',... Processes like 'Analysis', 'Design', 'Implement' 'Maintenance',... All went well until I got to the last process - 'Maintenance' -- and noticed that it was connected to all the data stores in the system. So I redrew the DFD with 'Maintenance' in the centre of the Software Life Cycle, rather than at the end of it. Later, I needed to analyse 'Maintenance'. When done I had got 'Analyse', 'Specify change', 'Implement',... It looked like a a copy of the software life cycle. I had found 'software life cycle' as a part of the 'software life cycle'. I redrew the first DFD with the original Maintenance bubble expanded so it surrounded the Software Life Cycle which becomes ... an endless cycle of analyse, specify, implement, train, monitor, etc with no separate maintenance phase at all, just one long maintenance cycle. ------------------------------ Date: 27 Oct 88 19:43:12 GMT From: mtxinu!sybase!alf!malcolm@bloom-beacon.mit.edu (Malcolm Colton) Subject: Structured Editor vs. Text Editor In the PC marketplace, Brief from Underware and Associates (?) is fully programmable, using a lisp-like language. There are sets of macros available that support syntax construction in C, dBase, and (I think) Pascal. This is somewhat short of syntax _checking_, but gives you faster syntactically correct program entry. You can override the actions of the macros at any time with the cursor keys. With a lot of ingenuity and skill, you could write syntax checking macros. ------------------------------ Date: 29 Oct 88 00:17:21 GMT From: martin@umn-cs.arpa (Johnny Martin) Subject: Structured Editor vs. Text Editor >>The structure editor will guarantee the >>result of editing is legal for the specific programming language, of course. ^^^^^ -- NOT ALWAYS TRUE. >>So, in that point, it is superior to the simple text editor. But, I feel >>most of the existing structure editors are not so friendly for me. Say, >>when I want to move a cursor downward and to insert words, I may not do it >>straight in the structured editor. How do you think? I know, it may >>depend on programmers' taste. Or, does anyone around there know the editor >>that has both characteristics of the text editor and those of the structured >>editor, i.e., in which we can move the cursor in the same way as in the text >>editor and which guarantees the result of editing are legal to the language? > >My research group at the University of Illinois has written a language >oriented editor, Leif, that has most of the characteristics you describe. >First, the program may be edited with text editing commands and the text is >also analyzed to locate syntax errors. Also, commands are available to select >syntactic elements of the program. Leif may be targeted to several >different languages by writing a new specification in Bison and Lex. > >I believe that guaranteeing that the result of the editing is legal in the >language is too strict. -- I CANNOT DISAGREE MORE. > When I am translating a program from one language to >another, or performing a complex editing change, I often make the program >syntactically incorrect but will the later correct the error. Leif >accommodates this desire by postponing its analysis until a request is made. -- IN A TRUE SDE, TRANSLATION CAN BE AUTOMATED. >The command move-to-error will find any syntactic errors and help correct >them. There appears to be much confusion about the current state of development in language-based editors. Perhaps this is due to the fact that most of the research issues have been settled, and that building a good editor has become an engineering problem. We must now rely on industry to produce syntax- directed editors that are of production quality. First of all, lets get the terminology straight. LBE, language based editor = an editor that knows something of the program under construction. This is a broad definition. For example, emacs with its minor modes probably qualifies as an LBE, as do some of the PC-based Pascal editors. CPS (the Cornell Program Synthesizer) also falls under this definition. SDE, syntax directed editor = an editor that rigidly conforms to the syntax of a program language, i.e. its CFG or BNF definition. These editors have the BNF built right in. structure editor = although this refers to any editor that is capable of editing some possibly non-syntactic structural object, its common use in the literature refers to SDE. Now, back to the state of the point... Syntax-directed editors can be as "user-friendly" as text editors, and Syntax-directed editors can provide editing (transformational) power than text editors. 1. SDE's do not guarantee that (just because the syntax is correct) a program will compile correctly. Consider type checking or scoping errors. 2. The SDE's that are popular in the literature (e.g. Cornell's CPS, Carnegie-Mellon's ALOE, etc.) are wonderful, "proof-of-concept" projects, but are basically unusable tools. Poor user interface, slow as molasses, etc. I have not seen Leif, but its description does not sound promising, as a research project or otherwise. 3. Editors which claim to be syntax directed, but are actually just text editors with a syntax checker running in the background, are a sorry excuse for avoiding the user interface problem of SDE's. They won't be able to perform some of the powerful transformations that a true syntax-directed editor might. (Note Bill Smith's comments above about introducing errors intentionally to effect a transformation!) DISCLAIMER: obviously, since emacs is Turing complete it could simulate everything a SDE does, but slowly. 4. True syntax-directed editors with nice user interfaces are a godsend. The hardest part about implementing a syntax directed editor is the user interface. Getting those arrow keys to correspond to the right tree traversal, while appearing to move only one character on the screen is tough. It seems our friend has avoided this by implementing a text editor, instead. True SDE's have great power, since the program tree is right there they can perform seemingly impossible transformations. Besides the neato stuff for filling in templates, at the touch of a button a good SDE might... A. transform one indentation scheme to another B. highlight keywords C. conversion from Pascal code to Ada code D. display only procedure calls without bodies E. other types of summaries (showing only relevant details of constructs) F. ellipsis (hide the parts of the program I don't want to see) G. display only documentation/comments (nice for managers that can't read code) H. display only raw code (nice for hackers that can't read documentation) I. display the code in another spoken language (nice for immigrant workers that can't read English) I would suggest taking the time to become familiar with a good SDE with all the bells, and whistles, and user interface stuff before you decide that text editors are the only answer. For example, my favorite SDE in the Program Composer, by Xinotech Inc. The Composer is perhaps the first production quality syntax directed editor ever made. It has all of the features above, uses fancy windows and a mouse interface. I don't know how much it costs, but it's probably worth whatever they charge. Their address is, Xinotech Research, Inc. Technology Center, Suite 203 Minneapolis, MN 55414 (612) 379-3844 I think they give out demo copies, but I'm not sure...-- ------------------------------ Date: 31 Oct 88 17:46:05 GMT From: pacbell!varian!vaxwaller!davem@ames.arpa (David Michelsen) Subject: Wanted: Info on Full-Featured CASE Tools w/Real-Time Support We have decided that it is time to jump on the CASE bandwagon and are looking for recommendations for full-featured Structured Analysis and Design systems that support the the Real-Time Extensions (Ward/Mellor, Hatley, State Transition Diagrams). We have looked at several of the PC-Based systems and have decided that Excelerator/RTS (Index Technology) is probably the only one that would minimally meet our requirements. Unfortunately, the user interface and the graphics capabilities leave something to be desired. Based on our findings, we have decided to expand our search to include those that run on workstations (Sun, Apollo, VaxStation, etc.). Has anyone had any experience (good/bad) with systems such as Teamwork (Cadre) or Software Through Pictures (IDE) or any others? The real important features we must have include: o Full Set of Models (Context Diagrams, Trans. Graphs, DFDs, STDs, ERDs, Structure Charts, etc) o Data Dictionary (With Records, Elements) o Verification and Validation Tools for both the Diagrams and the Data Dictionary. o Full Real-Time Support o Good Graphics and User Interface o Configuration Management ------------------------------ End of Soft-Eng Digest ******************************
jameson@cpsc.ucalgary.ca (Kevin Jameson) (11/04/88)
For the record, the Xinotech Program Composer mentioned earlier in this group retails in a PC version for $2250.00 US, with quantity discounts, implementations for Vaxes, etc, etc. The glossy (and price) seem to be heavily oriented toward ADA.