[comp.software-eng] Software Engineering & Ada

billwolf@hubcap.clemson.edu (William Thomas Wolfe,2847,) (02/11/89)

From myjak@home.csc.ti.com (Michael Myjak):
> 
> Bill then goes on to make an incorrect statement:
>>   It DOES cover: [...]
>>   Modern Programming Language Features (Ada) ...
> 
> This is incorrect because Software Engineering is independent of, and
> in no way related to a *particular* language, its features, or its
> associated environment. While it is true that some languages lend
> themselves to software engineering techniques better than other
> languages do, software engineering and ADA are mutually exclusive.

    I'm curious as to how a statement of fact is "incorrect"; I stated
    that the text "Software Engineering Concepts", by Richard Fairley 
    (of the now-defunct Wang Institute of Software Engineering), has as 
    one of its chapters "Modern Programming Language Features" (Chapter 
    7), which consists largely of an analysis of the features of Ada, 
    which is presented as a "truly impressive" modern programming language.
    An example: "Software engineering will remain a craft, and will not 
    become a true technological discipline, until we are able to develop 
    modular, building-block software.  Modern programming languages such 
    as Ada have the goal of providing the necessary tools for development of
    reuseable software components through features such as those discussed
    in this chapter."  

    And what features are they discussing?  Why, "Type checking rules, 
    separate compilation, user-defined data types, data abstraction, 
    generics, scope rules, exception handling, and concurrency mechanisms 
    are discussed in the following sections."  Can you guess which language 
    reference manual that was lifted straight out of?   

    We use both Pressman's text (whose definition of software engineering
    you cited) and Fairley's text in our undergraduate software engineering
    course.  One of the nice things about Fairley's text is that it also
    presents "the technology of software engineering".

    Fairley states that "Critics of Ada have the responsibility to study
    the characteristics of the intended application area and propose
    alternatives that account for those characteristics.  In this manner,
    the technology of software engineering will evolve."  


    Bill Wolfe, wtwolfe@hubcap.clemson.edu

edwardm@hpcuhc.HP.COM (Edward McClanahan) (02/15/89)

Another text which discusses Software Engineering is Grady Booch's book
  titled "Software Engineering in Ada".  I found this text to be an
  excellent introduction to Ada and an early look at APSE's.  I hope
  that Booch updates this text to include recent advances (and possible
  standardizations) in APSE's.  Booch spends a lot of time talking about
  how certain Ada features are used to aid the software developer (private
  data types, separate compilation, etc...).  It's interesting to note
  that these features are cited as the most difficult to implement in an
  article on "Ada Compiler Technology" in this month's (Feb. '89) COMPUTER
  magazine.  Happy trails...

ed mcclanahan

andresen@rocksanne.UUCP (Kevin Andresen) (02/16/89)

In article <4390@hubcap.UUCP> wtwolfe@hubcap.clemson.edu writes:
>From myjak@home.csc.ti.com (Michael Myjak):
>> 
>> Bill then goes on to make an incorrect statement:
>>>   It DOES cover: [...]
>>>   Modern Programming Language Features (Ada) ...
>> 
>> This is incorrect because Software Engineering is independent of, and
>> in no way related to a *particular* language, its features, or its
>> associated environment. While it is true that some languages lend
>> themselves to software engineering techniques better than other
>> languages do, software engineering and ADA are mutually exclusive.
>    ...
>    And what features are they discussing?  Why, "Type checking rules, 
>    separate compilation, user-defined data types, data abstraction, 
>    generics, scope rules, exception handling, and concurrency mechanisms 
>    are discussed in the following sections."  Can you guess which language 
>    reference manual that was lifted straight out of?   

Sounds like Mesa!

(Add a 1/2-smiley if you choose...)  The point being that Michael's statement
is correct:  although Ada is a fine embodiment of many of the principles of
software engineering, it is not the only one, nor is it the ideal one, and it
is a mistake to tie the study of an engineering area to a particular
implementation.  (One would not teach EE using only the Z80 as an example, 
nor the [insert-your-favorite-"state-of-the-art"-chip-here]) 

To add further fuel to the fire, where does the BACS degree fit in?  In 
<2104@ndsuvax.UUCP>, Ken Magel suggests that software engineers should be
taught "knowledge which allows one to see how current practice is and will
be changing and to understand and relate those changes to current practice."
I would claim that a liberal-arts education is superior to pure computer
science *or* electrical engineering in addressing this type of knowledge.
Comments?

--Kevin Andresen [andresen.wbst@xerox.com]