낙서장[2]/1. 요구사항 확인: 2개의 글

[요구사항 확인] 1-1 소프트웨어 개발 방법론

Posted by nkjok
2025. 2. 3. 16:11 낙서장[2]/1. 요구사항 확인
반응형
           
  소프트웨어 개발 방법론  
  (1) 소프트웨어 생명주기 모델   
  ● 소프트웨어 생명주기는 시스템의 요구분석부터 유지보수까지 전 공정을 체계화한 절차이다.  
  ● 시스템이 개발될 때부터 운용과 유지보수를 거쳐 생애를 마칠 때 까지  어떠한 순서를 밟는지에 대한 작업 프로세스를 모델화한 것이다.  
           
  (2) 소프트웨어 생명주기 모델 프로세스    
  ▼ 소프트웨어 생명주기 모델 프로세스    
           
  순서 프로세스 설명 활동  
  1 요구사항 분석 ● 다양한 이해관계자의 상출할 수도 있는 요구사항을 고려하여
새로운 제품이나 변경된 제품에 부합하는
요구와 조건을 결정하는 단계
● 기능 요구사항
● 비기능 요구사항
 
   
   
  ● 개발할 소프트웨어의 기능과 제약 조건, 목표 등을
소프트웨어 사용자와 함께 명확히 정의하는 단계
 
   
  2 설계 ● 시스템 명세 단계에서 정의한 기능을 실제 수행할 수 있도록
수행 방법을 논리적으로 결정하는 단계
● 시스템 구조 설계
● 프로그램 설계
● 사용자 인터페이스 설계
 
   
   
  3 구현 ● 설계 단계에서 논리적으로 결정한 문제 해결 방법을
특정 프로그래밍 언어를 사용하여 실제 프로그램을 작성하는 단계
● 인터페이스 구조
● 자료 구조 개발
● 오류 처리
 
   
   
  ● 프로그래밍 언어 선택, 기법, 스타일, 순서 등을 결정하는 단계  
   
  4 테스트 ● 시스템이 정해진 요구를 만족하는지, 예상과 실제 결과가
어떤 차이를 보이는지 검사하고 평가하는 단계
● 단위 테스트
● 통합 테스트
● 시스템 테스트
● 인수 테스트
 
   
   
   
  5 유지보수 ● 시스템이 인수되고 설치된 후 일어나는 모든 활동 ● 예방, 완전 교정, 적응
유지보수
 
   
           
  (3) 소프트웨어 생명주기 모델 종류    
  소프트웨어 생명주기 모델 종류로는 폭포수 모델, 프로토타이핑 모델, 나선형 모델, 반복적 모델이 있다.    
  ▼ 소프트웨어 생명주기 모델 종류    
  종류 설명  
  폭포수 모델
(Waterfall Model)
● 소프트웨어 개발 시 각 단계를 확실히 마무리 지은 후에 다음 단계로 넘어가는 모델  
  ● 가장 오래된 모델  
  ● 선형 순차적 모형으로 고전적 생명주기 모형이라고도 함  
  ● 모형의 적용 경험과 성공 사례가 많음  
  ● 단계별 정의와 산출물이 명확  
  ● 요구사항 변경이 어려움  
  절차: 타당성 검토 -> 계획 -> 요구사항 분석 -> 설계 -> 구현 -> 테스트 -> 유지보수  
   
  포로토타이핑 모델
(Prototyping Model)
● 고객이 요구한 주요 기능을 프로토타입으로 구현하여,
고객의 피드백을 반영하여 소프트웨어를 만들어가는 모델
 
   
  ● 프로토타입은 발주자나 개발자 모두에게 공동의 참조 모델을 제공  
  ● 프로토타입은 구현 단계의 구현 골격  
  나선형 모델
(Spiral Model)
● 시스템 개발 시 위험을 최소하하기 위해 점진적으로 완벽한 시스템으로 개발해 나가는 모델  
  절차: 계획 및 정의 -> 위험 분석 -> 개발 -> 고객 평가  
   
  반복적 모델
(Iteration Model)
● 구축대상을 나누어 병렬적으로 개발 후 통합하거나, 반복적으로 개발하여
점증 완성시키는 SDLC 모델
 
   
  ● 사용자의 요구사항 일부분 혹은 제품 일부분을 반복적으로 개발하여
최종 시스템으로 완성하는 모델
 
   
           
반응형

'낙서장[2] > 1. 요구사항 확인' 카테고리의 다른 글

[요구사항 확인] 미리 알아두기  (0) 2025.01.23

[요구사항 확인] 미리 알아두기

Posted by nkjok
2025. 1. 23. 14:37 낙서장[2]/1. 요구사항 확인
반응형

애자일 방법론 (Agile Methodology)

절차보다는 사람이 중심이 되어 변화에 유연하고 신속하게 적응하면서 효율적으로 시스템을 개발할 수 있는 신속 적응적 경량 개발 방법론이다.

애자일 방법론은 소프트웨어 개발에 있어서 기존의 경직된 절차보다는 사람과 팀 간의 협력을 중시하는 접근 방식입니다.

  1. 변화에 유연하게 대응: 애자일 방법론은 프로젝트 도중에 변경되는 요구사항에도 신속하게 적응할 수 있도록 설계되었습니다.
  2. 짧은 개발 주기: 보통 2~4주 정도의 짧은 반복 주기(스프린트)로 프로젝트를 진행하여, 각 주기마다 기능이 완성된 제품을 제공할 수 있습니다.
  3. 지속적인 피드백: 팀원들 간의 지속적인 커뮤니케이션과 사용자로부터의 피드백을 통해 제품을 꾸준히 개선해 나갑니다.

객체 지향 분석 (Object Oriented Analysis, OOA)

객체 지향 분석(OOA; Object Oriented Analysis)은 사용자의 요구사항을 분석하여 요구된 문제와 관련된 모든 클래스(객체), 속성과 연산, 관계를 정의하여 모델링하는 기법이다

객체 지향 분석은 소프트웨어 요구사항을 이해하고 모델링하는 단계로, 객체 지향 프로그래밍(OOP)의 이론을 바탕으로 합니다.

  1. 클래스와 객체 정의: 시스템에서 필요로 하는 모든 클래스와 객체를 식별하고 정의합니다.
  2. 속성과 메서드: 각 클래스에 대한 속성(데이터)과 메서드(행동)을 정의하여 객체의 행동과 상태를 명확히 합니다.
  3. 관계: 클래스 간의 상속, 연관 관계 등을 모델링하여 시스템 전체 구조를 이해하고 나타냅니다.

디자인 패턴 (Design Patterns)

디자인 패턴은 소프트웨어 공학의 소프트웨어 설계에서 공통으로 발생하는 문제에 대해 자주 쓰이는 설계 방법을 정리한 패턴이다.

디자인 패턴은 반복적으로 발생하는 소프트웨어 설계 문제를 해결하기 위한 일반화된 해결책입니다.

  1. 재사용 가능한 코드: 디자인 패턴을 사용하면 코드의 재사용성이 높아지고 유지보수가 쉬워집니다.
  2. 문제 해결: 특정 상황에서 자주 발생하는 문제를 해결하는 데 유용합니다.
  3. 커뮤니케이션 도구: 팀원 간의 설계 논의에서 공통의 언어로 사용되어 설계 의도를 명확히 전달할 수 있습니다.

요구사항 분석 (Requirement Analysis)

도출된 요구사항 간 상충을 해결하고 소프트웨어의 범위를 파악하여 외부 환경과 상호 작용하는 것을 분석하는 과정이다.

요구사항 분석은 시스템이 가져야 할 기능과 제약 조건을 명확히 정의하는 단계입니다.

  1. 요구사항 도출: 이해 관계자와의 인터뷰, 설문 조사 등을 통해 필요한 요구사항을 수집합니다.
  2. 요구사항 명세화: 수집된 요구사항을 명확하고 구체적으로 문서화하여 개발팀이 이해할 수 있도록 합니다.
  3. 요구사항 검증: 도출된 요구사항이 완전하고 일관성 있는지 검토하고, 상충되는 요구사항을 조정합니다.

소프트웨어 아키텍처 (Software Architecture)

소프트웨어 아키텍처(Software Architecture)는 시스템에 대한 기본 조직 체계로, 시스템을 이루는 구성요소와 구성요소들 사이의 관계, 구성요소와 주변 환경들과의 관계 및 시스템의 진화와 설계를 지배하는 원칙이다.

소프트웨어 아키텍처는 시스템의 전체 구조와 디자인 원칙을 정의하는 과정입니다.

  1. 구성 요소: 시스템을 구성하는 주요 컴포넌트와 그 역할을 정의합니다.
  2. 관계: 구성 요소 간의 인터페이스와 상호 작용 방식을 정의하여 전체적인 시스템의 작동 원리를 나타냅니다.
  3. 설계 원칙: 시스템의 확장성, 유지보수성, 성능 등을 고려한 설계 원칙을 설정하여 시스템의 일관성을 유지합니다.
반응형