CS/CS

[1장] 요구사항 확인

JWonK 2023. 7. 17. 15:12
728x90
반응형

※  소프트웨어 생명주기


 

: 소프트웨어를 개발하기 위한 과정을 각 단계로 나눈 것

 

 

 

※ 나선형 모형


: 여러 번의 소프트웨어 개발 과정을 거쳐 점진적으로 개발하는 모형을 보헴이 개발

 

1. 계획 수립

2. 위험 분석

3. 개발 및 검증

4. 고객 평가

 

 

 

※ 폭포수 모형 


: 이전 단계로 돌아갈 수 없다는 전제하에 각 단계를 확실히 매듭짓고 그 결과를 검토하여 승인 과정을 거친 후에 다음 단계를 진행하는 개발 방법론이다.

 

 

 

※ 애자일 모형 


: 고객의 요구사항 변화에 유연하게 대응할 수 있도록 일정한 주기를 반복하면서 개발하는 모형이다.

 

[대표적인 개발 모형]

  • 스크럼
  • XP
  • 칸반, Lean, 기능 중심 개발(FDD ; Feature Driven Development)

 

 

 

※ 애자일 개발 4가지 핵심 가치 


  • 프로세스와 도구보다는 개인과 상호작용에 더 가치를 둔다.
  • 방대한 문서보다는 실행되는 SW에 더 가치를 둔다.
  • 계약 협상보다는 고객과 협업에 더 가치를 둔다.
  • 계획을 따르기보다는 변화에 반응하는 것에 더 가치를 둔다.

 

 

 

※ 소프트웨어 공학 


: 소프트웨어의 위기를 극복하기 위한 방안으로 연구된 학문

 

[기본 원칙]

  • 현대적인 프로그래밍 기술을 계속적으로 적용해야 한다.
  • 개발된 소프트웨어의 품질이 유지되도록 지속적으로 검증해야 한다.
  • 소프트웨어 개발 관련 사항 및 결과에 대한 명확한 기록을 유지해야 한다.

 

 

 

※ 스크럼 


: 팀이 중심이 되어 개발의 효율성을 높이는 기법

 

[스크럼 개발 프로세스]

스프린트 계획 회의 → 스프린트 → 일일 스크럼 회의 → 스프린트 검토 회의 → 스프린트 회고

 

 

 

※ XP 


: 요구사항에 유연하게 대응하기 위해 고객의 참여와 개발 과정의 반복을 극대화하여 개발 생산성을 향상시키는 방법

 

[XP의 5가지 핵심 가치]

  • 의사소통 [Communication]
  • 단순성 [Simplicity]
  • 용기 [Courage]
  • 존중 [Respect]
  • 피드백 [Feedback]

 

[XP의 주요 실천 방법]

  • Pair Programming [짝 프로그래밍]
  • Collective Ownership [공동 코드 소유]
  • Test-Driven Development [테스트 주도 개발]
  • Whole Team [전체 팀] : 개발에 참여하는 모든 구성원들은 각자 자신의 역할이 있고 그 역할에 대한 책임을 가져야 한다.
  • Continuous Intergration [계속적인 통합]
  • Refactoring [리팩토링]
  • Small Releases [소규모 릴리즈]

 

 

 

※ 데이터베이스 관리 시스템 [DBMS : DataBase Management System] 


: 사용자와 데이터베이스 사이에서 정보를 생성해주고, 데이터베이스를 관리해주는 소프트웨어

 

[DBMS 관련 요구사항 식별 시 고려사항]

  • 가용성
  • 성능
  • 기술 지원
  • 상호 호환성
  • 구축 비용

 

 

 

※ 웹 애플리케이션 서버 


: 사용자의 요구에 따라 변하는 동적인 콘텐츠를 처리하기 위해 사용되는 미들웨어

 

[WAS 관련 요구사항 식별 시 고려사항]

  • 가용성
  • 성능
  • 기술 지원
  • 구축 비용

 

 

 

※ 기능 요구사항 


: 시스템이 무엇을 하는지, 어떤 기능을 하는지 등의 기능이나 수행과 관련된 요구사항

 

  • 시스템의 입력이나 출력으로 무엇이 포함되어야 하는지에 대한 사항
  • 시스템이 어떤 데이터를 저장하거나 연산을 수행해야 하는지에 대한 사항
  • 시스템이 반드시 수행해야 하는 기능
  • 사용자가 시스템을 통해 제공받기를 원하는 기능

 

 

 

※  비기능 요구사항


: 품질이나 제약사항과 관련된 요구 사항

 

 

 

※ 요구사항 개발 프로세스 


: 개발 대상에 대한 요구사항을 체계적으로 도출하고 분석한 후 명세서에 정리한 다음 확인 및 검증하는 일련의 구조화된 활동

 

1. 도출

2. 분석

3. 명세

4. 확인

 

 

 

※ 자료 흐름도 [DFD : Data Flow Diagram]


: 자료의 흐름 및 변환 과정과 기능을 도형 중심으로 기술하는 방법

 

- 자료 흐름 그래프, 버블 차트라고도 한다.

- 자료 흐름과 처리를 중심으로 하는 구조적 분석 기법에 이용된다.

 

[자료 흐름도 구성 요소]

기호 의미
프로세스 [Process] 자료를 변환시키는 시스템의 한 부분(처리 과정)을 나타내며 처리, 기능, 변환, 버블이라고도 함
자료 흐름 [Data Flow] 자료의 이동(흐름)이나 연관관계를 나타냄
자료 저장소 [Data Store] 시스템에서의 자료 저장소(파일, DB)를 나타냄
단말 [Terminator] 시스템과 교신하는 외부 개체로, 입력 데이터가 만들어지고 출력 데이터를 받음

 

 

 

※ 자료 사전 [DD : Data Dictionary] 


: 자료 흐름도에 있는 자료를 더 자세히 정의하고 기록한 것

 

[자료 사전에 사용되는 표시 기호]

기호 의미
= 자료의 정의
+ 자료의 연결
( ) 자료의 생략
[ ] 자로의 선택
{ } 자료의 반복
* * 자료의 설명

 

 

 

※ HIPO 


: 시스템 실행 과정인 입력 / 처리 / 출력의 기능을 표현한 것

 

- 하향식 소프트웨어 개발을 위한 문서화 도구

 

 

 

※ UML [Unified Modeling Languege] 


: 시스템 개발 과정에서 의사소통이 원활하게 이루어지도록 표준화한 대표적인 객체지향 모델링 언어이다.

 

[UML 구성 요소]

  • 사물(Things)
  • 관계(Relationship)
  • 다이어그램(Diagram)

 

 

 

※ 다이어그램 


  • 사물과 관계를 도형으로 표현한 것 
  • 여러 관점에서 시스템을 가시화한 뷰(View)를 제공함으로써 의사소통에 도움을 준다.
  • 정적 모델링에서는 주로 구조적 다이어그램을 사용한다.
  • 동적 모델링에서는 주로 행위 다이어그램을 사용한다.

 

 

 

※ 구조적 다이어그램의 종류


  • 클래스 다이어그램
  • 객체 다이어그램 : 럼바우 객체지향 분석 기법에서 객체 모델링에 활용된다.
  • 컴포넌트 다이어그램 : 실제 구현 모듈인 컴포넌트 간의 관계나 컴포넌트 간의 인터페이스 표현
  • 배치 다이어그램
  • 복합체 구조 다이어그램
  • 패키지 다이어그램

 

 

 

※ 행위 다이어그램 


  • 유스케이스 다이어그램 : 사용자(actor)와 사용 사례(Use Case)로 구성
  • 시퀀스 다이어그램 : 메시지 표현
  • 커뮤니케이션 다이어그램 : 연관관계
  • 상태 다이어그램 : 럼바우
  • 활동 다이어그램
  • 상호작용 다이어그램
  • 타이밍 다이어그램

 

 

 

※ 스트레오 타입 


: UML에서 표현하는 기본 기능 외에 추가적인 기능을 표현한 것

 

- 길러멧(Guilemet)이라고 부르는 겹화살괄호(<< >>) 사이에 표현할 형태 기술

 

 

 

 

 


 

 

 

 

▶ 요구사항 분석용 CASE에 대해 간략히 서술하시오.

: 요구사항을 자동으로 분석하고, 요구사항 분석 명세서를 기술한 것

 

 

 

※ 소프트웨어 재사용


: 이미 개발되어 인정받은 소프트웨어를 다른 소프트웨어 개발이나 유지에 사용하는 것

 

[소프트웨어 재사용 방법]

방법 설명
합성 중심
[Composition-Based]
전자 칩과 같은 소프트웨어 부품, 즉 블록을 만들어서 끼워 맞춰 소프트웨어를 완성시키는 방법으로, 블록 구성 방법이라고도 함
생성 중심
[Generation-Based]
추상화 형태로 써진 명세를 구체화하여 프로그램을 만드는 방법으로, 패턴 구성 방법이라고도 함

 

 

 

※ CASE [Computer Aided Software Engineering]


: 소프트웨어 개발 과정에서 사용되는 과정 전체 또는 일부를 컴퓨터와 전용 소프트웨어 도구를 사용하여 자동화하는 것

 

[CASE의 주요 기능]

  • 소프트웨어 생명 주기 전 단계의 연걸
  • 다양한 소프트웨어 개발 모형 지원
  • 그래픽 지원

 

 

 

※ LOC 기법 [Source Line Of Code]


: 각 기능의 원시 코드 라인 수의 비관치, 낙관치, 기대치를 측정하여 예측치를 구하고 이를 이용하여 비용을 산정하는 방법

 

 

 

※ 수학적 산정 기법


: 수학적 산정 기법은 상향식 비용 산정 기법으로, 경험적 추정 모형, 실험적 추정 모형이라고도 한다.

 

[주요 수학적 산정 기법]

  • COCOMO 모형
  • Putnam 모형
  • 기능 점수(FP) 모형

 

 

 

※ COCOMO의 소프트웨어 개발 유형


: COCOMO모형은 LOC에 의한 비용 산정 기법이다.

 

[조직형 : Organic Mode]

  • 5만(50KDSI) 라인 이하의 소프트웨어를 개발하는 유형

 

[반분리형 : Semi-Detached Mode]

  • 30만(300KDSI) 라인 이하의 소프트웨어를 개발하는 유형

 

[내장형 : Embedded Mode]

  • 30만(300KDSI) 라인 이상의 소프트웨어를 개발하는 유형

 

 

 

※ Putnam 모형 


: 소프트웨어 생명 주기의 전 과정 동안에 사용될 노력의 분포를 예상하는 모형

 

- 시간에 따른 함수로 표현되는 Rayleigh-Norden 곡선의 노력 분포도를 기초로 한다.

 

 

 

※ 소프트웨어 개발 프레임워크의 특성


  • 모듈화 : Modularity
  • 재사용성 : Reusability
  • 확장성 : Extensibility
  • 제어의 역흐름 : Inversion of Control
728x90
반응형