Citizendia

Software engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software. [1] It encompasses techniques and procedures, often regulated by a software development process, with the purpose of improving the reliability and maintainability of software systems. A software development process is a structure imposed on the development of a software product [2] The effort is necessitated by the potential complexity of those systems, which may contain millions of lines of code. Source lines of code ( SLOC) is a Software metric used to measure the size of a software program by counting the number of lines in the text of the program's [3]

The term software engineering was popularized by F.L. Bauer during the NATO Software Engineering Conference in 1968. Friedrich Ludwig Bauer (born June 10, 1924 in Regensburg) is a German Computer scientist and professor emeritus at [4] The discipline of software engineering includes knowledge, tools, and methods for software requirements, software design, software construction, software testing, and software maintenance tasks. Requirements analysis in Systems engineering and Software engineering, encompasses those tasks that go into determining the needs or conditions to meet for a new or Software design is a process of problem-solving and planning for a Software solution Software testing is an Empirical investigation conducted to provide stakeholders with information about the quality of the product or service under test, with respect to the In Software engineering, software maintenance is the modification of a software product after delivery to correct faults to improve performance or other attributes or to adapt [5] Software engineering is related to the disciplines of computer science, computer engineering, management, mathematics, project management, quality management, software ergonomics, and systems engineering. Computer science (or computing science) is the study and the Science of the theoretical foundations of Information and Computation and their Computer engineering (or Computer Systems Engineering) encompasses broad areas of both Electrical engineering and Computer science. Management (covering theory practice and scope of management and Manager' (covering the people who manage might help clarify and systematise Mathematics is the body of Knowledge and Academic discipline that studies such concepts as Quantity, Structure, Space and Project Management is the discipline of planning organizing and managing resources to bring about the successful completion of specific project goals and objectives Quality management is a method for ensuring that all the activities necessary to design develop and implement a product or service are effective and efficient with respect to the system Ergonomics is the Scientific discipline concerned with Designing according to the human needs and the profession that applies theory principles data and methods Systems engineering is an Interdisciplinary field of Engineering that focuses on how complex engineering projects should be designed and managed [6]

In 2004, the U. S. Bureau of Labor Statistics counted 760,840 software engineers holding jobs in the U.S.; in the same time period there were some 1. The Bureau of Labor Statistics ( BLS) a unit of the United States Department of Labor, is the principal fact-finding agency for the U The United States of America —commonly referred to as the 4 million practitioners employed in the U. S. in all other engineering disciplines combined. [7] Due to its relative newness as a field of study, formal education in software engineering is often taught as part of a computer science curriculum, and as a result most software engineers hold computer science degrees. [8]

Contents

Ambiguity and controversy

Typical formal definitions of software engineering are

The term has been used less formally:

Some people believe that software engineering implies a certain level of academic training, professional discipline, and adherence to formal processes that often are not applied in cases of software development. A common analogy is that working in construction does not make one a civil engineer, and so writing code does not make one a software engineer. In the fields of Architecture and Civil engineering, construction is a process that consists of the Building or assembling of Infrastructure A civil engineer is a person who practices Civil engineering, one of the many engineering professions In Communications a code is a rule for converting a piece of Information (for example a letter, Word, Phrase, or The notion that the field is mature enough to warrant the title "engineering" is disputed. 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), implying that the field is still changing too rapidly to be considered an engineering discipline. Structured programming can be seen as a subset or subdiscipline of Procedural programming, one of the major Programming paradigms It is most famous for removing or Object-oriented programming (OOP is a Programming paradigm that uses " objects " and their interactions to design applications and computer programs Proponents argue that the supposedly radical new approaches are evolutionary rather than revolutionary.

Individual commentators have disagreed sharply on how to define software engineering or its legitimacy as an engineering discipline. David Parnas has said that software engineering is, in fact, a form of engineering. David Lorge Parnas (born February 10, 1941) is an early pioneer of Software engineering who developed the concept of module design which is the foundation [15][16] Steve McConnell has said that it is not, but that it should be. Steven C McConnell is an author of many Software engineering textbooks including Code Complete, Rapid Development, and Software Estimation. [17] Donald Knuth has said that programming is an art and a science. Donald Ervin Knuth (kəˈnuːθ (born 10 January 1938) is a renowned computer scientist and Professor Emeritus of the Art of Computer [18] Edsger W. Dijkstra claims that the terms software engineering and software engineer have been misused, particularly in the United States. Edsger Wybe Dijkstra ( May 11, 1930 &ndash August 6, 2002; ˈɛtsxər ˈwibə ˈdɛɪkstra was a Dutch computer scientist The United States of America —commonly referred to as the [19]

Regulatory classification

The U.S. Bureau of Labor Statistics classifies computer software engineers as a subcategory of "computer specialists", along with occupations such as computer scientist, programmer, and network administrator. The Bureau of Labor Statistics ( BLS) a unit of the United States Department of Labor, is the principal fact-finding agency for the U [20] The BLS classifies all other engineering disciplines, including computer hardware engineers, as "engineers". [21]

The U. K. has seen the alignment of the Information Technology Professional and the Engineering Professionals. [22]

Software engineering in Canada has seen some contests in the courts over the use of the title "Software Engineer"[23] The Canadian Council of Professional Engineers (C. C. P. E. or "Engineers Canada") will not grant a "Professional Engineer" status/license to anyone who has not completed a recognized academic engineering program. Engineers qualified outside Canada are similarly unable to obtain a "Professional Engineer" license. [24]Template:Request citation

Some of the United States of America regulate the use of terms such as "computer engineer" and even "software engineer". These states include at least Texas[25] and Florida[26]. Texas even goes so far as to ban anyone from writing any real-time code without an engineering license.

Education

About half of all practitioners today have computer science degrees. Computer science (or computing science) is the study and the Science of the theoretical foundations of Information and Computation and their A degree is any of a wide range of status levels conferred by institutions of Higher education, such as universities, normally as the result of successfully completing A small, but growing, number of practitioners have software engineering degrees. A degree is any of a wide range of status levels conferred by institutions of Higher education, such as universities, normally as the result of successfully completing In 1996, Rochester Institute of Technology established the first software engineering Bachelor's degree program in the United States but did not obtain ABET until 2003, the same time as Clarkson University, Milwaukee School of Engineering and Mississippi State University. A bachelor's degree is usually an Undergraduate Academic degree awarded for a course or major that generally lasts for three four or in some cases and Clarkson University is a private university located in Rural Potsdam, New York. MSOE redirects here For the e-mail program see Outlook Express The Milwaukee School of Engineering (MSOE is a private University Mississippi State University is a Land-grant university located in north east-central Mississippi, United States, in the town of Starkville and [27] Since then, software engineering undergraduate degrees have been established at many universities. A standard international curriculum for undergraduate software engineering degrees was recently defined by the CCSE. The Software Engineering 2004 ( SE2004) &mdashformerly known as Computing Curriculum Software Engineering ( CCSE)&mdash is a document that provides recommendations As of 2004, in the U. "MMIV" redirects here For the Modest Mouse album see " Baron von Bullshit Rides Again " S. , about 50 universities offer software engineering degrees, which teach both computer science and engineering principles and practices. The first software engineering Master's degree was established at Seattle University in 1979. Seattle University is a Nonprofit Jesuit Catholic University in the United States. Since then graduate software engineering degrees have been made available from many more universities. Likewise in Canada, the Canadian Engineering Accreditation Board (CEAB) of the Canadian Council of Professional Engineers has recognized software engineering programs in engineering faculties such as McMaster University, the University of Waterloo, the University of Ottawa and the University of Western Ontario, the University of Calgary, the University of Victoria, École Polytechnique de Montréal, McGill University the ETS in Montréal and the Université Laval in 2006. The Canadian Council of Professional Engineers ( CCPE) operating with the business name of Engineers Canada, is the national organization of the 12 provincial and McMaster redirects here for others see McMaster (disambiguation. The University of Waterloo (also referred to as UW and Waterloo) is a comprehensive Public university in the city of Waterloo, Ontario For the university in Ottawa Kansas see Ottawa University. The University of Ottawa or Université d'Ottawa in French The University of Western Ontario (known as Western, as well as UWO or Western Ontario) is a public research University located in London The University of Calgary is a research-intensive Public university in Calgary Alberta, Canada. The University of Victoria (UVic is located in Greater Victoria British Columbia, Canada (northeast of Victoria) The École Polytechnique de Montréal is an engineering school in Montreal, Quebec. [28][29][30][31][32]

In 1998, the US Naval Postgraduate School (NPS) established the first doctorate program in Software Engineering in the world. The Naval Postgraduate School (NPS is a research university at the graduate-school level operated by the United States Navy. A doctorate is an Academic degree that indicates the highest level of academic achievement As of the beginning of 2006, thirteen students had graduated from the program and assumed senior-level leadership roles in the Department of Defense research and development community. The United States Department of Defense ( DOD or DoD) is the federal department charged with coordinating and supervising all agencies and functions of the government Additionally, many online advanced degrees in Software Engineering have appeared such as the Master of Science in Software Engineering (MSE) degree offered through the Computer Science and Engineering Department at California State University, Fullerton. California State University Fullerton, commonly known as CSUF, CSU Fullerton, or Cal State Fullerton, is currently the largest California State

Steve McConnell opines that because most universities teach computer science rather than software engineering, there is a shortage of true software engineers. [33]

ETS University and UQAM were mandated by IEEE to develop the SoftWare Engineering BOdy of Knowledge SWEBOK which has become an ISO standard describing the body of knowledge covered by a software engineer. The Software Engineering Body of Knowledge ( SWEBOK) is a product of the Software Engineering Coordinating Committee.

Other degrees

In business, some practitioners have MIS degrees. Management Information System ( MIS) is a subset of the overall Internal controls of a business covering the application of people documents technologies and procedures In embedded systems, some practitioners have electrical or computer engineering degrees, because embedded software often requires a detailed understanding of hardware. An embedded system is a special-purpose Computer system designed to perform one or a few dedicated functions often with Real-time computing constraints Electrical engineering, sometimes referred to as electrical and electronic engineering, is a field of Engineering that deals with the study and application of Computer engineering (or Computer Systems Engineering) encompasses broad areas of both Electrical engineering and Computer science. In medical software, some practitioners have medical informatics, general medical, or biology degrees. Health informatics or medical informatics is the intersection of Information science, Computer science, and Health care.

Some practitioners have mathematics, science, engineering, or technology degrees. Mathematics is the body of Knowledge and Academic discipline that studies such concepts as Quantity, Structure, Space and Science (from the Latin scientia, meaning " Knowledge " or "knowing" is the effort to discover, and increase human understanding Engineering is the Discipline and Profession of applying technical and scientific Knowledge and Technology is a broad concept that deals with a Species ' usage and knowledge of Tools and Crafts and how it affects a species' ability to control and adapt Some have philosophy (logic in particular) or other non-technical degrees. Philosophy is the study of general problems concerning matters such as existence knowledge truth beauty justice validity mind and language And, some have no degrees. For instance, Barry Boehm earned degrees in mathematics. Barry W Boehm is known for his many contributions to software engineering Mathematics is the body of Knowledge and Academic discipline that studies such concepts as Quantity, Structure, Space and

Profession

Employment

See also: software engineering demographics

Most software engineers work as employees or contractors. There are many software engineers Canada the European Union Japan and Australia will probably find corresponding numbers of SE practitioners Software engineers work with businesses, government agencies (civilian or military), and non-profit organizations. Some software engineers work for themselves as freelancers. A freelancer, freelance worker, or freelance is a person who pursues a profession without a long-term commitment to any one employer Some organizations have specialists to perform each of the tasks in the software development process. A software development process is a structure imposed on the development of a software product Other organizations required software engineers to do many or all of them. In large projects, people may specialize in only one role. In small projects, people may fill several or all roles at the same time. Specializations include: in industry (analysts, architects, developers, testers, technical support, managers) and in academia (educators, researchers). Requirements analysis in Systems engineering and Software engineering, encompasses those tasks that go into determining the needs or conditions to meet for a new or The software architecture of a program or computing system is the structure or structures of the system, which comprise software components the externally visible properties A software developer is a person or organization concerned with facets of the software development process wider than design and coding a somewhat broader scope of Software testing is an Empirical investigation conducted to provide stakeholders with information about the quality of the product or service under test, with respect to the Technical support (also tech support) is a range of services providing assistance with technology products such as mobile phones televisions Computers Project Management is the discipline of planning organizing and managing resources to bring about the successful completion of specific project goals and objectives This is a list of educators. See also Education, List of education topics. Usually a researcher or scientific researcher is someone who is professionally engaged in Scientific research, technological research or Engineering research

There is considerable debate over the future employment prospects for Software Engineers and other IT Professionals. Information technology ( IT) as defined by the Information Technology Association of America (ITAA is "the study design development implementation support For example, an online futures market called the Future of IT Jobs in America attempts to answer whether there will be more IT jobs, including software engineers, in 2012 than there were in 2002. See also 2002 (disambiguation Year 2002 ( MMII) was a Common year starting on Tuesday of the Gregorian calendar.

Certification

Certification of software engineers is a contentious issue. Overview Certifications are earned from a Professional society and in general must be renewed periodically or may be valid for a specific period of time (e Some see it as a tool to improve professional practice. Professional Engineer (PE is the term for registered or Licensed Engineers in some countries who are permitted to offer their Professional services directly

Most successful certification programs in the software industry are oriented toward specific technologies, and are managed by the vendors of these technologies. These certification programs are tailored to the institutions that would employ people who use these technologies.

The ACM had a professional certification program in the early 1980s, which was discontinued due to lack of interest. The Association for Computing Machinery, or ACM, was founded in 1947 as the world's first scientific and educational Computing society As of 2006, the IEEE had certified over 575 software professionals. Year 2006 ( MMVI) was a Common year starting on Sunday of the Gregorian calendar. The Institute of Electrical and Electronics Engineers or IEEE (read eye-triple-e) is an international Non-profit, professional organization [34] In Canada the Canadian Information Processing Society has developed a legally recognized professional certification called Information Systems Professional (ISP). The Canadian Information Processing Society (CIPS is the Information Technology professional society in Canada. [35]

Impact of globalization

Many students in the developed world have avoided degrees related to software engineering because of the fear of offshore outsourcing (importing software products or services from other countries) and of being displaced by foreign visa workers. Offshore outsourcing is the practice of hiring an external organization to perform some business functions in a country other than the one where the products or services The Foreign Worker visa is an immigration document allowing a foreign national to temporarily immigrate to a country for purposes of employment [36] Although government statistics do not currently show a threat to software engineering itself; a related career, computer programming does appear to have been affected. [37][38] Often one is expected to start out as a computer programmer before being promoted to software engineer. Thus, the career path to software engineering may be rough, especially during recessions.

Some career counselors suggest a student also focus on "people skills" and business skills rather than purely technical skills because such "soft skills" are allegedly more difficult to offshore. [39] It is the quasi-management aspects of software engineering that appear to be what has kept it from being impacted by globalization. [40]

Comparing related fields

Many fields are closely related to software engineering; here are some key similarities and distinctions. The relationships between Software engineering and the fields of Programming, Computer science, and traditional engineering have been debated for decades Comparing SE with other fields helps explain what SE is and helps define what SE might or should become. There is considerable debate over which fields SE most resembles (or should most resemble). These complex and inexact comparisons explain why some see software engineering as its own field.

History

Software engineering has a long evolving history. Software engineering has evolved steadily from its founding days in the 1940s until today in the 2000s. Both the tools that are used and the applications that are written have evolved over time. It seems likely that software engineering will continue evolving for many decades to come.

60 year time line

Current trends in software engineering

Software engineering is a young discipline, and is still developing. The directions in which software engineering is developing include:

Aspects
Aspects help software engineers deal with quality attributes by providing tools to add or remove boilerplate code from many areas in the source code. Aspect-oriented programming ( AOP) is a Programming paradigm that increases modularity by allowing the separation of Cross-cutting concerns In Systems engineering and Requirements engineering, non-functional requirements are Requirements which specify criteria that can be used to judge the operation Boilerplate is any text that is or can be reused in new contexts or applications without being changed much from the original In Computer science, source code (commonly just source or code) is any sequence of statements or declarations written in some Human-readable Aspects describe how all objects or functions should behave in particular circumstances. For example, aspects can add debugging, logging, or locking control into all objects of particular types. In Computer science, an aspect is a part of a program that cross-cuts its Core concerns therefore violating its Separation of concerns. Data logging is the practice of recording sequential Data, often chronologically. In Computer science, a lock is a synchronization mechanism for enforcing limits on access to a resource in an environment where there are many threads of Researchers are currently working to understand how to use aspects to design general-purpose code. Related concepts include generative programming and templates. In Computer science, the term automatic programming identifies a type of Computer programming in which some mechanism generates a Computer program rather Templates are a feature of the C++ programming language that allow functions and classes to operate with generic types.
Agile
Agile software development guides software development projects that evolve rapidly with changing expectations and competitive markets. Agile software development refers to a group of Software development methodologies that are based on similar principles Software development is the translation of a user need or marketing goal into a Software product In the case of Uncertainty, expectation is what is considered the most likely to happen Proponents of this method believe that heavy, document-driven processes (like TickIT, CMM and ISO 9000) are fading in importance. TickIT is a quality-management certification program for Software, supported primarily by the United Kingdom and Swedish software industries ISO 9000 is a family of standards for Quality management systems ISO 9000 is maintained by ISO the International Organization for Standardization and is Some people believe that companies and agencies export many of the jobs that can be guided by heavy-weight processes. Related concepts include Extreme Programming and Lean software development. Extreme Programming (or XP) is a Software engineering methodology (and a form of Agile software development) Proponents of Extreme Programming and agile Lean Software Development is a translation of Lean manufacturing principles and practices to the Software development domain
Experimental
Experimental software engineering is a branch of software engineering interested in devising experiments on software, in collecting data from the experiments, and in devising laws and theories from this data. Experimental software engineering is a sub-domain of Software engineering focusing on Experiments on Software systems (software products processes and resources In scientific inquiry an experiment ( Latin: Ex- periri, "to try out" is a method of investigating particular types of research questions or Proponents of this method advocate that the nature of software is such that we can advance the knowledge on software through experiments only.
Model-driven
Model Driven Software Development uses (both textual and graphical) models as primary development artifacts. Model-driven engineering (MDE is a software development methodology which focuses on creating models or abstractions of something more tangible that describe the elements of a system By means of model transformation and code generation a part or complete applications are generated. The notion of model transformation is central to Model Driven Engineering.
Software Product Lines
Software Product Lines is a systematic way to produce families of software systems, instead of creating a succession of completely individual products. Product families/lines are quite common in our daily lives but before a product family can be successfully established an extensive Process has to be followed This method emphasizes extensive, systematic, formal code reuse, to try to industrialize the software development process. Code reuse, also called software reuse is the use of existing software or software knowledge to build new software

The Future of Software Engineering conference (FOSE), held at ICSE 2000, documented the state of the art of SE in 2000 and listed many problems to be solved over the next decade. The FOSE tracks at the ICSE 2000 and the ICSE 2007 conferences also help identify the state of the art in software engineering.

Software engineering today

The profession is trying to define its boundary and content. The Software Engineering Body of Knowledge SWEBOK has been tabled as an ISO standard during 2006 (ISO/IEC TR 19759). The Software Engineering Body of Knowledge ( SWEBOK) is a product of the Software Engineering Coordinating Committee.

In 2006, Money Magazine and Salary. com rated software engineering as the best job in America in terms of growth, pay, stress levels, flexibility in hours and working environment, creativity, and how easy it is to enter and advance in the field. [41]

See also software engineering economics. The software industry comprises businesses involved in the development, maintenance and publication of Computer software.

See also

Main lists: List of basic software engineering topics and List of software engineering topics

References

  1. ^ “IEEE Standard Glossary of Software Engineering Terminology,” IEEE std 610. This list complements the Software engineering article giving more details and examples The Association for Computing Machinery, or ACM, was founded in 1947 as the world's first scientific and educational Computing society Computer science (or computing science) is the study and the Science of the theoretical foundations of Information and Computation and their Custom software development, also known as custom Software engineering, defines omitting of predeveloped (template or boxed solutions and views Informatics is the science of Information, the practice of Information processing, and the engineering of Information systems. Search-based software engineering ( SBSE) is an approach to apply Metaheuristic search techniques like Genetic algorithms, Simulated annealing Software development is the translation of a user need or marketing goal into a Software product Software quality assurance ( SQA) consists of a means of monitoring the Software engineering processes and methods used to ensure quality System testing of software or hardware is testing conducted on a complete integrated system to evaluate the system's compliance with its specified Requirements. Software Assurance (SwA is defined as “the level of confidence that software is free from vulnerabilities either intentionally designed into the software or accidentally inserted In Software Engineering, Software System Safety optimizes system safety in the design development use and maintenance of Software systems and their integration Structured Analysis ( SA) and its allied technique Structured Design (SD are methods for analyzing and converting business Requirements into A systems analyst is responsible for researching planning coordinating and recommending Software and system choices to meet an Organization 's Business User experience design is a subset of the field of Experience design which pertains to the creation of the architecture and interaction models which impact a user's perception This is a list of academic conferences in Computer science. Most of these Academic conferences are annual or bi-annual events Computability Computability An introduction Service-oriented modeling is a Software development methodology that employs disciplines and a universal language to provide tactical and strategic solutions to enterprise The Institute of Electrical and Electronics Engineers or IEEE (read eye-triple-e) is an international Non-profit, professional organization 12-1990, 1990, quoted at the beginning of Chapter 1: Introduction to the guide Guide to the Software Engineering Body of Knowledge (February 6, 2004). Retrieved on 2008-02-21. 2008 ( MMVIII) is the current year in accordance with the Gregorian calendar, a Leap year that started on Tuesday of the Common Events 362 - Athanasius returns to Alexandria. 1245 - Thomas, the first known Bishop of Finland
  2. ^ Pecht, Michael (1995). Product Reliability, Maintainability, and Supportability Handbook. CRC Press. ISBN 0-8493-9457-0.  
  3. ^ Pehrson, Ronald J. (January 1996). "Software Development for the Boeing 777". CrossTalk: The Journal of Defense Software Engineering.  , "The 2. 5 million lines of newly developed software were approximately six times more than any previous Boeing commercial airplane development program. Including commercial-off-the-shelf (COTS) and optional software, the total size is more than 4 million lines of code. "
  4. ^ Dijkstra, Edsger W; transcribed by Mario Béland (1993-12-03; transcription last revised 2004-11-23). Edsger Wybe Dijkstra ( May 11, 1930 &ndash August 6, 2002; ˈɛtsxər ˈwibə ˈdɛɪkstra was a Dutch computer scientist There is still a war going on (manuscript Austin, 3 December 1993). E. W. Dijkstra Archive. The University of Texas at Austin, Department of Computer Sciences. Retrieved on 2007-02-17. Year 2007 ( MMVII) was a Common year starting on Monday of the Gregorian calendar in the 21st century. Events 1500 - Battle of Hemmingstedt. 1600 - Philosopher Giordano Bruno is burned alive at Campo de' Fiori  “When the term was coined in 1968 by F. L. Bauer of the Technological University of Munich, I welcomed it. ”
  5. ^ Table 1 in Chapter 1,Guide to the Software Engineering Body of Knowledge (February 6, 2004). Retrieved on 2008-02-21. 2008 ( MMVIII) is the current year in accordance with the Gregorian calendar, a Leap year that started on Tuesday of the Common Events 362 - Athanasius returns to Alexandria. 1245 - Thomas, the first known Bishop of Finland
  6. ^ Table 2 in Chapter 1,Guide to the Software Engineering Body of Knowledge (February 6, 2004). Retrieved on 2008-02-21. 2008 ( MMVIII) is the current year in accordance with the Gregorian calendar, a Leap year that started on Tuesday of the Common Events 362 - Athanasius returns to Alexandria. 1245 - Thomas, the first known Bishop of Finland
  7. ^ Bureau of Labor Statistics, U. S. Department of Labor, USDL 05-2145: Occupational Employment and Wages, November 2004, Table 1.
  8. ^ Software Engineering. Retrieved on 2008-02-01. 2008 ( MMVIII) is the current year in accordance with the Gregorian calendar, a Leap year that started on Tuesday of the Common Events 1327 - Teenaged Edward III is crowned King of England, but the country is ruled by his mother Queen
  9. ^ “IEEE Standard Glossary of Software Engineering Terminology,” IEEE std 610. The Institute of Electrical and Electronics Engineers or IEEE (read eye-triple-e) is an international Non-profit, professional organization 12-1990, 1990.
  10. ^ Sommerville, Ian [1982] (2007). Ian F Sommerville, ( 1951 &ndash is a British academic He is currently ( 2006) a full professor of Software engineering at the "1. 1. 2 What is software engineering?", Software Engineering, 8th ed. , Harlow, England: Pearson Education, P. 7. ISBN 0-321-31379-8.  “Software engineeering is an engineering discipline that is concerned with all aspects of software production from the early stages of system specification to maintaining the system after it has gone into use. In this definition, there are two key phrases:
    1. Engineeering discipline Engineers make things work. They apply theories, methods and tools where these are appropriate [. . . ] Engineers also recognise that they must work to organisational and financial constraints. [. . . ]
    2. All aspects of software production Software engineering is not just concerned with the technical processes of software development but also with activities such as software project management and with the development of tools, methods and theories to support software production. ”
     
  11. ^ "Software Engineering" (1972). Information Processing 71: 530-538. North-Holland Publishing Co. .  
  12. ^ Akram I. Salah (2002-04-05). See also 2002 (disambiguation Year 2002 ( MMII) was a Common year starting on Tuesday of the Gregorian calendar. Events 456 - St Patrick returns to Ireland as a missionary bishop Engineering an Academic Program in Software Engineering. 35th Annual Midwest Instruction and Computing Symposium. Retrieved on 2006-09-13. Year 2006 ( MMVI) was a Common year starting on Sunday of the Gregorian calendar. Events 509 BC - The Temple of Jupiter on Rome 's Capitoline Hill is dedicated on the ides of September : "For some, software engineering is just a glorified name for programming. If you are a programmer, you might put 'software engineer' on your business card—never 'programmer' though. "
  13. ^ Mills, Harlan D. , J. R. Newman, and C. B. Engle, Jr. , "An Undergraduate Curriculum in Software Engineering," in Deimel, Lionel E. (1990). Software Engineering Education: SEI Conference 1990, Pittsburgh, Pennsylvania, USA, April 2-3,. . . . Springer. ISBN 0-387-97274-9.  , p. 26: "As a practical matter, we regard software engineering as the necessary preparation for the practicing, software development and maintenance professional. The Computer Scientist is preparing for further theoretical studies. . . "
  14. ^ David Budgen, Pearl Brereton, Barbara Kitchenham, Stephen Linkman (2004-12-14). "MMIV" redirects here For the Modest Mouse album see " Baron von Bullshit Rides Again " Events 1287 - St Lucia's flood: The Zuider Zee sea wall in the Netherlands collapses killing over 50000 people Realizing Evidence-based Software Engineering. Retrieved on 2006-10-18. Year 2006 ( MMVI) was a Common year starting on Sunday of the Gregorian calendar. Events 1009 - The Church of the Holy Sepulchre, a Christian church in Jerusalem, is completely destroyed by the Fatimid : "We believe that software engineering can only advance as an engineering discipline by moving away from its current dependence upon advocacy and analysis. . . . "
  15. ^ Parnas, David L. (1998). David Lorge Parnas (born February 10, 1941) is an early pioneer of Software engineering who developed the concept of module design which is the foundation "Software Engineering Programmes are not Computer Science Programmes". Annals of Software Engineering 6: 19–37.  , p. 19: "Rather than treat software engineering as a subfield of computer science, I treat it as an element of the set, {Civil Engineering, Mechanical Engineering, Chemical Engineering, Electrical Engineering,. . . . }. "
  16. ^ Parnas, David L. (1998). David Lorge Parnas (born February 10, 1941) is an early pioneer of Software engineering who developed the concept of module design which is the foundation "Software Engineering Programmes are not Computer Science Programmes". Annals of Software Engineering 6: 19–37.  , p. 20: "This paper argues that the introduction of accredited professional programmes in software engineering, programmes that are modelled on programmes in traditional engineering disciplines will help to increase both the quality and quantity of graduates who are well prepared, by their education, to develop trustworthy software products. "
  17. ^ McConnell, Steve (August 2003). Steven C McConnell is an author of many Software engineering textbooks including Code Complete, Rapid Development, and Software Estimation. Professional Software Development: Shorter Schedules, Better Projects, Superior Products, Enhanced Careers. Boston, MA: Addison-Wesley. ISBN 0-321-19367-9.  , p. 39: "In my opinion, the answer to that question is clear: Professional software development should be engineering. Is it? No. But should it be? Unquestionably, yes. "
  18. ^ Knuth, Donald (1974). Donald Ervin Knuth (kəˈnuːθ (born 10 January 1938) is a renowned computer scientist and Professor Emeritus of the Art of Computer "Computer Programming as an Art". Communications of the ACM 17 (12): 667-673.   Transcript of the 1974 Turing Award lecture. The A M Turing Award is given annually by the Association for Computing Machinery to "an individual selected for contributions of a technical nature made to the computing
  19. ^ Dijkstra, Edsger W; transcribed by Mario Béland (1993-12-03; transcription last revised 2004-11-23). Edsger Wybe Dijkstra ( May 11, 1930 &ndash August 6, 2002; ˈɛtsxər ˈwibə ˈdɛɪkstra was a Dutch computer scientist There is still a war going on (manuscript Austin, 3 December 1993). E. W. Dijkstra Archive. The University of Texas at Austin, Department of Computer Sciences. Retrieved on 2007-02-17. Year 2007 ( MMVII) was a Common year starting on Monday of the Gregorian calendar in the 21st century. Events 1500 - Battle of Hemmingstedt. 1600 - Philosopher Giordano Bruno is burned alive at Campo de' Fiori  “When the term was coined in 1968 by F. L. Bauer of the Technological University of Munich, I welcomed it. [. . . ] I interpreted the introduction of the term “software engineering” as an apt reflection of the fact that the design of software systems was an activity par excellence for the mathematical engineer. [. . . ]. As soon the term arrived in the USA, it was relieved of all its technical content. It had to be so for in its original meaning it was totally unacceptable [. . . ] In the mean time, software engineering has become an almost empty term, as was nicely demonstrated by Data General who overnight promoted all its programmers to the exalted rank of “software engineer”!”
  20. ^ U. S Department of Labor and Statistics The 2000 Standard Occupational Classification (SOC) System: 15-0000 Computer and Mathematical Occupations
  21. ^ U. S Department of Labor and Statistics The 2000 Standard Occupational Classification (SOC) System: 17-0000 Architecture and Engineering Occupations
  22. ^ 'British Computer Society' - "BCS is licensed by the Engineering Council to award Chartered Engineer status (CEng) and Incorporated Engineer status (IEng);" [1]
  23. ^ 'Professional Engineers of Ontario' - "Quebec Engineers win court battle against Microsoft"[2]
  24. ^ Council for Access to the Profession of Engineering
  25. ^ IEEE Software: "What do you mean I can't call myself a Software Engineer?"
  26. ^ Florida Statutes: Chapter 471: Engineering
  27. ^ ABET Accredited Engineering Programs (April 3, 2007). Retrieved on 2007-04-03. Year 2007 ( MMVII) was a Common year starting on Monday of the Gregorian calendar in the 21st century. Events 1043 - Edward the Confessor is crowned King of England.
  28. ^ PEO. CEAB accredits first software programs. Retrieved on 2007-04-10. Year 2007 ( MMVII) was a Common year starting on Monday of the Gregorian calendar in the 21st century. Events 879 - Louis III becomes King of the Western Franks. 1407 - the lama
  29. ^ CCPE. Software Engineering Syllabus - 2004. Retrieved on 2007-04-10. Year 2007 ( MMVII) was a Common year starting on Monday of the Gregorian calendar in the 21st century. Events 879 - Louis III becomes King of the Western Franks. 1407 - the lama
  30. ^ University of Victoria. Full Accreditation granted to our Software Engineering Degree (BSEng) Program!. Retrieved on 2007-12-09. Year 2007 ( MMVII) was a Common year starting on Monday of the Gregorian calendar in the 21st century. Events 536 - Byzantine General Belisarius enters Rome while the Ostrogothic garrison peacefully leaves the city
  31. ^ McGill University. Full Accreditation has been granted to our Software Engineering Degree (B.S.E.) Program!. Retrieved on 2008-04-10. 2008 ( MMVIII) is the current year in accordance with the Gregorian calendar, a Leap year that started on Tuesday of the Common Events 879 - Louis III becomes King of the Western Franks. 1407 - the lama
  32. ^ Université Laval. Accréditation par le BCAPI. Retrieved on 2008-01-05. 2008 ( MMVIII) is the current year in accordance with the Gregorian calendar, a Leap year that started on Tuesday of the Common Events 1477 - Battle of Nancy: Charles the Bold is killed and Burgundy becomes part of France.
  33. ^ McConnell, Steve (July 10, 2003. Events 48 BC - Battle of Dyrrhachium, Julius Caesar barely avoids a catastrophic defeat to Pompey in Macedonia. Year 2003 ( MMIII) was a Common year starting on Wednesday of the Gregorian calendar. Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers. ISBN 978-0321193674.
  34. ^ IEEE Computer Society. 2006 IEEE COMPUTER SOCIETY REPORT TO THE IFIP GENERAL ASSEMBLY. Retrieved on 2007-04-10. Year 2007 ( MMVII) was a Common year starting on Monday of the Gregorian calendar in the 21st century. Events 879 - Louis III becomes King of the Western Franks. 1407 - the lama
  35. ^ Canadian Information Processing Society. I.S.P. Designation. Retrieved on 2007-03-15. Year 2007 ( MMVII) was a Common year starting on Monday of the Gregorian calendar in the 21st century. Events 44 BC - Julius Caesar, Dictator of the Roman Republic, is stabbed to death by Marcus Junius Brutus,
  36. ^ As outsourcing gathers steam, computer science interest wanes
  37. ^ Computer Programmers
  38. ^ Software developer growth slows in North America | InfoWorld | News | 2007-03-13 | By Robert Mullins, IDG News Service
  39. ^ Hot Skills, Cold Skills
  40. ^ Dual Roles: The Changing Face of IT
  41. ^ Kalwarski, Tara; Daphne Mosher, Janet Paskin and Donna Rosato (2006). Best Jobs in America. MONEY Magazine. CNN. Retrieved on 2006-04-20. Year 2006 ( MMVI) was a Common year starting on Sunday of the Gregorian calendar. Events 1303 - The University of Rome La Sapienza is instituted by Pope Boniface VIII. , "MONEY Magazine and Salary. com researched hundreds of jobs, considering their growth, pay, stress-levels and other factors. These careers ranked highest. 1. Software Engineer. . . "

Further reading

External links

The Bureau of Labor Statistics ( BLS) a unit of the United States Department of Labor, is the principal fact-finding agency for the U

Dictionary

software engineering

-noun

  1. The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches. That is the application of engineering to software.
© 2009 citizendia.org; parts available under the terms of GNU Free Documentation License, from http://en.wikipedia.org
Dapyx Software network: MP3 Explorer | Ebook Manager | Zenithic