Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!swrinde!elroy.jpl.nasa.gov!jarthur!ucivax!orion.oac.uci.edu!cerritos.edu!arizona.edu!ece.arizona.edu!dan From: dan@ece.arizona.edu (Dan Filiberti) Newsgroups: comp.object Subject: Re: Software Engineering (was Re: Documenting OO Message-ID: <1991Apr24.014620@ece.arizona.edu> Date: 24 Apr 91 08:46:20 GMT References: <3201:Apr705:40:4591@kramden.acf.nyu.edu> Reply-To: dan@ece.arizona.edu (Dan Filiberti) Distribution: world,local Organization: University of Arizona Dept. of Electrical and Computer Engineering Lines: 139 Nntp-Posting-Host: dialsun.ece.arizona.edu In article <1991Apr18.230252.3299@visix.com> amanda@visix.com (Amanda Walker) writes: >> but the primary defn of science is the following: >> science - knowledge attained through study or practice >That's an awfully general definition. I myself like it from a philosophical >standpoint, but it covers most human activity. There are many things >which I have studied and practiced, but which I would hesitate to call >"science." For example: > - Playing baroque music on the 'cello > - Cooking Szechuan food > - Speaking French or Japanese > - Mediaeval manuscript illumination HaHaHa! [:)} Sorry, I just can't let these "examples" sneak by... I really doubt that anyone would argue that music doesn't involve both art (skill) and science (theory). Same with food preparation, unless you always eat fast food. Maybe you are confusing "art" with "science". Speaking a foreign language is an "art", it involves skill, it is the product of a "science", learning the grammar, etc, of the language. I don't know about the last one, never heard of it, but it probably involves science also. >And so on. The word "science" usually carries some connotations which >restrict its applicability. In particular, it usually signifies the >acquisition of formalized knowledge through observation and >experimentation. Now, I have taken scientific approaches to aspects >of all of the above-metioned subjects, but I would still not call them >scientific endeavors. "observation and experimentation" sounds a lot like "study and practice" to me. How can you take a "scientific approach" and not call what you learn "science"? >>Also, you're wrong. By your defn, designing a computer is NOT >>engineering. Sorry. Hardware designers hardly ever deal with the >>construction of devices on a physical science level. >Funny, the hardware engineers I have worked with seem to do wire wrapping, >figure out where to put decoupling caps, use oscilloscopes to look at >signal levels and quality, etc. Seems pretty close to the physical >level to me. >>They symbolically represent the internal architecture of a computer, >>using CAD. >Seems to me that's design, not construction, but point taken. Design is >a common aspect of many different kinds of activity. I'm getting tire of this runaround stuff. Is a hardware designer an engineer or not? Is someone who spends 5 yrs in college earning an electrical engineering degree, and then designs logic using CAD (with no physical level involvement) known as an "engineer"? My answer is yes... >>Please point out the difference between working with >>symbols of "and" gates, etc...and microcode. That's right, the >>only difference is a difference in symbols and terms. >Not entirely. At the microcode level, a whole set of factors is abstracted >out, such as propogation delay, fanout and fanin, signal decoupling, etc. These factors are not "abstracted out". They don't exist. Abstraction involves "information hiding", you can't hide what doesn't exist. The difference at a low level is implementation, the difference at a high level is in symbols and terms. Digital logic designers worry about "fan out", etc.. but they don't create the IC's that implement their logic. >Microcode is nothing *but* the creation of virtual reality. The whole >idea of it is that you can build a processor with a specific virtual >architecture without having to design and build it in hardware. A >>How do you build a processor with "virtual architecture", and then not >>build it in hardware? >Simulation. Software. Microcode and something like SoftPC (which >implements a virtual IBM AT on machines ranging from a Mac to a >Sparcstation) are doing basically the same thing. They are implementing >a virtual architecture in terms of a physical one that is quite different. >I can microprogram a handful of 2900 chips so that they act like, say, >a Z80, even though the actual hardware involved is completely different. Why do you twist everything around, and put my statements out of context? I agree that you can program virtual architecture, in fact I've used some, but the issue is not microprogramming. The issue is microcode! Microcode is not the creation of virtual reality. I'd like to see you microcode a 6502 processor to act like a 68000. You can't, because microcode is intimately tied to the hardware implementation. Can you microcode the 6502 to accept the 68000 instruction set? No. >That's what happens when you place a call, after all... If you are now >claiming that "computer" can only mean "stored program computer," I beg >to differ. Software was invented after computers were. Von Neumann's >innovation was important, but it is not what constitutes "computing." Give me a break. Talking about general defns. I guess I am a computer! >>That's pretty good. Now, please show me a computer built within the >>last decade that was designed without the aid of software. >How is this relevant? I can't even show you an *automobile* built within >the last decade that was designed without the aid of software. All this >says is that software is extremely useful, not whether or not its >construction is "engineering..." It is very relevant. I'm trying to point out the importance of software, and its rapid increase of design complexity. This is what makes "software engineering". >Wouldn't that be "engineering software?" 1/2 :-) mmmmmmmm, ok 1/2. >These differences are invisible at the level at which I interacted with >the software--the software presents me with the same virtual reality (well, The fact is, a "software engineer" had to create that virtual reality. Are the people who write SunOS and VMS "software engineers" while those who write Emacs, etc not? The OS is not virtual reality, but it is still software, isn't it? Are you trying to make a distinction between levels of programming, like applications, operating systems, compilers, etc... or what? >Well, OK, if "applying learned knowledge" constitutes engineering, then >I'll cede the point: just about everything I do is engineering, then. That's right, but that isn't what makes you an engineer. It's the quality and quantity of knowledge that you possess. People make you an "engineer" by the way they observe you applying your knowledge. If I design and build a shed, I am essentially civil engineering, but people don't call me a "civil engineer". Who knows, but like I said, I have no problem with someone putting the label "software engineer" on their card. I'm not going to hire them for their title, but for experience, reputation, etc... Daniel Filiberti dan@helios.ece.arizona.edu [:)} ------------- Sorry, this reply is late. I was on vacation... -------------