Software engineering
lastmod 2026-04-22created 2014-01-1118 edits
|
Software engineering is the discipline that deals systematically, descriptively, and quantitatively with the entire life cycle of software, including its development, operation, and maintenance; in other words, it is the application of engineering to software.
The English term software engineering first appeared at the 1968 NATO Software Engineering Conference, where it was meant to encourage people to think carefully about the software crisis of the time. Since then, as both a profession and an academic field, it has steadily devoted itself to creating software with better quality, cost, maintainability, and build speed. It is still a relatively young field compared with its sister field of engineering, and there is ongoing debate about what software engineering' actually is and whether it fits the traditional definition of engineering. It grew organically out of moving beyond the limited view of software as mere programming. Recent trends include aspect-oriented (Aspect), agile (Agile), and model-driven (Model-Driven) approaches.
Categories
- Feature-driven development (FDD)
- Test driven Development (TDD)
- Behavior-driven development (BDD)
- Domain-driven design (DDD)
- Engineering (Korean: 공학)
- Engineer (Korean: 공학자; gisulja, "technician")
- Forward Deployed Engineer (Korean: 현장 배치 엔지니어)
Product acceptance testing procedure
See Acceptance testing for details.
Software proposal resources
- Standard on consideration for software business
-
Standard_on_consideration_of_the_software_business.zip
- NRF - 2012 National Research Foundation of Korea - Request for proposal for the e-bidding system construction project
-
Found_19_29833_0.pdf
The Product Engineer
Software engineering in the traditional sense is coming to an end, and a product engineering paradigm built on AI is emerging
- The product engineer is a hybrid of product manager and full-stack developer: an autonomous, outcome-oriented builder responsible for the whole cycle from planning to deployment
- Drawing on AI-native, T-shaped skills and KPI-driven thinking, they are organized by feature rather than by team and take end-to-end ownership of areas such as onboarding, payments, and notifications
- In the product phase they handle ideation, market analysis, user research, and product design; in the engineering phase they handle architecture, system design, and frontend and backend development
- AI is an especially powerful tool in definable and deterministic (D&D) areas, and organizations are likely to evolve from the traditional PM–designer–engineer triangle toward a product engineer + AI collaboration structure
Laws of software engineering
A collection of 56 principles and patterns that shape software systems, teams, and decision-making, gathered in one place and covering a wide range of areas from team operations to architecture, quality, design, and decision-making.
Table of software engineering
| Fields | Requirements analysis, Systems analysis, Software design, Computer programming, Formal methods, Software testing, Software deployment, Software maintenance | |
| Concepts | Data modeling, Enterprise architecture, Functional specification, Modeling language, Orthogonality, Programming Paradigms, Software, Software architecture, Software development methodology, Software development process, Software quality, Software quality assurance, Software archaeology, Structured analysis | |
| Orientations | Agile, Aspect-oriented, Object orientation, Ontology, Service orientation, SDLC | |
| Models | Development models | Agile, Iterative model, RUP, EUP, Scrum, Spiral model, Waterfall model, XP, V-Model, Incremental model, Prototype model, TDD |
| Other models | Automotive SPICE, CMMI, Data model, Function model, Information model, Metamodeling, Object model, Systems model, View model | |
| Modeling languages | IDEF, UML, SysML | |
Favorite site
Tutorials
- CS146S: The Modern Software Developer (Korean) | GeekNews
- [Original] CS146S Korean Edition | The Modern Software Developer
- Official Korean edition of Stanford's CS146S course