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]