FACTOID # 164: If you're looking to invade someone by sea, try Canada! Canada has only 9000 Navy personnel guarding the longest national coastline in the world.
 
 Home   Encyclopedia   Statistics   Countries A-Z   Flags   Maps   Education   Forum   FAQ   About 
 
WHAT'S NEW
RECENT ARTICLES
More Recent Articles »
 

SEARCH ALL

FACTS & STATISTICS    Advanced view

Search encyclopedia, statistics and forums:

 

 

(* = Graphable)

 

 


Encyclopedia > Debates within software engineering

Many debates are raging within the software engineering community. As software becomes more pervasive, most recognize the need for better software, but few agree on how to obtain it. Software engineering (SE) is the profession of people who create and maintain software systems by applying technologies and practices from computer science, project management, engineering, application domains and other fields. ... Computer software (or simply software) refers to one or more computer programs and data held in the storage of a computer for some purpose. ...


With about 612,000 software engineers in the U.S., and 1,400,000 more around the world, there should be room for many different opinions and approaches. A consensus has yet to emerge.

Contents


Right to use the word engineering

The word engineering within the term software engineering causes a lot of confusion. Software engineering (SE) is the profession of people who create and maintain software systems by applying technologies and practices from computer science, project management, engineering, application domains and other fields. ...


The wrangling over the status of software engineering (between traditional engineers and computer scientists) can be interpreted as a fight over control of the word engineering. Traditional engineers question whether software engineers can legally use the term.


Traditional engineers (especially civil engineers and the NSPE) claim that they have special rights over the term engineering, and for anyone else to use it requires their approval. In the mid-1990s, the NSPE sued to prevent anyone from using the job title software engineering. The NSPE won their lawsuit in 48 states[citation needed]. The National Society of Professional Engineers (NSPE) is a professional engineering organization in the United States. ...


However, SE practitioners, educators, and researchers ignored the lawsuits and called themselves software engineers anyway. The U.S. Bureau of Labor Statistics uses the term software engineer, too. The term engineering is much older than any regulatory body, so many believe that traditional engineers have few rights to control the term.


The United States Patent and Trademark Office considers computer science to be a legitimate field within the "technological arts". Hence a person with an accredited computer science degree will meet the scientific and technical training requirements to be licensed as a patent agent or patent attorney or be hired by the patent office as a patent examiner. The United States Patent and Trademark Office (PTO or USPTO) is an agency in the United States Department of Commerce that provides patent and trademark protection to inventors and businesses for their inventions and corporate and product identification. ...   Computer science is the study of the theoretical foundations of information and computation and their implementation and application in computer systems. ... A patent attorney is an attorney who has the specialized qualifications necessary for representing clients in obtaining patents and acting in all matters and procedures relating to patent law and practice, such as filing an opposition. ... A patent attorney is an attorney who has the specialized qualifications necessary for representing clients in obtaining patents and acting in all matters and procedures relating to patent law and practice, such as filing an opposition. ... A patent clerk or patent examiner is an employee, usually a civil servant, working within a patent office and whose work is to examine patent applications as to whether they deserve a patent. ...


Technological arts include engineering (e.g. chemical engineering) and natural sciences (e.g. biology). Technological arts have not included abstract reasoning (e.g. mathematics) or the social sciences (e.g. sociology). Chemical engineering is the application of science, in particular chemistry, physics and mathematics, to the process of converting raw materials or chemicals into more useful or valuable forms. ... Biology is the branch of science dealing with the study of life. ... Euclid, a famous Greek mathematician known as the father of geometry, is shown here in detail from The School of Athens by Raphael. ... Social interactions of people and their consequences are the subject of sociology studies. ...


The fields of data engineering, knowledge engineering, user interface engineering, and so on have similar concerns about the term engineering. Even smaller or newer fields of biological engineering, safety engineering, and corrosion engineering have these concerns. Information engineering is the systematic development of databases. ... The process of building knowledge-based systems is called knowledge engineering (KE). ... User interface engineering is the engineering of the user interface. ... Biological engineering (a. ... Safety engineering is an applied science strongly related to systems engineering. ...


Substance versus metaphor

Some believe that the name SE means that practitioners must also be traditional engineers. Others believe that engineering is only a metaphor that SEs should apply appropriately.

Substance 
Those who define software engineering as a branch of traditional engineering often believe that SEs apply concepts from traditional engineering to software development. This means that software engineering students, like students in other engineering disciplines, should study the science and mathematics necessary to understand the systems they will be designing (in the case of SE, things like computer science and formal methods); practitioners should earn professional licenses; and so on. They believe engineering provides a structured, logical approach, and therefore, a stable final product.
Metaphor 
Others are inspired by traditional engineering, but believe that software needs its own solutions. They believe that many traditional engineering concepts cannot apply, because software is fundamentally different from bridges and roads. For example, traditional engineers do not use compilers or linkers to build roads. They believe that students should study computer science and other useful topics, and that practitioners do not necessarily need licenses.

Engineering is the application of scientific and technical knowledge to solve human problems. ... This article needs cleanup. ...   Computer science is the study of the theoretical foundations of information and computation and their implementation and application in computer systems. ... In computer science, formal methods refers to mathematically based techniques for the specification, development and verification of software and hardware systems (Foldoc:formalmethods). ... Computer software (or simply software) refers to one or more computer programs and data held in the storage of a computer for some purpose. ... A log bridge in the French Alps near Vallorcine. ... A road ascends a mountainside using hairpin bends in the French Alps. ...

Meanings of terms

Prior to the mid-1990s, most software practitioners called themselves programmers or developers, regardless of their actual jobs. Many people prefer to call themselves software developer and programmer, because most widely agree what these terms mean, while software engineer is still being debated.

Programmer 
We widely agree what this means.
Developer 
We widely agree what this means.
Software engineer 
We disagree what this means.

The term programmer has often been used as a pejorative term to refer to those who lacked the tools, skills, education, or ethics to write quality software. In response, many practitioners called themselves software engineers to escape the stigma attached to the word programmer. In many companies, the titles programmer and software developer were changed to software engineer, for many categories of programmers. A social stigma is a stigma in the form of a distinctive characteristic in a person which can cause or be the result of marginalisation when used as an insult by individuals or groups. ...


These terms cause confusion, because some denied any differences (arguing that everyone does essentially the same thing with software) while others use the terms to create a difference (because the terms mean completely different jobs). Look up Confusion in Wiktionary, the free dictionary Confusion can have the following meanings: Unclarity or puzzlement, e. ...


Fighting over priorities

In the pursuit of better software, the community disagrees on priorities, approaches, and on what an individual should do in specific circumstances. Everyone seems to advocate a different combination of the following issues. Proponents and methodologists advocate conflicting solutions and often heatedly debate their merits. All subfields mix the following priorities to varying degrees. Computer software (or simply software) refers to one or more computer programs and data held in the storage of a computer for some purpose. ... A solution is a product or service that will allow a particular business task to be accomplished. ...

Management 
Some advocate that software engineering is primarily about the management practices necessary to make reliable budgets and schedules. People at the Software Engineering Institute took this approach and created the CMM.
Formal methods 
Some advocate applying rigorous mathematical analysis to computer programming, especially proofs of correctness. They believe that traditional engineering is carried out with mathematical rigor, while programming is an iterative, trial-and-error process. These advocates strive to make programming more rigorous.
Process 
Some advocate that software engineers must follow step-by-step processes, much like assembly line workers. This inspired CMM, ISO 9000, RUP, SPICE, and other methods and processes.
Tools 
Some advocate that software engineering means tools, especially CASE tools (like Unix tools and IDEs) that emphasize high-level architecture issues. Today's CASE tools emphasize UML.
Ethics 
Some advocate that software engineering is mostly about codes of ethics and social responsibility. They sometimes argue that bugs are due to lapses of ethics.
Licenses 
Some advocate defining software engineering in terms of professional licenses, like some traditional engineers have. The biggest advocates of this position are from Texas and Canada, where the state governments sponsor licenses for SEs.
Degrees 
Some advocate defining SE by college degrees. Most professions have college degrees tailored to the needs of practitioners. Many graduate software engineering degrees are available and undergraduate degrees are becoming available.
Attributes
Cost, Time, Quality : Different kinds of applications are sensitive to different attributes. Consumer applications are sensitive to cost. Military and medical applications are sensitive to quality. Business web applications are most sensitive to time. Some researchers argue that one attribute or another (usually quality) matters more than the others. But, software engineers work on all kinds of applications.

The Software Engineering Institute (SEI) is a federally funded research and development center sponsored by the U.S. Department of Defense and operated by Carnegie Mellon University. ... CMM can refer to: Chad Michael Murray, an American actor best known for his role in One Tree Hill Capability Maturity Model Center for Microanalysis of Materials Center for Molecular Modeling Centre for Metaphysics and Mind Certification in Meeting Management Color Management Module Color Matching Method Commander of the Order... ... CMM can refer to: Chad Michael Murray, an American actor best known for his role in One Tree Hill Capability Maturity Model Center for Microanalysis of Materials Center for Molecular Modeling Centre for Metaphysics and Mind Certification in Meeting Management Color Management Module Color Matching Method Commander of the Order... ISO 9001 certification of a fish wholesaler at the Tsukiji fish market ISO 9000 is a family of ISO standards for Quality Management Systems. ... The Rational Unified Process (RUP) is an iterative software design method created by the Rational Software Corporation, now a division of IBM. It describes how to effectively deploy software using commercially proven techniques. ... ISO 15504 is a standard for Process Assessment. ... A programming tool is a program or application that software developers use to create, debug, or maintain other programs and applications. ... Categories: Stub | Software engineering | Data management ... Unix or UNIX is a computer operating system originally developed in the 1960s and 1970s by a group of AT&T Bell Labs employees including Ken Thompson, Dennis Ritchie, and Douglas McIlroy. ... An integrated development environment (IDE), also known as integrated design environment and integrated debugging environment, is a type of computer software that assists computer programmers to develop software. ... The Unified Modeling Language (UML) is a non-proprietary, object modeling and specification language used in software engineering. ...

See also


  Results from FactBites:
 
Software engineering - Wikipedia, the free encyclopedia (3774 words)
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
Requiring software engineers to be licensed would make persons who create software without a license into criminals, even if they give their software away, same as practicing medicine or law without a license, even for free, is a criminal offense.
Experimental software engineering is a branch of software engineering interested in devising experiments on software, in collecting data from these experiments, and in devising laws and theories from this data.
  More results at FactBites »


 

COMMENTARY     


Share your thoughts, questions and commentary here
Your name
Your comments
Please enter the 5-letter protection code

Want to know more?
Search encyclopedia, statistics and forums:

 


Lesson Plans | Student Area | Student FAQ | Reviews | Press Releases |  Feeds | Contact
The Wikipedia article included on this page is licensed under the GFDL.
Images may be subject to relevant owners' copyright.
All other elements are (c) copyright NationMaster.com 2003-5. All Rights Reserved.
Usage implies agreement with terms.