List of software engineering topics
Software engineering technologies and practices
- Programming languages
- Fortran
- Cobol
- C
- Java
- C++
- Visual Basic
- Relational databases
- Software tools
- Configuration management or source code management
- Editors
- text editors
- program editors
- word processors
- Design languages
- Decision tables
- Patterns and Anti-patterns document many common programming and project management techniques.
- Software development processes
- ISO 9000
- CMM and CMMI
- Rational unified process RUP
- Extreme Programming, Agile software development, Lean software development
- Platformss. As platforms have become more powerful, tools have become available on less expensive platforms and more widely available.
Approaches to programming practice
- Programming paradigm
- Structured programming
- Functional decomposition
- Object-oriented programming
- State-oriented programming
- Aspect-oriented programming
- Post-object programming
- Software Reuse
- Domain Engineering
- Software components
Life cycles and strategies
- Software development lifecycle
- Project lifecycle
- Waterfall model - Structured programming and Stepwise refinement
- Spiral model - Iterative development
- Chaos model - Chaos strategy
Life cycle phases
- Life cycle phase
- Development stage
- Requirements gathering
- Requirements analysis
- Software architecture
- Computer programming
- Testing, focuses on detecting (preventing?) bugs
- Black box testing
- White box testing
- Clear box testing
- Quality assurance, ensures compliance with process. It is a misnomer because it is not about quality and it is not about testing.
Management issues
- Project management
- Configuration management
- Personnel management
- Change management
- Risk management
- Software metrics
Notable unsolved problems
- Complexity or scaling or Efficient Algorithms
- Software brittleness problem
- Second system syndrome
- Estimation
Notable software engineers
- John Backus: Fortran, first optimizing compiler
- Kent Beck: Refactoring, Extreme programming (pair programming, test driven development).
- Tim Berners-Lee: World wide web
- Barry Boehm: Software economics, COCOMO, Spiral model.
- Grady Booch: Object-oriented design, UML.
- Fred Brooks: Managed System 360 and OS 360. Wrote The Mythical Man-Month and "No Silver Bullet".
- Edsger Dijkstra: Author of A Discipline of Programming
- Michael Fagan: Code inspection.
- Tom Gilb: Evolutionary processes.
- Grace Hopper: First compiler (Mark 1), COBOL.
- Watts S. Humphrey: Capability Maturity Model, headed (founded?) the Software Engineering Institute.
- Jean Ichbiah: Ada
- Bill Joy: Berkeley Unix, VI, Java.
- Brian Kernighan: C and Unix.
- Donald Knuth : Author of The Art of Computer Programming
- Bertrand Meyer: Design by Contract, Eiffel programming language.
- Peter G. Neumann: Computer risks, ACM Sigsoft.
- David Parnas: Module design, social responsibility, professionalism.
- Jef Raskin: Developed original Macintosh GUI
- Dennis Ritchie: C and Unix.
- Winston W. Royce: Waterfall model.
- Will Tracz: Reuse, ACM Software Engineering Notes.
- Richard Stallman: Founder of the Free Software Foundation
- Gerald Weinberg: Wrote The Psychology of Computer Programming.
- Ed Yourdon: Structured programming, wrote The Decline and Fall of the American Programmer.
Notable applications
- Accounting / MIS
- Analytics
- Decision support systems
- Compilers
- Parsers
- Optimizers
- Interpreterss
- Linkers
- Loaders
- Computer graphics
- Special effects for video and film
- Embedded systems
- Automotive software
- Avionics software
- HVAC controllers
- Telephony
- Graphical user interfaces
- Logistics
- Office suites
- Word processors
- Spreadsheets
- Presentation
- Calendars
- Operating systems
- Single task
- Multitasking
- Relational databases
- Robotics
- Signal analysis
- Image processing
- Signal processing encoding sound and information
- Speech recognition
- Text reconition
- Handwriting recognition
- Video games
- World wide web
Notable disasters
- Ariane
- Mars probes
- Denver International Airport
Notable books
- About Face, by Alan Cooper
- The Mythical Man-Month, by Fred Brooks: Written at UNC describing what Brooks learned from IBM's OS 360 project.
- The Capability Maturity Model, by Watts Humphrey. Written for the Software Engineering Institute, emphasizing management. Humphreys was a VP at IBM.
- The Psychology of Computer Programming, by Gerald Weinberg. Written as an independent consultant, partly about his IBM years.
- The Fall of the American Programmer by Ed Yourdon.
- Object-oriented Analysis and Design by Grady Booch.
- Design Patterns by Gang of Four.
- Refactoring: Improving the Design of Existing Code by Martin Fowler, Kent Beck, John Brant, William Opdyke and Don Roberts
- Peopleware, by Tom DeMarco.
- Principles of Software Engineering Management by Tom Gilb.
Related Fields
- Software engineering
- Information engineering
- Knowledge engineering
- GUI engineering
- Computer science
- Information science
- Computer engineering
- Information systems
Related Wikipedia Pages
- SWEBOK
- Computer terms etymology or origins of computer terms
Related web sites
- Undergraduate curriculum
- Professional licensing in Texas
- http://www.software-engineer.org A community for software engineers
- http://www.agilealliance.org Organization to promote Agile software development
- http://www.acm.org The Association for Computing Machinery
- http://www.computer.org The IEEE Computer Society
- IEEE Software Engineering Standards
- David Redmiles page from the University of California site
- The Software Engineering Institute
- SE Code of Ethics
- Bureau of Labor Statistics
- Full text in PDF from the NATO conference in Garmisch
