Terminology
Origins
The term software engineering was used occasionally in the late 1950s
and early 1960s. The term software engineering was popularized by
the 1968 NATO Software Engineering Conference held in Garmisch, Germany
and has been in widespread use since.
[edit]
Meanings
The term software engineering is commonly used with a variety of distinct
meanings:
As the usual contemporary term for the broad range of activities
that was formerly called programming and systems analysis;
As the broad term for all aspects of the practice of computer programming,
as opposed to the theory of computer programming, which is called
computer science;
As the term embodying the advocacy of a specific approach to computer
programming, one that urges that it be treated as an engineering profession
rather than an art or a craft, and advocates the codification of recommended
practices in the form of software engineering methodologies.
Software engineering is "(1) the application of a systematic,
disciplined, quantifiable approach to the development, operation,
and maintenance of software, that is, the application of engineering
to software," and "(2) the study of approaches as in (1)."
-- IEEE Standard 610.12
Software engineering is practiced by software engineers.
[edit]
Debate over who is a software engineer
Some people believe that Software Development is a more appropriate
term than Software Engineering for the process of creating software.
People like Pete McBreen (author of "Software Craftsmanship")
believe that the term Software Engineering implies levels of rigor
and proven processes that are not appropriate for all types of software
development.
Some people dispute the notion that the field is mature enough to
warrant the title "engineering". In each of the last few
decades, at least one radical new approach has entered the mainstream
of software development (e.g. Structured Programming, Object Orientation,
Agile Development), implying that the field is still changing too
rapidly to be considered an engineering discipline. Other people would
argue that the supposedly radical new approaches are actually evolutionary
rather than revolutionary, the mere introduction of new tools rather
than fundamental changes.
There are currently no widely accepted criteria for distinguishing
someone who is a software engineer from someone who is not a software
engineer. In addition, the industry is in the midst of a complex debate
on the licensing of practicing software engineers.
[edit]
Levels
For the localities that do not license software engineers, some hiring
classifications are made based on education and experience. Classification
levels may include: entry-level, mid-level, and senior.
Typical entry-level software engineers have a bachelor's degree and
zero to five years of experience. Typical mid-level software engineers
have a bachelor's or master's degree and have five to ten years of
experience. Typical senior-level software engineers have an advanced
degree and have ten or more years of experience. Note that these are
only guidelines that are trends seen in hiring practices and that
many exceptions exist.
[edit]
Software engineering today
Software engineering affects economies and societies in many ways.
Economic
In the U.S., software drove about 1/4 of all increase in GDP during
the 1990s (about $90 billion per year), and 1/6 of all productivity
growth (efficiency within GDP) during the late 1990s (about $33 billion
per year). Software engineering drove $1 trillion of economic and
productivity growth over the last decade. Around the world, software
drives economic growth in similar ways, though reliable statistics
are hard to find.
Social
Software engineering changes world culture, wherever people use computers.
Email, the world-wide web, and instant messaging enable people to
interact in new ways. Software lowers the cost and improves the quality
of health-care, fire departments, and other important social services.
Successful projects where software engineering methods have been applied
include Linux, the space shuttle software, and automatic teller machines.
See also software engineering economics.
[edit]
Room for improvement
In spite of the enormous economic growth and productivity gains enabled
by software, persistent complaints about the quality remain.
Deficient software engineering is often blamed for project failures
when the blame might more properly be placed with business managers
who ignore lessons already learned by Software Engineers.
See also Debates within software engineering and Criticism of software
engineering
[edit]
Technologies and practices
What is the best way to make more and better software? SEs advocate
many different technologies and practices, with much disagreement.
This debate has gone on for 60 years and may continue forever. Software
engineers use a wide variety of technologies and practices.
Practitioners use a wide variety of technologies: compilers, code
repositories, to word processors.
Practitioners use a wide variety of practices to carry out and coordinate
their efforts: pair programming, code reviews, daily stand up meetings.
Main Roll1 Roll2
electric1electric2 electric3 electric4 electric5
membrane
filtration water distillers
| yacht charter |
oil painting reproductions | Safety
Glasses | Night Vision | hawaiian
music aloha shirts | Health Care
| football shirts | oil
paintings | Nashville Real Estate
free credit report | Dental Care
| caribbean yacht charter
| south pacific yacht
charter | Kit Car
|