본문 바로가기

학습 기록/정보처리기사

(37)
[1. 소프트웨어 개발] 요구사항 관리 도구 요구사항 관리 도구란? : 요구사항을 기반으로 프로젝트 관리, 설계, 개발. 테스트 등을 수행할 수 있는 역할을 지원하는 도구 요구사항 도구 관리 필요성 1) 비용 편익 : 요구사항 변경으로 인한 비용 편익 분석 2) 변경 추적 3) 영향 평가 요구사항 관리 도구 기능 1) 기본 기능 - 프로젝트 생성 - 요구사항 작성 - 요구사항 불러오기/내보내기 2) 핵심 기능 - 요구사항 이력 관리 - 요구사항 베이스라인 - 요구사항 추적성 3) 부가 기능 - 협업 환경 - 외부 인터페이스 - 확장성 요구사항 관리 도구 [상용 제품] 1) 헬릭스 RM(Helix RM) 2) 지라(Jira) : 생명주기 관리와 요구사항 관리에 사용 3) 오르카노스(Orcanos) 4) 리큐테스(ReQtest) [오픈소스] 1) 레드..
[1. 소프트웨어 설계] 분석 자동화 도구(CASE) 분석 자동화 도구란? : 요구사항을 자동으로 분석하고, 요구사항 분석 명세서를 기술하도록 개발된 요구사항 분석을 위한 자동화 도구(CASE) * CASE : 소프트웨어 생명주기의 전체 단계를 연결해 주고 자동화해주는 통합된 도구로써 소프트웨어, 하드웨어, 데이터베이스, 테스트 등을 통합하여 소프트웨어를 개발하는 환경을 조성 분석 자동화 도구 등장 배경 - 산업 측면 : 소프트웨어 위기의 극복 대응 방안으로 대두 - 관리 측면 : 요구사항과 실제 시스템 간의 차이 발생 극복과 시스템 재사용성, 생선성 및 유지보수의 어려움 극복 필요 분석 자동화 도구 특징 1) 표준화 적용과 문서화를 통한 보고를 통해 품질 개선 가능 2) 변경사항과 변경으로 인한 영향에 대한 추적이 쉬움 3) 명세에 대한 유지보수 비용의 ..
[1. 소프트웨어 개발] 모델링 기법 모델링(Modeling) 이란? : 실세계의 물리현상을 특정한 목적에 대응하여 이용하기 쉬운 형식으로 표현하는 기법 : 유지보수 단계 뿐 아니라 분석/설계/구현 등 전반에 걸쳐 활용 모델링 특징 1) 개발될 시스템에 대해 여러 분야의 엔지니어들이 공통된 개념을 공유하는데 도움 2) 개발팀이 응용문제를 이해하는 데 도움을 줄 수 있음 3) 절차적인 프로그램을 위한 자료 흐름도는 프로세스 위주의 모델링 방법 모델링 역할 1) 실세계 문제에 대한 모델링이 소프트웨어 요구사항 분석의 핵심 2) 모델은 문제가 발생한 상황에 대해 이해를 증진시키고 해결책을 설명 3) 개념 모델은 문제 도메인의 엔터티들과 관계 및 종속성을 반영
[1. 소프트웨어 개발] 린(Lean) 린(Lean)이란? : 도요타의 린 시스템 품질기법을 소프트웨어 개발 프로세스에 적용해서 낭비 요소를 제거하여 품질을 향상시킨 방법론 : JIT(Just In Time), 칸반(Kanban) 보드를 사용 : 7가지 원칙 존재 린의 7가지 원칙 1) 낭비 제거 : 불필요한 코드나 기능과 같이 상품 가치에 영향을 미치지 않는 모든 것을 제거 2) 품질 내재화 : TDD를 통해 코드의 실수를 방지 3) 지식 창출 : 개발 과정 진행 중 참여자(기획자, 개발자, 고객 등) 학습의 필요성 존재 4) 늦은 확정 : 중요한 문제에 대한 의사 결정을 최대한 미루고 요구사항 변경에 대응 5) 빠른 인도 : 결과물을 가능한 빨리 제공하여 사용자의 불확실성이 감소하고 개발자에게는 결함발견의 기회가 주어짐 6) 사람 존중 :..
[1. 소프트웨어 개발] 스크럼(SCRUM) 스크럼(SCRUM)이란? : 매일 정해진 시간, 장소에서 짧은 시간의 개발을 하는 팀을 위한 프로젝트 관리 중심 개발론 스크럼 주요 용어 1) 백로그(Backlog) : 제품과 프로젝트에 대한 요구사항 2) 스프린트(Sprint) : 2~4주의 짧은 개발 기간으로 반복적 수행으로 개발품질 향상 3) 스크럼 미팅(Scrum Meeting), 데일리 미팅(Daily Meeting) : 매일 15분 정도 미팅으로 To-Do List 계획 수립 4) 스크럼 마스터(Scrum Master) : 프로젝트 리더, 스크럼 수행 시 문제를 인지 및 해결하는 사람 5) 스프린트 회고(Sprint Retrospective) : 스프린트 주기를 되돌아보며 정해놓은 규칙 준수 여부, 개선점 등을 일정 주기로 확인 및 기록 6)..
[1. 소프트웨어 개발] XP(eXtreme Programming) XP(eXtreme Programming)이란? : 의사소통 개선과 즉각적 피드백으로 소프트웨어 품질을 높이기 위한 방법론 : 기존의 방법론에 비해 실용성을 강조 : 1~3주의 반복 개발 주기를 가지며, 5가지 가치와 12개의 실천 항목 존재 XP의 5가지 가치 1) 용기(Courage) : 용기를 가지고 자신감 있게 개발 (코드를 작성하기 전에 테스트, 빠르게 피드백, 테스트에 부합하지 못하는 코드를 리팩토리 할 수 있는 용기) 2) 단순성(Simplicity) : 필요한 것만 하고 그 이상의 것들은 하지 않음 3) 의사소통(Communication) : 개발자, 관리자, 고객 간의 원활한 소통 4) 피드백(Feedback) : 의사소통에 대한 빠른 피드백 5) 존중(Respect) : 팀원 간의 상호..
[1. 소프트웨어 설계] 애자일 (Agile) 애자일(Agile) 방법론이란? : 소프트웨어 개발 방법론의 하나로서 개발과 함께 즉시 피드백을 받아서 유동적으로 개발하는 방법 애자일 방법론 등장 배경 - 소프트웨어 개발 환경의 변화 : 소프트웨어 개발 트렌드가 모바일 환경으로 변화 : 시장 적시성과 잦은 배포의 중요성 부각 - 기존 개발방법론의 한계 : 전통적 방법론은 문서 및 절차 위주의 변화에 신속한 대응이 어려움 : 빠르게 적용하고 효율적으로 개발할 수 있는 방법론의 필요성이 증가 애자일 방법론 특징 1) 프로젝트 요구사항은 기능 중심으로 정의 >> 동작하는 소프트웨어 2) 절차와 도구보다 개인과 소통을 중요하게 생각 >> 개인과 상호작용 3) 작업 계획을 짧게 세워 요구 변화에 유연하고 신속하게 대응 >> 변화에 대응 4) 소프트웨어가 잘 실..
[1. 소프트웨어 설계] 시퀀스 다이어그램 시퀀스 다이어그램이란? : 객체 간 상호 작용을 메시지 흐름으로 표현한 다이어그램 시퀀스 다이어그램 구성요소 1) 객체 (Object) : 위쪽에 표시되며 아래로 생명선을 가짐 : 사각형 안에 밑줄 친 이름으로 명시 2) 생명선 (Lifeline) : 객체로부터 뻗어 나가는 점선 : 실제 시간이 흐름에 따라 객체의 생명주기 동안 발생하는 이벤트 명시 3) 실행 (Activation) : 직사각형은 오퍼레이션(함수)이 실행되는 시간을 의미 : 직사각형이 길어질수록 오퍼레이션 수행 시간이 긺 4) 메시지 (Message) : 객체 간의 상호작용은 메시지 교환으로 이루어짐 : 한 객체에서 다른 객체로의 메시지를 전달하여 전달받은 객체의 오퍼레이션 수행