SW 개발 생명 주기
계획 단게에서 유지관리 단계에 이르기까지 일어나는 일련의 절차
- 정의 단계
사용자의 요구사항 확인 및 타당성 검토
개발에 필요한 요구사항 명세화
계획 및 요구분석
- 개발 단계
코딩을 통한 프로그램 개발
(단위, 통합, 시스템, 인수, 설치) 테스트
- 유지관리 단계
시스템 운영 및 운영 중 발생한 문제점들에 대한 유지관리
새로운 시스템 개발로 인한 기존 시스템 폐기
SW 개발프로세스 정의
작업순서의 집합 + 제약조건(일정, 예산, 자원)을 포함하는 일련의 활동
좁은의미
- 사용자의 요구사항을 SW로 구현하기 위한 절차, 과정
넓은 의미
- 사용자의 목적을 이루기 위한 기획, 프로젝트 관리 등을 포함한 절차, 과정, 방법
소프트웨어 개발 7단계
계획 - 요구분석 - 설계 - 구현 - 테스트 - 반영 - 유지보수
프로세스 모델
- 폭포수 모델
- 프로토타입 모델
- 나선형 모델
- 통합프로세스 모델
- 애자일 프로세스 모델
애자일
- 애자일(agile) : 날렵한, 민첩한
- 고객의 요구에 민첩하게 대응하고 그때그때 주어지는 문제를 풀어가나는 방법론
- 애자일의 기본가치
- 프로세스와 도구 중심이 아닌 상호 소통 중시
- 문서 중심이 아닌, 실행 가능한 소프트웨어 중시
- 계약과 협상 중심이 아닌, 고객과의 협력 중시
- 계획 중심이 아닌, 변화에 대한 민첩한 대응 중시
소프트웨어 아키텍쳐 모델
- 데이터 중심형 모델
- 클라이언트 - 서버 모델
- Layering 모델
- MVC 모델
cs interview
1. 소프트웨어 위기란?
2. 소프트웨어 공학이 왜 필요할까?