kell@mprgate.mpr.ca (Dave Kell) (05/08/91)
I'm sure I read someone mentioning this before in this group, but I didn't really see the problem at the time. What Ada language constructs meet the requirements of a CSU (per DOD-STD-2167A), and which ones are CSCs? Any help would be welcome. dK =========================================================================== Dave Kell (604) 293-5753 kell@mowgli.mpr.ca MPR Teltech Ltd. mprgate.mpr.ca!kell@uunet.uu.net 8999 Nelson Way Burnaby, BC, CANADA V5A 4B5 ===========================================================================
jls@netcom.COM (Jim Showalter) (05/09/91)
>What Ada language constructs >meet the requirements of a CSU (per DOD-STD-2167A), and which ones are >CSCs? For two years or so, I supported Rational's Design Facility, which maps Ada units to 2167A design components (and produces the documentation). During that time, I would guess your question came up in the above or similar form about twice a week, and the answer I gave was always the same: "What would you LIKE the mapping to be?". 2167A is intended to be tailorable, and as such is open to widely varying interpretations: I've seen different interpretations used from company to company, site to site within the same company, and even project to project within the same site. Some customers have opted for a "weak" mapping, where the 2167A design components and design hierarchy are pure abstractions, with the resulting code residing only at the leaves, as CSUs (in some cases even the CSUs were treated as abstractions that served to group the actual comp units in some logical manner). Other customers have tried (usually with much less success) a "strong" mapping, in which there is a standard pre-defined Ada "meaning" to terms like "CSC". Still other customers, seeking a more Ada- and OO-compatible standard, have so radically tailored the baseline standard as to be virtually unrec- ognizable. For what it's worth, my personal preference would be to tailor as much as practicable WHEN A CLEAR ADVANTAGE TO DOING SO CAN BE PROVEN (tailorings that muck around with purely aesthetic issues, such as the font used on bulleted lists, are a complete waste of time). The objective is to adopt the standard to support a quality methodology, not to distort your methodology to force-fit it into the standard (this key point seems to be lost on a lot of people, which is kind of surprising since that's essentially what the first paragraph on the first page of the standard SAYS). I also prefer a weak mapping, since it provides a great deal more flexibility when allocating requirements, assigning responsibility, etc. You and the others involved in your project need to agree on what strategy to use, and get your customer signed off on it. To a large extent, which mapping you decide on is of less importance than deciding on SOMETHING: it is very easy to get bogged down in endless religious arguments about the alleged merits of one mapping over another. I recently read a good collection of papers on this very issue entitled something like "Implementing the DoD-2167A Design Hierarchy in Ada", or some such (sorry, don't have it with me at home). I think it was put out by SIGAda or a similar SIG group. Hopefully someone else on the net can do better at providing the precise reference.
hawksk@lonex.radc.af.mil (Kenneth B. Hawks) (05/10/91)
The article Jim Showalter refers to is SDSAWG's "Implementing the DOD-STD- 2167A Software Organizational Structure in Ada."... Lewis Gray of Ada Pros, Inc. was the editor and author of some of the articles contained therein. In addition to the above, read MIL-STD-483, Appendix XVII, "Criteria for Selecting Configuration Items". The first issue is how to break out CSCIs. CSCs and CSUs _start_ to fall out after that problem is wrestled with. The bigest issue is to break them out by compilation unit (but if you are truely designing the software you won't know this early on!), static design (how you think its going to work/functional relationships), or dynamic design (control flow/interupt priority/etc.)... A library CSC/CSU is a big help for the math routines, sorts, etc., that everybody (i.e. Ada units) uses. The biggest cost driver, management and engineering headache, however is the CSCI selection!!! Note that DoD-STD-2167A was designed to try to promulagate software engineering to the masses. It is not the universal solvent. Also there are numerous major problems with its DIDs. (All documented at the Los Angles DoD/Industry workshop prior to their publication.) -- No I don't have a copy of them anymore....:( Kenneth B. Hawks |\ /| "Fox Forever" Rome Laboratory, Griffiss AFB, NY ^o.o^ hawksk@lonex.radc.af.mil =(v)= Disclaimer: There is no one else here who thinks like I do; therefore....