정보처리기사 실기 1장 [요구사항 확인] 개념 및 기출
주제 : 소프트웨어 공학의 기초 - 생명 주기, 애자일, 요구사항
출처 : 시나공 기본서 정보처리기사 실기 1권
🔡 배경 지식, 용어 정리
◼ backlog 📃 제품 개발에 필요한 요구사항을 모두 모아 우선순위를 부여해 놓은 목록
◼ spike 요구사항의 신뢰성을 높이고 기술적 리스크를 감소시키기 위해 별도로 만드는 간단한 프로그램
Theme 1. 소프트웨어 생명 주기(Software Life Cycle)
✅ 소프트웨어 Life Cycle 모형
1. 폭포수 모형 2. 프로토타입 모형 3. 나선형 모형 4. 애자일 모형
✅ 애자일 모형 中 XP(eXtreme Programming)
💡 XP란?
수시로 발생하는 고객의 요구사항에 유연하게 대응하기 위해
고객의 참여와 개발 과정의 반복을 극대화하여 개발 생산성을 향상시키는 방법이다.
✔ XP의 특징
릴리즈(Release 부분적으로 기능이 완료된 제품을 제공하는 것)의 기간을 짧게 반복한다.
(small releases, 소규모 릴리즈)
✔ XP의 다섯 가지 핵심 가치
단순성(S), 용기(C), 의사소통(C), 피드백(F), 존중(R)
✔ XP의 주요 실천 방법
◼ 짝 프로그래밍(Pair Programming)
◼ 공동 코드 소유(Collective Ownership) : 개발 코드에 대한 권한과 책임을 공동 소유.
◼ TDD(Test Driven Programming)
: 개발자가 실제 코드를 작성하기 전에 test case를 먼저 작성함.
: 테스트가 자동으로 진행될 수 있도록 자동화된 도구(구조, 프레임워크)를 사용함.
◼ CI(Continuous Integration)
: 모듈 단위로 나눠서 개발된 코드들은 하나의 작업이 마무리될 때마다 지속적으로 통합됨.
Theme 2. 요구사항 (Requirements)
💡 '요구사항'이란?
소프트웨어가 제공하는 서비스에 대한 설명, 소프트웨어가 정상적으로 운영되는데 필요한 제약조건.
✅ 요구사항의 유형
1. 기능 요구사항 (functional)
무엇을 하는지, 어떤 기능을 하는지
2. 비기능 요구사항 (Non-functional)
◼ 품질이나 제약사항과 관련된 요구사항
e.g. 다음과 같은 사항에 관련된 요구 사항 - 시스템 장비 구성, 성능, 인터페이스, 데이터 구축, 테스트, 보안
◼ 품질 요구사항 : 가용성, 정합성, 상호 호환성, 대응성, 이식성, 확장성, 보안성 등
💯 기출
20년 10월 기출
소프트웨어 공학에서 리팩토링을 하는 목적에 대해 간략히 서술하시오.
👉 코드의 가독성과 프로그램의 유지 보수성을 높여 효율적으로 개발할 수 있도록 하기 위함이다.
💡 리팩토링이란?
프로그램의 기능 변경 없이 코드의 가독성과 유지보수성을 높이기 위해 내부구조를 변경하는 것이다.