학교 편입하고 4학년.... 드디어 !!!!! 정보처리기사 필기 자격이 생겼다!!! ㅜㅜ
그래서 공부한 내용을 바탕으로 정리해볼 예정이다 후후.. 필기 준비하시는 분들 저와 같이 합격해주세요 감사합니다.
먼저 1과목은 소프트웨어 설계로 요구사항 확인, 화면 설계, 애플리케이션 설계, 인터페이스 설계가 있다. 이번 블로그에는 요구사항 확인에 대해 요약해볼 예정이다.
가보자고~~~!
소프트웨어 생명 주기는 소프트웨어 개발 방법론 의 바탕이 되는 것으로, 소프트웨어를 개발하기 위해 정의하고 운용, 유지보수 등의 과정을 각 단계별로 나눈 것이다.
💡 소프트웨어 개발 방법론이란??
소프트웨어 개발과 유지보수 등에 필요한 여러 가지 작업들의 수행 방법과 이러한 작업들을 좀 더 효율적으로 수행하기 위해 필요한 각종 기법 및 도구를 체계적으로 정리하여 표준화한 것
소프트웨어 생명주기를 표현하는 형태를 소프트웨어 생명 주기 모형이라 하며, 소프트웨어 프로세스 모형 또는 소프트웨어 공학 패러다임이라고도 한다.
일반적으로 사용되는 소프트웨어 생명 주기 모형에는 폭포수 모형, 프로토타입 모형, 나선형 모형, 애자일 모형 등이 있다.
다음 4가지 모형에 대해 설명하겠다.
💡 소프트웨어 공학(SE: Software Engineering)
소프트웨어의 위기를 극복하기 위한 방안으로 연구된 학문이며 여러가지 방법론과 도구, 관리 기법들을 통해 소프트웨어의 품질과 생산성을 향상시킬 목적으로 한다.
💡매뉴얼
프로그램들의 사용과 운영에 대한 내용이 기술되어 있는 문서
타당성 검토 ➜ 계획 ➜ 요구분석 ➜ 설계 ➜ 구현(코딩) ➜ 시험(검사) ➜ 유지보수
(시작) 요구수집 ➜ 빠른 설계 ➜ 프로토타입 구축 ➜ 고객 평가 ➜ 프로토 타입 조정 ➜ 구현(끝)
계획 수립 ➜ 위험 분석 ➜ 개발 및 검증 ➜ 고객 평가 (의 반복)
💡 애자일 모형을 기반으로 하는 소프트웨어 개발 모형
스크럼(Scrum), XP(eXtreme Programming), 칸반(Kanban), Lean, 크리스탈(Crystal), ASD(Adaptive Software Develpment) , 기능 중심 개발(FDD: Feature Driven Develpment(, DSDM(Dynamic System Development Method), DAD(Disciplined Agile Delivery)등이 있다.
구분 | 폭포수 모형 | 애자일 |
---|---|---|
새로운 요구사항 반영 | 어려움 | 지속적으로 반영 |
고객과 의사소통 | 적음 | 지속적 |
테스트 | 마지막 | 반복되는 일정 주기가 끝날 때 마다 테스트 |
개발 중심 | 계획, 문서 (매뉴얼) | 고객 |
⭐ 애자일 개발 4가지 핵심 가치⭐
1. 프로세스, 도구 보단 개인과 상호작용에 더 가치를 둔다.
2. 방대한 문서보단 SW
3. 계약 협상 보단 고객과의 협업
4 게획을 따르기 보단 변화에 반응
팀이 중심이 되어 개발의 효율성을 높인다는 의미를 중점으로 제품 책임자, 스크럼 마스터, 개발팀으로 구성된다.
이해관계자들 중 개발 제품에 대한 이해도가 높고, 요구사항을 책임지며 의사 결정할 사람으로 선정(주로 개발 의뢰자나 사용자가 담당)
요구사항이 담긴 백로그(Backlog)를 작성하고 우선순위를 지정
팀원들이 백로그를 추가할 수 있지만 우선순위 지정 불가
테스트를 수행하면서 주기적으로 우선순위 갱신
💡 이해 관계자
소프트웨어 개발과 관련해서 의뢰자, 개발자, 사용자 등을 나타낸다.
💡 백로그(Backlog)
제품 개발에 필요한 요구사항을 모두 모아 우선순위를 부여해 놓은 목록
✅ 제품 백로그 (Product Backlog)
✅ 스프린트 계획 회의 (Sprint Planning Meeting)
✅ 스프린트 (Sprint)
✅ 일일 스크럼 회의 (Daily Scrum Meeting)
✅ 스프린트 검토 회의(Sprint Review)
✅ 스프린트 회고 (Sprint Retrospective)
💡 속도 (Velocity)
한 번의 스프린트에서 한 팀이 감당할 수 있는 제품 백로그의 양에 대한 추정치.
💡 릴리즈(Release)
몇 개의 요구사항이 적용되어 부분적으로 기능이 완료된 제품을 제공
💡 가시성(Visibility)
일반적으로 대상을 확인할 수 있는 정도이다.
릴리즈 기간을 짧게 반복하며 개발 과정에서 일부 기능이 구현될 때마다 고객에게 이를 확인시켜주면, 고객은 요구사항이 잘 반영되고 있음을 직접적으로 알 수 있다는 의미이다.
⭐ XP의 5가지 핵심 가치 ⭐
의사소통(Communication), 단순성(Simplicity), 용기(Courage), 존중(Respect), 피드백(Feedback)
⭐ XP의 주요 실천 방법⭐
1. 짝 프로그래밍 (Pair Programming)
2. 공동 코드 소유(Collective Ownership)
3. 테스트 주도 개발 (Test-Driven Development)
4. 전체 팀 (Whole Team)
5. 계속적인 통합(Continous Integration)
6. 디자인 개선(Design Improvement) 또는 리팩토링 (Refactoring)
7. 소규모 릴리즈 (Small Release)
1단계) 시스템 구성, 기능, 인터페이스 파악
2단계) 아키텍처, 소프트웨어 구성 파악
3단계) 하드웨어, 네트워크 구성파악
현행 시스템의 구성은 주요 업무를 담당하는 기간 업무와 이를 지원하는 지원 업무로 구분하여 기술
단위 업무 시스템이 현재 제공하는 기능들을 주요 기능과 하부 기능, 세부 기능으로 구분하여 계층형으로 표현한다.
단위 업무 시스템 간에 주고받는 데이터의 종류, 형식, 프로토콜, 연계 유형, 주기 등을 명시하고 반드시 고려해야 한다.
데이터 형식 : XML, 고정 포맷, 가변 포맷 등
통신 규약: TCP/IP, X25 등
연계 유형: EAI, FEP 등
현행 시스템 아키텍처 구성은 기간 업무 수행에 어떠한 기술 요소들이 사용되는지 최상위 수준에서 계층별로 표현한 아키텍처 구성도로 작성
단위 업무 시스템별로 업무 처리를 위해 설치되어 있는 소프트웨어들의 제품명, 용도, 라이선스 적용 방식, 라이선스 수 등을 명시한다.
단위 업무 시스템들이 운용되는 서버의 주요 사양과 수량, 이중화의 적용 여부를 명시한다.
이중화가 적용된 경우 비용증가와 시스템 구축 난이도가 높아질 가능성을 고려해야 함
업무 시스템들의 네트워크 구성을 파악할 수 있도록 서버의 위치, 서버 간의 네트워크 연결 방식을 네트워크 구성도로 작성한다.
운영체제, 데이터베이스 관리 시스템, 미들웨어 등을 선정할 때 고려사항을 기술하고, 오픈소스 사용 시 주의사항을 제시한다.
운영체제는 컴퓨터 시스템의 자원들을 효율적으로 관리하고 사용할 수 있도록 환경을 제공하는 소프트웨어이다.
💡 운영체제의 종류
Windows, UNIX, Linux, Mac OS, iOS, Android
사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성해 주고, 데이터베이스를 관리해 주는 소프트웨어
💡 DBMS 종류
Oracle, IBM DB2, Microsoft SQL Server, MySQL, SQLite, MongoDB, Redis
정적인 콘텐츠 처리를 하는 웹 서버와 달리 동적인 콘텐츠 처리하기 위해 사용되는 미들웨어
💡 WAS 종류
Tomcat, GlassFish, JBoss, Jetty, JEUS, Resin, WebLogic, WebSphere
생각보다 분량이 넘 많아서 다음에 계속..... ㅋ