오브의 빛나는 별

[정보처리기사] 1장 요구사항 확인 본문

정보처리기사

[정보처리기사] 1장 요구사항 확인

오브의 별 2024. 8. 6. 16:16
반응형

소프트웨어 생명 주기(Software Life Cycle): 소프트웨어를 개발하기 위해 정의, 운용, 유지보수 등의 과정을 각 단계별로 나눈 것
폭포수 모형(Waterfall Model): 각 단계를 확실히 매듭짓고, 그 결과를 철저하게 검토하여 승인 후 다음 단계를 진행. 선형 순차적
프로토타입 모형(Prototype Model, 원형 모형): 실제 개발될 소프트웨어에 대한 견본품을 만들어 최종 결과물을 예측. 사용자와 시스템 사이의 인터페이스에 중점을 두고 개발
나선형 모형(Spiral Model, 점진적 모형): 여러 번의 소프트웨어 개발 과정을 거쳐 점진적으로 최종 소프트웨어를 개발
애자일 모형(Agile Model): 고객과의 소통에 초점을 맞춘 방법론. 짧은 개발 주기

요구사항 개발 단계 구성
도출 > 분석 > 명세 > 확인

요구사항 분석: 개발 대상에 대한 사용자의 요구사항을 이해하고 문서화(명세화)하는 활동

UML(Unified Modeling Language): 시스템 개발 과정에서 상호 간의 의사소통이 원활하게 이루어지도록 표준화한 객체지향 모델링 언어. 사물(Things), 관계(Relationship), 다이어그램(Diagram)

구조적 다이어그램 / 정적 다이어그램
- Class Diagram (클래스 다이어그램) : 클래스 사이의 관계를 표현하는 UML을 이용한 정적 모델링의 대표 다이어그램
- Object Diagram (객체 다이어그램) : 클래스에 속한 사물(객체)들, 즉 인스턴스(Instance)를 특정 시점의 객체와 객체 사이의 관계로 표현
- Component Diagram (컴포넌트 다이어그램) : 실제 구현 모듈인 컴포넌트 간의 관계나 컴포넌트 간의 인터페이스를 표현
- Deployment Diagram (배치 다이어그램) : 컴포넌트 사이의 종속성을 표현하고, 결과물, 프로세스, 컴포넌트 등 물리적 요소들의 위치를 표현
- Composite Structure Diagram (복합체 구조 다이어그램) : 클래스나 컴포넌트가 복합 구조를 갖는 경우 그 내부 구조를 표현
- Pakage Diagram (패키지 다이어그램) : 유스케이스나 클래스 등의 모델 요소들을 그룹화한 패키지들의 관계를 표현


행위적 다이어그램 / 동적 다이어그램
- Use Case Diagram (유스케이스 다이어그램) : 시스템이 제공하고 있는 기능과 그와 관련된 외부 요소들을 사용자의 입장에서 표현하는 다이어그램
- Sequence Diagram (시퀀스 다이어그램) : 객체 간 동적 상호작용을 시간적 개념으로 메세지 흐름을 이용해서 표현하는 다이어그램
- Communication Diagram (커뮤니케이션 다이어그램) : 객체들이 주고받는 메세지와 객체 간의 연관을 표현하는 다이어그램
- State Diagram (상태 다이어그램) : 하나의 객체가 자신이 속한 클래스의 상태변화 혹은 다른 객체간의 상호작용에 따라 상태가 변하는 것을 표현하는 다이어그램
- Activity Diagram (활동 다이어그램) : 시스템이 어떤 기능을 수행하는지 처리의 흐름을 순서로 표현한 다이어그램
- Timing Diagram (타이밍 다이어그램) : 객체 상태 변화와 시간 제약을 명시적으로 표현하는 다이어그램

Case(Computer Aided Software Engineering): 소프트웨어 개발 과정에서 사용되는 요구분석, 설계, 구현, 검사 및 디버깅 과정 전체 또는 일부를 컴퓨터와 전용 소프트웨어 도구를 사용하여 자동화하는 것
- 소프트웨어 생명 주기 전 단계의 연결
- 다양한 소프트웨어 개발 모형 지원
- 그래픽 지원

수학적 산정기법
COCOMO(COnstructive COst MOdel): LOC에 의한 비용 산정 기법
- 조직형(organic Mode): 소규모의 소프트웨어 5만라인 이하
- 반 분리형(Semi-Detached Mode): 중간형 소프트웨어 30만 라인 이하의 소프트웨어
- 내장형(Embedded Mode): 초대형 규모의 소프트웨어 30만 라인 이상
Putnam 모형: 소프트웨어 생명주기의 전 과정 동안에 사용될 노력의 분포를 예상하는 모델. 대형 프로젝트에서 이용
기능 점수 모형(FP): 소프트웨어의 기능을 증대시키는 요인별로 가중치를 부여하고, 요인별 가중치를 합산하여 총 기능 점수를 산출하며, 총 기능 점수와 영향도를 이용하여 점수를 구한 후 이를 이용하여 비용을 산정

소프트웨어 개발 프레임워크의 특성
모듈화(Modularity): 프레임워크는 캡슐화를 통해 모듈화를 강화하고 설계 및 구현의 변경에 따른 영향을 최소화함으로써 소프트웨어의 품질을 향상. 개발 표준에 의한 모듈화로 인해 유지 보수가 용이
재사용성(Reusability): 프레임워크는 재사용 가능한 모듈들을 제공함으로써 예산 절감, 생산성 향상, 품질 보증 가능
확장성(Extensibility): 프레임워크는 다형성을 통한 인터페이스 확장이 가능하여 다양한 형태와 기능을 가진 애플리케이션 개발이 가능
제어의 역흐름(Inversion of Control): 개발자가 관리하고 통제해야 하는 객체들의 제어를 프레임워크에 넘김으로써 생산성을 향상시킴

반응형