소프트웨어공학: 5개의 글
소프트웨어 개발 방법론 - 애자일(Agile) 방법론 애자일(Agile) 방법론은 구체적인 개발 프로세스가 아닌 개발 지침, 철학에 가깝다. 변화를 수용하고 협업과 제품의 빠른 인도를 강조하는 반복적 개발 방법 문서화보다 코드, 프로그램, 소프트웨어 자체를 중요시 함 요구사항의 변화는 불가피하며 이에 대응하는 것이 현실적이다. 기존의 개발 프로세스는 설계 기간이 길며 재작업 시 오버헤드가 크다. 환경의 빠른 변화에 대응하는 것이 중요하다. 애자일 선언문(Agile Manifesto) 🔗 공정과 도구보다 개인과 상호작용을 포괄적인 문서보다 작동하는 소프트웨어를 계약 협상보다 고객과의 협력을 계획을 따르기보다 변화에 대응하기를 요구사항이 바뀌기 쉬운 중소형의 비즈니스 시스템이나 전자 상거래 응용에 적합하다...
소프트웨어 개발 프로세스 - 나선형 모델과 V 모델 소프트웨어 개발 프로세스 모델 중 나선형 모델과 V 모델은 각각 반복 진화형 모델과 폭포수 모델의 확장된 형태이다. 1. 나선형 모델(Spiral Model) 나선형 모델의 도식화는 획일적이지 않다. 반복 진화형 모델🔗의 확장 형태 위험 최소화 - 전체 생명주기에 위험 분석과 프로토타이핑을 사용 각 단계 별로 ①목표와 대안의 결정, ②대안의 평가(위험 요소 분석), ③개발과 확인, ④다음 단계 계획의 4가지 단계를 수행함 나선형 모델은 위험 관리를 지원하는 프로세스의 프레임워크라고 할 수 있다. 가장 큰 특징 - 위험 관리에 비용을 투자 실험적이고 복잡한 대형 프로젝트에 적합 장점 대형 프로젝트에서 위험 관리를 통해 성공 가능성을 향상 프로젝트 특성, ..
소프트웨어 개발 프로세스 - 반복적 모델의 종류와 차이점 소프트웨어 개발 프로세스 모델 중 반복적 모델은 증분형(Incremental) 모델과 진화형(Evolutional) 모델 두 가지로 구분할 수 있다. 1. 반복적 모델 - 진화형 모델(Iterative Evolutional Model) 불안정한(미완성된) 요구사항으로부터 명세(설계) ➡️ 개발 ➡️ 검증 과정을 거쳐 초기버전 개발 명세(설계) ➡️ 개발 ➡️ 검증 과정을 반복하여 중간 버전, 최종 버전 개발 프로토타이핑을 통해 요구사항을 보완하며 점차적으로 명확한 요구사항 도출 반복 진화형 모델의 확장 형태로 나선형 모델(spiral model)🔗이 있다. 장점 요구사항이 완성되지 못한 경우에도 초기 버전 개발 가능 단점 개발 비용 예상 어려움 반..
소프트웨어 개발 프로세스 모델 - 폭포수 모델(Waterfall Model) 폭포수 모델은 대략 7단계로 구성된다. 선형 순차 모델(linear, sequential model), 고전적 소프트웨어 생명 주기 각 단계는 병행 수행되지 않고 순차 수행됨 기본적으로는 아래 방향으로 진행되나 실제로는 수정 및 재작업을 위해 이전 단계로의 피드백이 불가피함 폭포수 모델의 확장 형태로 V 모델🔗이 있다. 장점 단순한 선형 모델 - 이해 쉬움 단계별로 정형화된 접근 방법 - 체계적 문서화 가능 프로젝트 진행 상황 명확히 파악 가능 단점 요구사항을 완벽하게 작성해야 함 변경 수용 어려움 시스템의 동작을 후반에 확인 가능 대형 프로젝트에 적용 부적합 지나친 문서화 위험 분석 결여 일정 지연 가능성 큼 1. 폭포수 모델..
[컴퓨터공학/소프트웨어공학] 소프트웨어 공학 개요 1. 소프트웨어의 정의 포괄적/소프트웨어 공학 관점의 소프트웨어 정의 : 👉 좁은 의미의 소프트웨어(프로그램과 관련 데이터의 묶음)에 더하여 관련 문서들을 포함한 개념 2. 소프트웨어의 분류 기능에 따른 분류 시스템 소프트웨어 응용 소프트웨어 사용자에 따른 분류 일반(Generic) 소프트웨어 : = 패키지 소프트웨어 = 범용 소프트웨어 맞춤형(Custom) 소프트웨어 : = 비스포크 소프트웨어 3. 소프트웨어의 성질 무형의 인공물 - 물질적인 성질 없음 (H/W에 비해) 컴포넌트들의 조립을 통해 만들기 어려움 설계 과정의 품질 보증 활동 중요 (cf. H/W : 구현/제작 과정이 중요) 개발 비용 ≒ 인건비 (H/W에 비해) 변경 용이 - 소프트웨어의 ..