Outline of software engineering explained

The following outline is provided as an overview of and topical guide to software engineering:

Software engineering  - application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is the application of engineering to software.[1]

The ACM Computing Classification system is a poly-hierarchical ontology that organizes the topics of the field and can be used in semantic web applications and as a de facto standard classification system for the field. The major section "Software and its Engineering" provides an outline and ontology for software engineering.

Software applications

Software engineers build software (applications, operating systems, system software) that people use.

Applications influence software engineering by pressuring developers to solve problems in new ways. For example, consumer software emphasizes low cost, medical software emphasizes high quality, and Internet commerce software emphasizes rapid development.

Software engineering topics

Programming languages
C++
D
Eiffel
Groovy
OCaml
Prolog
JavaScript
Scala
T-SQL
Visual Basic .NET
Assembly language • • • Scripting language • • • List of programming languages

Programming paradigm, based on a programming language technology

Databases

Graphical user interfaces

Programming tools

Libraries

Design languages

Patterns, document many common programming and project management techniques

Processes and methodologies

Platforms

A platform combines computer hardware and an operating system. As platforms grow more powerful and less costly, applications and tools grow more widely available.

Other Practices

Other tools

Computer science topics

Skilled software engineers know a lot of computer science including what is possible and impossible, and what is easy and hard for software.

Mathematics topics

Discrete mathematics is a key foundation of software engineering.

Other

Life cycle phases

2.0

Deliverables

Deliverables must be developed for many SE projects. Software engineers rarely make all of these deliverables themselves. They usually cooperate with the writers, trainers, installers, marketers, technical support people, and others who make many of these deliverables.

Business roles

Management topics

Business topics

Software engineering profession

History of software engineering

History of software engineering

Pioneers

Many people made important contributions to SE technologies, practices, or applications.

Fortran, first optimizing compiler, BNF

Experience factory.

Stack principle, popularized the term Software Engineering

Refactoring, extreme programming, pair programming, test-driven development.

World Wide Web

SE economics, COCOMO, Spiral model.

Object-oriented design, UML.

Managed System 360 and OS 360. Wrote The Mythical Man-Month and No Silver Bullet.

Structured design, coupling, cohesion

Wrote Notes on Structured Programming, A Discipline of Programming and Go To Statement Considered Harmful, algorithms, formal methods, pedagogy.

Software inspection.

Software metrics, Software inspection, Evolutionary Delivery ("Evo").

Wrote the Operators Manual for the ENIAC, the first electronic digital computer, and trained some of the first human computers

FORTRAN, wrote the first parser

Coined the term "software engineering", developed Universal Systems Language

Regression testing, fault localization

The first compiler (Mark 1), COBOL, Nanoseconds.

Capability Maturity Model, Personal Software Process, fellow of the Software Engineering Institute.

Ada

Jackson Structured Programming, Jackson System Development

Berkeley Unix, vi, Java.

Smalltalk

C and Unix.

Wrote The Art of Computer Programming, TeX, algorithms, literate programming

System safety

Design by Contract, Eiffel programming language.

RISKS Digest, ACM Sigsoft.

Module design, social responsibility, professionalism.

Developed the original Macintosh GUI, authored The Humane Interface

C and Unix.

Waterfall model.

Software architecture.

Founder of the Free Software Foundation

Linux kernel, free software / open source development.

Reuse, ACM Software Engineering Notes.

Wrote The Psychology of Computer Programming.

Software testing

Formal specifications.

Structured programming, wrote The Decline and Fall of the American Programmer.

See also

Notable publications

Related fields

See also

External links

Professional organizations
Professionalism
Education
Standards:
Government organizations:
Agile:
Other organizations:
Demographics
Surveys:
Other:

Notes and References

  1. Book: Pierre . Bourque . Robert . Dupuis . Guide to the Software Engineering Body of Knowledge - 2004 Version . . 2004 . 1 . 0-7695-2330-7 .