외워야 할 것들을 적기
- 소프트웨어가 갖는 특징 4가지
- 복잡성(Complexity)
- 순응성(Conformity)
- 변경성(Changeability)
- 비가시성(invibility)
- 소프트웨어 개발 기본 활동
- 명세화(Specification)
- 구현(Coding)
- 검증(Verifivation)
- 유지보수(Maintenance)
- 소프트웨어 공학의 목적
복잡도 낮춤 |
개발 기간 단축 |
비용 최소화 |
대규모 프로젝트 관리 |
고품질 소프트웨어 |
효율성 |
-> 품질 좋은 소프트웨어를 최소의 비용으로 계획된 일정에 맞추어 개발하는 것. |
|
- 소프트웨어 품질 보증 (바람직한 소프트웨어가 가져야 할 특징)
- 프로세스 없으면 생기는 문제점들
사용자의 요구를 만족시키지 못한다. |
소프트웨어의 구조가 나빠질 수 있따. |
계획이 없어 작업 목표가 없다. |
체계적인 테스트 작업을 할 수 없고, 품질 보증이 불가능하다. |
- 프로세스 용어 정리
프로세스 명세 |
프로젝트에서 수행해야하는 작업과 수행 순서를 정의한 것이다. |
실행 프로세스 |
실제 프로젝트 할 때 작업한 순서이다. |
프로세스 모델 |
프로젝트를 위한 작업의 단계와 순서, 각 계 작업 수행의 제약사항이나 조건 등을 모아 둔 것이다. |
- 프로세스 종류 용어 정리
프로젝트 엔지니어링 프로세스 |
3개의 프로세스를 말함 -> |
개발 프로세스 |
수행해야 할 개발 작업과 품질 보증 작업을 말한다. |
프로젝트 관리 프로세스 |
비용, 품질, 기타 목표를 맞추기 위한 계획, 제어 작업을 말한다. |
소프트웨어 형상 관리 프로세스 |
변경을 관리하는 프로세스이다! |
- 좋은 프로세스의 특성
예측 가능성 |
프로젝트의 결과가 프로젝트를 완성하기 전에 얼마나 정확하게 예측될 수 있는가? |
변경 용이성 |
소프트웨어는 여러가지 이유로 잘 변경되기 때문에 변경하기 쉬워야 한다. |
테스팅과 유지보수 용이성 |
테스팅에 들어가는 노력이 소프트웨어 개발 시 가장크기 때문에 테스팅과 유지 보수가 용이해야한다. |
결함 제거 용이성 |
결함이 발견되면 해결하는데 들어가는 노력이 프로젝트가 진행됨에 따라 기하급수적으로 커지기 때문에 잘 관리해주어야 한다. |
- 개발 프로세스 종류
폭포수 모델 |
|
프로토타입 모델 |
|
V-모델 |
|
진화적 모델 |
|
나선형 모델 |
|
애자일 모델 |
|
Unified 모델 |
|
관리 프로세스와 품질보증 프로세스(인스펙션 프로세스)
형상 관리 프로세스
-> 시스템을 구성하는 아이템을 식별하고, 이들의 변경을 생명주기 동안 관리하고, 아이템의 현재 상황과 변경 요청을 기록, 보고하며 아이템의 완벽성과 정확성을 검증하는 작업이다.
- 애자일 선언 4가지
형식적인 문서보다는 커뮤니케이션을 통하여 프로젝트가 목표를 향하여 나아가게한다. |
사용자는 문서가 아니라 실행되는 소프트웨어를 통하여 요구를 확인한다, |
사용자의 요구는 비즈니스 환경에 따라 프로젝트 중간에 바뀔 수 있다는 것을 고려한다. |
짧은 주기 동안 요구정의에서 구현, 테스트까지 이루어지며 각 반복 주기의 반성 의견을 다음 계획에 포함시킨다. |
진화적 모델 (점증적인 방법, 반복적 방법)