List of software engineering topics
Appearance
Software Engineering Technologies and Practices
- Programming languages
- Java
- C++
- Relational databases
- SQL
- Software tools
- make
- cvs
- editors
- design languages
- Patterns and Anti-patterns document many common programming and project management techniques.
- Software development processes
- ISO 9000
- CMM and CMMI
- RUP
- XP
- Agile programming
- Platforms. As platforms have become more powerful, tools have become available on less expensive platforms and more widely available.
- WINTEL PCs
- IBM mainframes
- Software metrics
Approaches to Programming Practice
- Structured programming
- Software Reuse and Domain Engineering
- Object-oriented programming
- Software components
- State-oriented programming
- Aspect-oriented programming
- Post-object programming
Life Cycle (Waterfall Point of View)
- Project lifecycle
- Requirements gathering and Analysis
- Software architecture
- Functional decomposition
- Computer programming
- Testing, focuses on detecting (preventing?) bugs
- Quality assurance, ensures compliance with process. It is a misnomer because it is not about quality and it is not about testing.
Management (Management Point of View)
- Project management
- Configuration management
- Personnel management
- Risk management, everything is a risk because everything could cause delays.
Notable Unsolved Problems
Notable Software Engineers
- John Backus: Fortran, first optimizing compiler
- Donald Bagert: First professional software engineer in U.S. in 1998.
- Kent Beck: Refactoring, XP (pair programming, test driven development).
- Barry Boehm: Economics, COCOMO, spiral model.
- Grady Booch: Object-oriented design, UML.
- Fred Brooks: System 360, OS 360, Mythical Man Month.
- Michael Fagan: Code reviews.
- Grace Hopper: First compiler (Mark 1), COBOL.
- Watts S. Humphrey: CMM, headed (founded?) the SEI.
- Jean Ichbiah: Ada
- Bill Joy: Berkeley Unix, VI, Java.
- Brian Kernighan: C and Unix.
- Bertrand Meyer: Design by Contract, Eiffel programming language.
- Peter G. Neumann: Computer Risks, ACM Sigsoft.
- David Parnas: Module design, social responsibility.
- 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: The Psychology of Computer Programming.
- Ed Yourdon: Structured programming, The Decline and Fall of the American Programmer.
Notable Software Moguls
- Bill Gates: Microsoft
- Larry Ellison: Oracle Corporation
- Steve Jobs: Apple Computer, NeXT Computer and Pixar
- Mitch Kapor: Lotus (now with the Open Source Applications Foundation)
Notable Applications
- Compilers
- Computer graphics
- Special effects for video and film
- Image processing
- Embedded systems
- Graphical user interfaces
- Office suites
- Operating systems
- Relational databases
- Robotics
- Video games
- World wide web (Tim Berners-Lee)
Notable Books
- 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.
- The Art of Computer Programming by Knuth. This was the cookbook for many software engineers for decades.