정보처리기사 필기/정보처리기사 필기학습

소프트웨어 설계 - 1

Jayy 2023. 5. 9. 19:21

정보처리기사 필기 학습을 시작하였는데, 서적을 구매해 공부를 하다보니 요약정리가 필요해서

블로깅으로 남기게 되었다. 구글링으로 찾아볼 수 있는 요약본을 살펴보면 이런식으로 되어있다.

예를들어 IT의 중요한 항목 3가지 접근성, 효율성, 가시성 이라고 가정한다면

'접효가' 같은 형태로 외우라고 되어있는데 이렇게 암기해야 할 부분이 한 두 가지가 아니다.

설계 항목에만 30개는 되는거 같은데 모든 내용을 이런식으로 외울 수 없으니 요약을 따로하여 핵심만 외워보도록 하겠다.

 

 

1. 폭포수 모형(Waterfall Model) 

- 고전적 생명 주기 모형

- 선형 순차적 모형

- 요구사항의 변경이 용이하지 않음

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

 

폭포수 - 계획, 분석,설계,구현,테스트,유지보수 순

 

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

- 견본을 만들어 최종 결과물을 예측하는 모형

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

- 요구사항의 변경이 용이

 

3. 나선형 모형(Spiral Model, 점진적 모형)

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

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

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

- 획  분석 개발 평가

 

4. 애자일 모형(Agile Model) 

- 애자일은 민첩함, 기민함 뜻

- 변화에 유연

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

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

- 기능 중심 개발

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

 

스크럼(Scrum) 기법

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

- 개발 관한 모든 것을 스스로 해결

- 스프린트 2 ~ 4

 

1. 제품 책임자(Product Owner) 

-  백로그(Backlog)를 작성

 

2. 스크럼 마스터(Scrum Master)

- 일일 스크럼 회의 주관

- 팀원 통제하는 것 목표아님

 

3. 개발팀(Development Team)

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

- 인원 7~8

 

4. 스크럼 개발 프로세스

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

 

XP 기법

XP(eXtreme Programming)의 핵심 가치

- (Courage)

- 단순성(Simplicity)

- 의사소통(Communication)

- 피드백(Feedback)

- 존중(Respect)

 

 

2) XP의 기본원리

- Whole Team(체 팀)

- Small Releases(소규모 릴리즈)

- Test-Driven Development(스트 주도 개발)

- Continuous Integration(계속적인 통합)

- Collective Ownership(동 소유권)

- Pair Programming(짝 프로그래밍)

- Design Improvement(자인 개선)

 

개발 기술 환경 파악 

1.운영체제(Operating System)

-  소프트웨어
- 용성, 성능, 기술 지원, 구축 비용, 주변 기기

 

2. 미들웨어(Middleware)

- 운영체제와 응용 프로그램 사이 추가적인 소프트웨어

 

3) 데이터베이스 관리 시스템(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) 요구사항 확인 기법 

- 요구사항 검토, 프로토타이핑, 모델 검증, 인수 테스트(알파 테스트, 베타 테스트)