정보처리기사

1과목 : 소프트웨어 설계(20문제) - 1

깐까망 2023. 6. 16. 14:11
728x90
반응형
SMALL

* 소프트웨어 생명 주기 ★

1) 폭포수 모형(waterfall Model) ★

- 가장 오래되고 가장 폭넓게 사용된 고전적 생명 주기 모형

- 한 단계가 끝나야만 다음 단계로 넘어가는 선형 순차적 모형

- 단계별 정의 및 산출물이 명확

- 개발 중간에 요구사항의 변경이 용이하지 않음

- 타당성검토 -> 계획 -> 요구 분석 -> 설계 -> 구현(코딩) -> 테스트(검사) -> 유지보수

(분설구테유)

 

2) 프로토타입 모형 (Prototype Model, 원형모형) ★

- 견본(시제)품을 만들어 최종 결과물을 예측하는 모형

- 인터페이스 중점을 두어 개발

- 개발 중간에 요구사항의 변경이 용이

 

3) 나선형 모형 (Prototype Model, 원형모형) ★

- 폭포수 모형과 프로토타입 모형의 장점에 위험 분석 기능을 추가한 모형

- 점진적 개발 과정 반복으로 요구사항 추가 가능

- 정밀하고 유지보수 과정 필요 없음

- 계획 및 정의 -> 위험 분석 -> 공학적 개발 -> 고객평가

 

4) 애자일 모형 (Agile Model)

- 애자일은 민첩함, 기민함 의미

- 변화에 유연하게 대응

- 일정한 주기( Iteration, Sprint)를 반복하면서 개발과정 진행

- 절차와 도구보다 고객(개일)과의 소통에 초점을 맞춤

ex) XP(eXtreme Programming), 스크럼(Scrum), 칸반(Kanban), 크리스탈(Crystal), 린(LEAN)

+ 기능중심 개발

 

* 스크럼(Scrum) 기법 ★

- 팀원 스스로가 스크럼 팀 구성

- 개발 작업에 관한 모든 것을 스스로 해결해야함

- 스프린트는 2~4주 정도의 기간으로 진행

 

1) 제품 책임자(PO; Product Owner)

- 요구사항이 담긴 백로그(Backlog)를 작성하는 주체

- 백로그에 대한 우선순위를 지정, 이해관계자들의 의견을 종합

 

2) 스크럼 마스터(SM; Scrum Master)

- 일일 스크럼 회의 주관

- 팀원들을 통제하는 것이 목표가 아님

 

3) 개발팀(DT; Development Team)

- 제품 책임자와 스크럼 마스터를 제외한 모든 팀원

- 최대 인원 7~8명

 

4) 스크럼 개발 프로세스

- 스프린트 계획 회의 -> 스프린트 -> 일일 스크럼 -> 스크럼 검토 회의 ->스프린트 회의

 

* XP 기법 ★

1) XP(eXtreme Programming)의 핵심 가치

- 용기(Courage)

- 단순성(Simplicity)

- 의사소통(Communication)

- 피드백(Feedback)

- 존중(Respect)

 

2) XP의 기본원리

- Whole Team (전체 팀)

- Small Releases (소규모 릴리즈)

- Test-Driven Delvelopment(테스트 주도 개발)

- Continuous Intergration(계속적인 통합)

- Collective Ownership(공동 소유권)

- Pair Programming(짝 프로그래밍)

- Design Improvement(디자인 개선) 또는 Refactoring(리팩토링)

 

* 개발 기술 환경 파악 ★

1) 운영체제(OS; Operating System)

- 하드웨어가 아닌 소프트웨어

# Windows, UNIX, Linux, Mac OS | iOS, Android 등등

- 가용성, 성능 | 기술 지원, 구축 비용, 주변 기기(고려사항)

 

2) 미들웨어 (Middleware)

- 운영체제와 응용 프로그램 사이에서 추가적인 서비스를 제공하는 소프트웨어

 

3) 데이터베이스 관리 시스템 (DBMS; Database Management System)

- 사용자와 데이터베이스(DB) 사이에서 정보를 생성하고 DB를 관리하는 소프트웨어

- 데이터베이스(DB)의 구성, 접근 방법, 유지관리에 대한 모든 책임을 짐

- JDBC(Java Database Connectivity, 자바), ODBC(Open Database Connectivity, 응용 프로그램)

- Oracle, MySQL, SQLite, MongoDB, Redis 등등

- 가용성, 성능 | 기술 지원, 구축비용, 상호 호환성(고려사항)

 

4) 웹 어플리케이션 서버(WAS; Web Application Server)

- 정적인 콘텐츠를 처리하는 웹 서버 (Web Server)와 반대됨

- 동적인 콘텐츠를 처리하기 위해 사용되는 미들웨어(=소프트웨어)

- 데이터 접근, 세션관리, 트랜잭션 관리 등을 위한 라이브러리를 제공

- Tomcat, JEUS, WebLogic, JBoss, Jetty, Resin 등등

- 가용성, 성능 | 기술지원, 구축비용 (고려사항)

 

5) 오픈 소스 (Open Source)

- 누구나 별다른 제한 없이 사용할 수 있도록 소스 코드를 무료로 사용할 수 있게 공개한 것

- 라이선스의 종류, 사용자 수, 기술의 지속 가능성(고려사항)

 

* 요구사항 정의 ★

1) 기능 요구사항

- 기능,입력, 출력, 저장, 수행 등등

 

2) 비기능 요구사항

- 성능, 품질, 제약사항, 호환성, 보안 등등

 

3) 요구사항 개발 프로세스

- 도출(Elicitation)/추출 -> 분석(Analysis) -> 명세(Specification) -> 확인(Validation)/검증(Valification)

 

4) 요구사항 분석 기법

- 요구사항 분류

- 개념 모델링(UML)

- 요구사항 할당

- 요구사항 협상

- 정형 분석

 

5) 요구사항 확인 기법

- 요구사항 검토

- 프로토타이핑

- 모델 검증

- 인수 테스트(알파 테스트, 베타 테스트)

 

* UML ★

1) UML(Unified Modeling Language)의 구성요소

- 사물

- 관계

- 다이어그램

 

2) 사물(Things)

- 구조

- 행동

- 그룹

- 주해 {사물}

 

3) 관계(Relationships)

- 연관(-)

- 집합 (◇)

- 포함 (◆)

- 일반화 (-▷)

- 의존( -->)

- 실체화 (--▷){관계}

 

4) 구조적, 정적 다이어그램(Diagram)

- 클래스(Class)

- 객체(Object)

- 컴포넌트(Component)

- 배치(Deployment)

- 복합체 구조(Composite Structure)

- 패키지(Package){다이어그램(Diagram)}

 

5) 행위, 동적 다이어그램(Diagram)

- 유스케이스(Use Case, 사용사례)

- 시퀸스(Sequence, 순차)

- 커뮤니케이션(Communication, 협업)

- 상태(State)

- 활동(Activity),

- 상호작용 개요(Interation Overview)

- 타이밍(Timing){다이어그램(Diagram)}

 

728x90
반응형
LIST