Software Engineering
By: Wendy • Research Paper • 3,424 Words • May 5, 2010 • 1,957 Views
Software Engineering
Software engineering (SE) is the profession concerned with specifying, designing, developing and maintaining software applications by applying technologies and practices from computer science, project management, and other fields.
SE applications are used in a wide range of activities, from industry to entertainment. Software applications improve user productivity and quality of life. Application software examples: office suites, video games, and the world wide web. System software examples: embedded systems and operating systems.
SE technologies and practices improve the productivity of developers and the quality of the applications they create. Software engineering examples: databases, languages, libraries, patterns, and tools. Computer science examples: algorithms and data structures. Project management examples: processes.
Origins
The term software engineering was used occasionally in the late 1950s and early 1960s. Software engineering was popularized by the 1968 NATO Software Engineering Conference held in Garmisch, Germany and has been in widespread use since.
Meanings
As of 2004, in common parlance the term software engineering is used with at least three distinct meanings:
• As the usual contemporary term for the broad range of activities that was formerly called programming or systems analysis;
• As the broad term for the technical analysis of all aspects of the practice, as opposed to the theory of computer programming;
• 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.
Levels
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. 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.
Software engineer
Software engineering is the practice of creating software.
Members of this profession are called software engineers, programmers, developers, or practitioners.
People who write code and do not follow the doctrines of software engineering are more accurately called programmers, developers, or software artists.
Software engineering today
Impact of software engineering
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.
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. When it is cheaper to run a business or agency with software applications than without, businesses and agencies often invest in computers, software, and personnel.
Room for improvement
In spite of the enormous economic growth and productivity gains enabled by software there remains a persistent complaint about the quality of software. Since its beginning as a field software engineering has provided great increases in the efficiency of software production, greatly