소프트웨어 생명주기
1. 폭포수 모형 Waterfall Model
= 고전적 생명 주기 모형
- 1970년대부터 사용된 가장 오래되고 전통적인 소프트웨어 생명 주기 모형
- 이전 단계로 돌아가 수 없다
- 선형 순차적 모형: 완전히 순차적으로 한 단계, 한 단계를 진행해 나가며 한 단계를 완전히 마무리 한 다음 다음 단계로 넘어갈 수 있다
- 두 개 이상의 과정이 병행하여 수행되지 않는다
- 계획, 문서 중심(매뉴얼)
타당성 검토 > 계획 > 요구분석 > 설계 > 구현(코딩) > 시험(검사) > 유지보수
2. 프로토타입 모형 Prototype Model
: 견본품을 만들어 최종 결과물 예측
- 모형을 만들어 사용자에게 보여 주고, 사용자가 직접 사용해보게 한 후 프로토타입을 재구축하는 방법
- 사용자와 시스템 사이의 인터페이스에 중점
- 변경이 용이: 추가, 변경, 삭제 즉시 반영 가능
- 비용 발생, 시간 소요
요구사항 분석 > 프로토타입 설계 > 개발 > 고객평가
3. 나선형 모형 Spiral Model
= 보헴
: 위험분석 모형
- 점진적 모형: 소용돌이 모양으로 여러 번의 개발 과정을 거쳐 점진적으로 최종 소프트웨어를 개발
- 별도의 유지보수 없이 진행 가능
- 비용이 크고 대규모 프로젝트에 적합
계획수립 > 위험분석 > 개발 > 고객평가 과정을 반복
4. 애자일 모형 Agile Model
= 고객중심 모형
- 고객과의 소통에 초점을 맞춘 고객만족을 우선시하는 방법론
- 고객의 요구사항에 유연하게 대처
- 고객만족을 우선시하는 방법론
ex. 스크럼 Scrum
요구사항 확인
1. 요구사항 확인
: 분석모델에 대해 확인하고 현행 시스템에 대해 분석
2. 현행 시스템 분석
지식: 산업분야, 플랫폼, 프로젝트 환경, 플랫폼, 가상화, 클라우드
기술: 환경분석, 운영체제, 저장장치, 네트워크, DBMS, 가상
* 플랫폼: 소프트웨어를 구동시키는 데 쓰이는 하드웨어와 소프트웨어의 결합
3. 현행 시스템 파악 절차
1단계: 시스템 구성, 기능, 인터페이스 파악
2단계: 아키텍처 구성, 소프트웨어 구성 파악
3단계: 하드웨어 구성, 네트워크 구성 파악
4. 개발 기술 환경 파악
- 운영체제 분석
운영체제 종류: 유닉스, 리눅스, 마이크로소프트 윈도우, 아이오에스, 안드로이드
- 네트워크 분석
분산되어 있는 컴퓨터를 통신망으로 연결
OSI 7 Layer: 물리, 데이터링크, 네트워크, 전송, 세션, 표현, 응용 계층
- DBMS 데이터베이스 분석
종속성과 중복성 통제, 데이터 공유, 접근 통제, 인터페이스 제공, 관련성 표현, 무결성 보장
논리/물리 테이블의 구조 파악: 정규화 정도, 조인의 난이도 파악
가용성, 성능, 기술지원, 상호호환성, 구축비용
- 비즈니스 융합분석
비즈니스 융합 유형: 제품융합, 서비스융합, 제품과 IT융합, 제품의 서비스화, 서비스의 제품화, 제품과 서비스 융합
비즈니스 융합 분석: 고객분석, 제품 및 서비스 분석, 사업구조 분석
5. 요구사항 정의
: 소프트웨어가 제공하는 서비스에 대한 설명과 정상적으로 운영되는 데 필요한 제약조건 등
* 요구사항의 유형:
1) 기술하는 내용에 따라
: 기능 요구사항(시스템, 입출력, 수행기능) VS 비기능요구사항(장비, 성능, 인터페이스, 데이터, 테스트, 보안, 품질, etc)
2) 기술관점과 대상의 범위에 따라
: 시스템요구사항(개발자 관점, 전문적, 기술적, 소프트웨어 요구사항) vs 사용자요구사항(사용자 관점, 친숙한 표현)
* 요구사항 개발 프로세스:
도출(수집) > 분석(타당, 비용, 범위) > 명세(문서화) > 확인
6. 요구사항 분석 기법
: 요구사항 분류, 개념 모델링, 요구사항 할당, 요구사항 협상, 정형분석
* 정형분석: 요구사항 분석에서 가장 마지막 단계에 이루어지는 분석
7.요구사항 확인 기법
: 요구사항 검토, 프로토타이핑, 모델 검증(요구사항 충족 여부), 인수 테스트
8. 응용소프트웨어 엔지니어링
지식: 산업분야, 프로젝트, 업무 특성, 요구공학, 소프트웨어, 통계학
기술: 유즈케이스 작성 기능, UML 작성 기능, 분석자동화 도구, 요구사항 관리 도구, 리뷰진행
UML: Unified Modeling Language)
1. UML
: 사물 관계 다이어그램
- 사물과 사물 간의 관계를 용도에 맞게 표현한 것이 다이어그램이다
2. 사물(Things)
: 모델을 구성하는 가장 중요한 기본 요소
- 구조 사물, 행동 사물, 주해 사물
구조 사물 Structural Things | 시스템의 개념적, 물리적 요소 표현 ex. 클래스, 유스케이스, 컴포넌트, 노드 |
행동 사물 Behavioral Things | 상호작용, 상태머신 |
그룹 사물 Grouping Things | 패키지, 요소들을 그룹별로 표현 |
주해 사물 Annotation Things | 주석: 노트, 부가적인 설명이나 제약 조건 |
3. 관계
: 사물과 사물 사이의 연관성
연관 관계 Association | 2개 이상의 사물이 서로 관련되어 있음을 표현 | 1, n, 0..*, n..m 등 |
집합 관계 Aggregation | 하나의 사물이 다른 사물에 포함되는 관계 | 컴퓨터 ◇- 프린터 |
포함 관계 Composition | 집합 관계의 특수 형태 | 문 ◆- 열쇠 |
일반화 관계 Generalization | 일반적인 개념 상위, 구체적인 개념 하위 | 부모: 커피 ◁- 자식: 아메리카노, 에스프레소 |
의존 관계 Dependency | 짧은 시간 동안만 연관을 유지 | 등급 ----> 할인율 |
실체화 관계 Realization | 사물이 할 수 있거나 해야 하는 기능 | 날다 ◁---- 비행기, 새 |
4. 다이어그램
: 사물과 관계를 도형으로 표현한 것
(정적) 구조적 다이어그램 Structural Diagram | |
클래스 다이어그램 Class Diagram |
클래스와 클래스가 가지는 속성, 클래스 사이의 관계 표현 시스템을 구성하는 요소에 대해 이해할 수 있는 구조적 다이어그램 클래스, 제약조건, 관계 등으로 구성 |
객체 다이어그램 Object Diagram |
객체와 객체 사이의 관계 표현 ex. 럼바우 객체지향 분석 기법에서 객체 모델링에 활용 |
컴포넌트 다이어그램 Component Diagram |
구현 모듈인 컴포넌트 간의 관계나 인터페이스 표현 -> 구현 단계에서 사용 |
배치 다이어그램 Deployment Diagram |
물리적 요소들의 위치 표현 노드와 의사소통 경로로 표현 -> 구현 단계에서 사용 |
복합체 구조 다이어그램 Composite Structure Diagram |
클래스, 컴포넌트가 복합 구조를 갖는 경우 -> 그 내부 구조 포현 |
패키지 다이어그램 Pacage Diagram |
유스케이스나 클래스 등의 모델 요소들을그룹화한 패키지들의 관계 |
(동적) 행위 다이어그램 Behavioral Diagram | |
유스케이스 다이어그램 Use Case Diagram |
사용자 요구 분석, 사용자 관점에서 표현 사용자(Actor)와 사용사례(Use Case)로 구성 -> 기능 모델링 작업 |
순차(시퀀스) 다이어그램 Sequence Diagram |
상호 작용하는 시스템이나 객체들이 주고받는 메세지 시간의 흐름에 따라 상호작용하는 과정을 그림으로 표현 |
커뮤니케이션 다이어그램 Communication Diagram |
순차 다이어그램 +메세지 뿐만 아니라 객체들 간의 연관까지 표현 |
상태 다이어그램 State Diagram |
하나의 객체가 어떻게 변화하는지를 표현 ex. 럼바우 객체지향 분석 기법에서 동적 모델링에 활용 |
활동 다이어그램 Activity Diagram |
객체의 처리 로직이나 조건에 따른 처리의 흐름을 순서에 따라 표현 |
상호작용 개요 다이어그램 Interaction Overview Diagram |
상호작용 다이어그램 간의 제어 흐름 표현 |
타이밍 다이어그램 Timing Diagram |
객체 상태 변화와 시간 제약을 명시적으로 표현 |
'자격증 > 정보처리기사 필기 - 개념' 카테고리의 다른 글
[정보처리기사 필기] 제1과목 소프트웨어 설계 - 화면 설계 (1) | 2025.04.16 |
---|---|
정보처리기사 필기 시험 출제 과목 및 범위 (0) | 2025.04.15 |