728x90
소프트웨어 생명주기(SDLC)
소프트웨어 생명주기는 시스템의 요구분석 부터 유지보수까지 전 공정을 체계화한 절차이다.
소프트웨어 생명주기 모델종류
- 폭포수모델 : 소프트웨어 개발시 각 단계를 확실히 마무리 지은후 다음단계로 넘어가는 모델
- 프로토타이핑모델 : 고객이 요구한 기능을 프로토타입으로 구현하고 피드백을 반영하여 소프트웨어를 만들어가는 모델
- 나선형모델 : 시스템 개발시 위험을 최소화하기 위해 점진적으로 개발해 나가는 모델
- 반복적모델 : 구축대상을 나누어 병렬적으로 개발 후 통합하거나, 반복적으로 개발하여 점증 완성시키는 SDLC모델
소프트웨어 개발방법론 종류
- 구조적 방법론 : 프로세스 중심의 하향식방법론
- 정보공학 방법론 : 정보시스템 개발에 필요한 관리 절차와 작업 기법을 체계화한 방법론
- 객체지향 방법론 : '객체'라는 기본 단위를 시스템을 분석 및 설계하는 방법론
- 컴포넌트 기반 방법론 : 소프트웨어를 구성하는 컴포넌트를 조립해서 하나의 새로운 응용프로그램을 작성하는 방법론
- 애자일 방법론 : 절자보다는 사람 중심이 되어 변화에 유연하고 신속하게 적응하면서 개발하는 방법론
- XP :
- 테스트기반개발(TDD) : 작성해야하는 프로그램에 대한 테스트를 먼저 수행하고 이 테스트를 통화할수 있도록 실제프로그램의 코드를 작성한다는 원리
- 리팩토링: 프로그램의 기능을 바꾸지 않으면서 중복제거 단순화 등을 위해 시스템 재구성 한다는 원리
- 린 : 도요타의 린 시스템 품질기법을 개발 프로세서에 적용해서 낭비요소를 제거하여 품질을 향상시킨 방법론
- 스크럼
- 백로그 : 제품과 프로젝트에 대한 요구사항
- 스프린트 : 2~4주 짧은 개발 기간 반복적 수행으로 개발 품질향상
- 스크럼미팅
- 스크럼마스터
- 스프린트회고
- 번다운차트
객체지향구성요소
클래스 : 특정객체내에 있는 변수와 메서드를 정의하는 일종의 틀
객체 : 물리적, 추상적으로 자신과 다른것을 식별 가능한 대상
메서드 : 클래스로부터 생성된 객체를 사용하는 방법
메시지 : 객체간 상호작용을 하기위한 수단
인스턴스 : 객체 지향 기법에서 클래스를 통해 만든 실제의 실형객체
속성 : 한 클래스 내에 속한 객체들이 가지고 있는 데이터 값들을 단위별로 정의
객체지향기법
캡슐화
상속성
다형성
- 오버로딩 : 매개변수의 유형과 개수를 다르게 하여 같은 이름의 메서드를 여러개 가지는 기법
- 오버라이딩 : 상위클래스에서 정의한 일반메서드의 구현을 하위클래스에서 무시하고 재정의 할수 있는 기법
추상화
정보은닉
관계성
객체지향설계원칙(SOLID)
단일책임의원칙(SRP) : 하나의 클래스는 하나의 목적을 위해서 생성되며, 클래스가 제공하는 모든 서비스는 하나의 책임을 수행하는데 집중되어야 한다는 원칙
개방폐쇄원칙 : 소프트웨어의 구성요소(컴포넌트, 클래스, 모듈, 함수)는 확장에는 열려있고 변경에는 닫혀 있어야한다는 원칙
리스코프 치환의 원칙 : 서브타입(상속받은 하위클래스)은 어디서나 자신의 기반 타입(상위클래스)으로 교체할수 있어야한다는 원칙
인터페이스 분리의 원칙 : 한 클래스는 자신이 사용하지 않는 인터페이스는 구현하지 말아야한다는 원칙
의존성 역전의 원칙 : 실제 사용관계는 바뀌지 않으며, 추상을 매개로 메시지를 주고 받음으로써 관계를 최대한 느슨하게 만드는 원칙