Embed
Email

Is it Really Engineering

Document Sample

Shared by: cuiliqing
Categories
Tags
Stats
views:
0
posted:
11/11/2011
language:
English
pages:
18
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

• Perhaps one way to describe it is as an

“artificial science”: it is difficult to quantify

it 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…”

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.

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 acutal end product can be

touched, and visually inspected!

• Not so with software. This makes it much more

difficult to describe, inspect and test.

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.

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!

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, DVMs). 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.

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.

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.

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.

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.

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!

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!

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.

Government regulation

• Government can both enforce existing laws,

and codify new laws and 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).

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.)

“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!



Related docs
Other docs by cuiliqing
P-1 Area
Views: 0  |  Downloads: 0
server maps sep 07
Views: 6  |  Downloads: 0
MeetingPackage2
Views: 0  |  Downloads: 0
award_fy11
Views: 10  |  Downloads: 0
APPLICATION FOR A CHAPERONE LICENCE
Views: 1  |  Downloads: 0
273
Views: 0  |  Downloads: 0
PRE - HISTORY
Views: 0  |  Downloads: 0
By registering with docstoc.com you agree to our
privacy policy

You are almost ready to download!

You are almost ready to download!