1 / 19

Is it Really Engineering?

Is it Really Engineering?. Chapter 3. What's Different about Software?. Is it a “dark art”? It’s a strange amalgam of art, craftsmanship, science and the application of theory (engineering). Artificial Science.

Download Presentation

Is it Really Engineering?

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Is it Really Engineering? Chapter 3

  2. What's Different about Software? • Is it a “dark art”? • It’s a strange amalgam of art, craftsmanship, science and the application of theory (engineering).

  3. Artificial Science • Perhaps one way to describe it is as an “artificial science”: it is difficult to quantify software engineering rules mathematically (they’re “fuzzy”). • Perhaps another way is as a “meta science”: it relies upon a mathematics to provide for other sciences. • But, in either case…. “not quite…”

  4. The Analogy to Other Professions • So, if “Software Engineering” is really “engineering” how does it stack up against the other engineering professions? • Let’s look at some other engineering professions, such as Civil Engineers, Architects, Mechanical Engineers, Hardware Engineers, Doctors, and so on.

  5. Civil Engineering • Civil engineers design buildings, bridges and roads. Is software anything like these? • Civil engineers use specification and design to define them, and apply mathematical techniques (“Statics” and “Dynamics”). • However, it is possible to visualize, build physical models, and the actual end product can be touched, and visually inspected! • Not so with software. This makes it much more difficult to describe, inspect and test.

  6. Architecture • Architects design spaces (building and landscape architectures) that are both functional and aesthetically pleasing. • Architects apply principles of lighting, balance and visual design. • Once again, though, they produce a product that can be visually inspected and found pleasing or not.

  7. Mechanical/Aeronautical Engineering • Mechanical and Aeronautical engineers design complex physical systems where safety and reliability are arguably more important that aesthetics. • Even so, the end product can (and should!) be subjected to rigorous testing and visual inspection. • Software may have to be safe and reliable, but testing something that can’t be touched is much more difficult!

  8. Computer (Hardware) Engineering • Computer hardware engineering is more in line with software engineering, but still, tools are provided to be the ‘eyes’ of the engineer (scopes, logic analyzers, digital voltmeters). These tools are much easier to apply than debuggers. • With hardware, defects can be found quickly, but take a while to fix (board turns, etc.) • With software, defects take a while to find, but can usually be fixed quickly.

  9. Medicine • Medicine diagnosis can be much easier in some circumstances (the physician asks “where does it hurt?”) but not all (pediatrics). • Safety and competence is a life and death issue. • It is not always easy to see what’s going on inside the patient, so in that respect, it resembles the problems faced by the software engineer.

  10. Responsibility of Software Developers • In all the previous professions, as is the case in software engineering, competence and respect for the safety of the customer are of great importance. • The minimum responsibilities of engineers has been codified in law: tort law. • It is our hope that engineering students will realize that their responsibilities as engineers goes well beyond what the legal system mandates.

  11. Engineering Institutions • There are many institutions that have an impact on the engineering establishment. • The market itself is one: some things sell, others don’t. • Typically, society protects itself with a set of rules and expectations, codified in law. • Businesses will proclaim agreements (warranties) based (hopefully) on these laws. • Engineers will work to advance their professions.

  12. Market forces • The market also causes engineering communities to conform to values by providing a financial reward. • Consider safety standards certification agencies (such as Underwriters Laboratories.) • Sometimes markets are closed unless a certifying agency has documented conformity to a particular set of safety codes.

  13. The legal system • Tort law is the law of injury and loss. (“Tort” is the root word in “torture.”) • The legal system prescribes remedy for people who are injured (or whose property is injured) by a product produced by negligent means. • These remedies can include “punitive damages” that go beyond compensation: they are intended to “punish” the producer so as to encourage others to not do the same!

  14. Warranties • Warranties can be either expressed (indicated in writing) or implied (obvious from the intent of the product.) • Warranties cannot legally disclaim customer rights protected by, or preserved under the law. • So, if warranties disclaim all liability for injury, it doesn’t mean that it is binding!

  15. Professional organizations • Engineering organizations are composed of professional engineers (people who earn their living by being engineers). • Their purpose is to promote the advancement of the profession by sponsoring research and setting standards for the engineering community. • These organizations may also serve an “ombudsman” function by acting as an arbitrator in disputes or misunderstandings.

  16. Software Engineering Professional Organizations And Standards Bodies • IEEE – Institution of Electrical and Electronics Engineers • http://www.ieee.org/portal/site • ACM – Association of Computing Machinery • http://www.acm.org/ • NIST – National Institute of Standards and Technology • http://www.nist.gov/ • Software Engineering Standards • http://sepo.nosc.mil/SW_Standards.html • SEI – Software Engineering Institute • http://www.sei.cmu.edu/

  17. Government regulation • Government can both enforce existing laws, and codify new laws as circumstances change. • In addition, government can establish specialized agencies to regulate technology and products associated with areas in the public interest (such as the FDA).

  18. Professional engineers and accreditation • The need for regulation of technology in the public interest also implies a need for regulation of the applications of technology. • Examination and certification of engineer’s competence becomes a matter of the public interest. • Usually, certification examinations are developed in collaboration with educational, governmental and professional organizations. (Such as the CSAB, the Computer Science Accreditation Board.)

  19. “Software engineers” are legal only in Texas • Since software engineering is a “new” science, certification of software engineers is essentially non-existent! • Some states forbid the use of the title “engineer”, unless state certified. • So, legally, in many states, the term “software engineer” can’t legally be used!

More Related