※ 소프트웨어 생명주기
: 소프트웨어를 개발하기 위한 과정을 각 단계로 나눈 것
※ 나선형 모형
: 여러 번의 소프트웨어 개발 과정을 거쳐 점진적으로 개발하는 모형을 보헴이 개발
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
'CS > CS' 카테고리의 다른 글
[2장] 데이터 입출력 구현 (0) | 2023.07.17 |
---|---|
[4장] 서버 프로그램 구현 (0) | 2023.07.16 |
[5, 6장] 인터페이스 구현 / 화면 설계 (0) | 2023.07.16 |
[12장] 제품 소프트웨어 패키징 (0) | 2023.07.16 |
[11장] 응용 SW 기초 기술 활용 (2) (1) | 2023.07.16 |