CS 지식/소프트웨어 공학
소프트웨어 개발 과정 (정보처리기사)
윤씅
2024. 8. 9. 23:15
🧾 소프트웨어 생명주기 모델 프로세스
- 요구사항 분석
- 설계
- 구현
- 테스트
- 유지보수
🧾 소프트웨어 생명주기 모델 종류
- 폭포수 모델
- 프로토타이핑 모델
- 나선형 모델
- 반복적 모델
🧾 소프트웨어 개발 방법론 종류
- 구조적 방법론 : 기능을 중심으로 나눠서 개발, 나씨-슈나이더만 차트 사용
- 객체지향 방법론(OOD) : Object-Oriented Development
- 컴포넌트 기반 방법론(CBD) : Component Based Development
- 애자일 방법론
🧾 객체지향 설계 원칙 (SOLID)
- Single Responsibility Principle : 단일 책임의 원칙
- Open-Closed Principle : 개방 폐쇄 원칙
- Liskov Substitution Principle : 리스코프 치환의 원칙 (하위 클래스는 상위 클래스로 변환가능)
- Interface Segregation Principle : 인터페이스 분리의 원칙 (사용하지 않는 인터페이스는 구현하지 말기)
- Dependency Inversion Principle : 의존성 역전의 원칙 (추상을 매개로 메시지를 주고받기)
🧾 객체지향 방법론 종류
- OOSE : (야콥슨 개발) 유스케이스를 기준으로 사용
- OMT : (럼바우 개발) 객체 모델링-> 동적 모델링(상태 다이어그램) ->기능 모델링(DFD자료 흐름도)
- OOD : 부치개발
🧾 애자일 방법론의 종류
- XP : 의사소통의 개선을 위함
- 린 : 낭비를 막기위함
- 스크럼 : 매일 정해진 시간, 장소에서 짧은 개발을 하기 위함
🧾 프로젝트 관리 - 비용산정
- 델파이 기법 : 전문가의 경험적 지식 이용
- LoC
- Man Month
- COCOMO
- Organic (5만 라인 이하)
- Semi-Detached (30만 라인 이하)
- Embedded (30만 라인 이상)
- 푸트남 : 단계별 인력 분포 가정
🧾 현행 시스템 파악 절차
구성,기능,인터페이스 파악 -> 아키텍처, 소프트웨어 구성 파악 -> 하드웨어, 네트워크 파악
🧾 소프트웨어 아키텍처
소프트웨어 구성요소와 특성, 구성요소 간의 관계를 표현하는 구조
∎ 소프트웨어 아키텍처 4+1 뷰
1 : 유스케이스 뷰
4 : 논리 뷰, 구현 뷰, 프로세스 뷰, 배포 뷰
4개의 관점에서 요구사항 시나리오를 분석
∎ 소프트웨어 아키텍처 패턴 종류
- MVC 패턴
- 클라이언트-서버 패턴
- 파이프 필터 패턴
- 브로커 패턴 : 컴포넌트들의 브로커 역할
- 계층화 패턴 : 상위, 하위의 상호작용
🧾 디자인 패턴 (소프트웨어 설계시 해결법)
∎ 생성 패턴
- Builder
- Prototype
- Singleton : 객체를 하나만 생성
- Factory Method : 상위 클래스를 상속받아 하위 클래스에서 사용
- Abstract Factory : 클래스 말고 인터페이스를 통해 팩토리 생성
∎ 구조 패턴
- Adapter : 재사용할 수 있도록 중간에 추가해주는것
- Proxy : 실제 객체에 직접 접근하지 않고, 대리 객체를 생성하여 접근
- Bridge : 추상 계층과 구현 계층 분리
- Decorator : 필요한 기능 추가
- Composite : 단일 객체들을 트리로 묶어서 한번에 사용 가능
- Facade : 사용자에게 간단한 인터페이스 제공
∎ 행위 패턴
- Strategy : 추상 클래스를 자유롭게 행위를 변형해 사용할 수 있다.
- Observer : 객체의 상태가 바뀌면 연결되어 있는 객체에도 연락이 감
- State : 상태를 클래스화해서 사용
- Iterator : 컬렉션 자체를 노출시키지 않고 반복자를 사용하여 접근
- Template Method : 서브 클래스를 만들어 유지보수 용이하게 함
- Mediator : 객체들간에 중재자를 두어 통신
- Visitor : 여러 클래스들을 돌아다니며 기능을 사용할 수 있게함
- Command : 요구사항을 캡슐화해서 해결
🧾 미들웨어 - WAS
웹 서버를 다른 시스템 어플리케이션과 연결해 다양한 기능 수행을 가능하게 함
🧾 요구사항
- 기능적 요구사항 : 기능에 대한 요구사항들
- 비기능적 요구사항 : 제약조건에 대한 요구사항들
- 요구사항 개발 단계
-
- 도출 : 인터뷰, 델파이 기법, 설문조사
- 분석
- 명세
- 확인 : 동료 검토, 워크 스루(오류 검출), 인스펙션(다른 전문가가 검사)
-