
소프트웨어 공학 소프트웨어 공학은 소프트웨어를 개발하는 데 필요한 모든 지식들과 기술들을 다루는 학문을 말한다.
Software Process

4개의 기본적인 Process Activities가 있다. Specification Development Validation Evolution
Process Improvement 시대의 흐름에 따라 더욱 좋은 process model 등이 나오고, 비용을 줄일 수 있는 방법들이 나온다. 많은 프로젝트들은 결과물의 퀄리티를 높이고 비용과 개발 시간을 줄이기 위해서 개발 과정을 바꾼다. 능력 성숙도 통합 모델(Capability Maturity Model Integration, CMMI)같은, 업무...

빠른 개발 주기를 통해 원하는 구현사항을 재빠르게 개발하는 개발방법론이다.
Requirements Engineering(요구 공학)은 사용자가 시스템에 요구하는 서비스를 만들고 시스템이 작동하는데 걸리는 제약 사항들을 정의하는 방법이다.
System Modeling 시스템 모델링은 추상적인 모델을 개발하는 방법으로, 각각의 모델이 가지고 있는 서로 다른 시각을 반영한다. 시스템 모델링은 대부분 UML(Unified Modeling Language)에 기초를 두고 있다.
Architectural Design 아키텍쳐 디자인은 소프트웨어 시스템이 어떻게 정리되고 구조적으로 어떻게 만들 것인지를 디자인한다. 요구 공학을 통해 얻은 여러가지 요구 사항들을 시스템에 적용하기 위해 디자인하는 과정이다. 구조적으로 어떻게 만들어져있는지, 어떻게 작동하는지, 각각의 요소의 연결이 어떠한지 등이 잘 나타져 있다. 이러한 점을 보면 Sys...
Program Testing 프로그램이 제대로 작동하는 지 확인하기 위해선 테스트가 필요하다. 테스트는 프로그램이 정확히 작동하는지, 오류가 생기지 않는지, 원하는 방식으로 작동하는지 등을 확인한다.
UML UML(Unified Modeling Language)은 프로그램 모델에 대한 규격화된 표현 방식이다. 복잡한 시스템, 여러가지 데이터 흐름, 관계와 동작 등을 잘 나타내기 위해서 사용한다.
Software Evolution 소프트웨어가 변경되는 것은 불가피하다. 개발 중에도 바뀌지만, 개발 후에도 바뀐다.
Software Development Methodology 소프트웨어를 개발하는 건 쉬운 일이 아니다. 그냥 뭐 뚝딱 만든다고 만들어지는 게 아니며, 여러가지 과정을 거쳐야 한다. 세부적으로 나눌 수 있지만, 대표적으로 3가지 과정을 거친다. 자연어를 통해 문제를 알아보고 확인한다. 프로그래밍 언어를 통해 문제에 대한 해답을 작성해낸다. 실제 환...