소프트웨어 생명주기
* 소프트웨어 생명주기: 소프트웨어를 개발하기 위한 설계, 운용, 유지보수 등의 과정을 각 단계별로 나눈 것.
생명주기 모형의 종류:
- 폭포수 모형
- 프로토타입 모형
- 나선형 모형
- 애자일 모형
요구사항 확인
* 요구사항: 문제의 해결 또는 목적 달성을 위해 고객의 요구사항, 혹은 표준이나 명세를 충족시키기 위해 시스템이 가져야하는 서비스 혹은 제약사항.
* 요구사항 분류:
- 기능적 요구사항:
특성: 기능성, 완전성, 일관성
ex) 온라인 쇼핑을 구현했을 경우 장바구니에서 아이템 삭제가 가능해야함
- 비기능적 요구사항:
특성: 신뢰성, 사용성, 효율성, 유지보수성, 이식성
ex) 시스템은 하루 24시간 가동되어야함
- 사용자 요구사항: 사용자 관점에서 본 시스템이 제공해야할 요구사항
- 시스템 요구사항: 소프트웨어 요구사항. 개발자 관점에서 본 시스템 전체가 제공해야할 요구사항
* 요구사항 개발 프로세스:
요구사항 도출 Elication - 분석 Analysis - 명세 Specification - 확인 Validation
* 요구사항 분석 기법:
- 요구사항 분류
- 개념 모델링
- 요구사항 할당
- 요구사항 협상
- 정형 분석
* 요구사항 분석: 개발 대상에 대한 사용자의 요구사항을 이해하고 문서화 하는 활동
* 구조적 분석 기법: 자료의 흐름, 처리를 바탕으로 요구사항을 분석 하는 방법. 하향식 방법을 통해 시스템을 세분화 할 수 있다.
* 구조적 분석 기법 도구:
- 자료흐름도(DFD)
- 자료 사전(DD)
- 소단위 명세서(Mini-Spec.)
- 개체 관계도(ERD)
- 상태 전이도(STD)
- 제어 명세서
* 요구사항 분석용 CASE(자동화 도구)
: 요구사항을 자동으로 분석하고 요구사항 분석 명세서를 기술하도록 개발된 도구
*요구사항 분석용 CASE
- ASDT
- SREM = RSL/REVS
- PSL/PSA
- TAGS
* HIPO (Hierarchy Input Process Output)
: 시스템 실행 과정인 입력, 처리, 출력의 기능을 표현한 것으로 시스템의 분석,설계, 문서화에 사용되는 기법
* UML (Unified Modeling Language)
: 시스템 개발 과정에서 시스템 개발자와 고객, 협업 개발자들 등 상호간의 의사소통이 원할히 이뤄지도록 표준화한 대표적인 객체지향 모델링 언어.
* UML의 구성요소
- Things 사물
- Relationships 관계
- Diagram 다이어그램
* UML - 다이어그램 : 사물과 관계를 도형으로 표현한 것.
- Structural Diagram (구조적 다이어그램): 정적 모델링에서 주로 사용.
종류:
- Calss Diagram 클래스 다이어그램
- Object Diagram 객체 다이어그램
- Component Diagram 컴포넌트 다이어그램
- Deplyment Diagram 배치 다이어그램
- Composite Structure Diagram 복합체 구조 다이어그램
- Package Diagram 패키지 다이어그램
- Behavioral Diagram (행위 다이어그램): 동적 모델링에서 주로 사용.
종류:
- Use Case Diagram 유스케이스 다이어그램
- Sequence Diagram 시퀀스 다이어그램
- Communication Diagram 커뮤니케이션 다이어그램
- State Diagram 상태 다이어그램
- Activity Diagram 활동 다이어그램
- Interaction Overview Diagram 상호작용 개요 다이어그램
- Timing Diagram 타이밍 다이어그램
* 비용산정 모델: 소프트웨어 규모 파악을 통한 투입 자원과 소요 시간을 통해 실행 가능한 계획을 수립하기 위해 비용을 산정하는 모델
* 비용산정 모델 분류:
- 하향식 산정방법: 전문가 판단, 델파이 기법
- 상향식 산정방법: LoC, Man Month, COCOMO 모형, Putnam 모형, FP(Function Point)모형
* COCOMO 모형의 소프트웨어 개발 유형
- Organic Mode 조직형: 5만(50KDSI) 라인 이하의 소프트웨어 개발 유형
- Semi-Detached Mode 반분리형: 30만(300KDSI) 라인 이하의 소프트웨어 개발 유형
- Embedded Mode 내장형: 30만(300KDSI)라인 이상의 소프트웨어 개발 유형
* Putnam(푸트남) 모형:
소프트웨어 생명 주기의 전 과정 동안에 사용될 노력의 분포를 예상.
Rayleigh-Norden 곡선의 노력 분포도를 기초로 함.
* 비용 산정 자동화 추정 도구
- SLIM: Rayleigh-Norden 곡선과 Putnam 예측 모델을 기초로 개발된 자동화 추정 도구
- ESTIMACS: FP모형을 기초로 개발된 자동화 추정 도구
* 프로젝트 일정 계획: 프로젝트의 프로세스를 이루는 소작업을 파악하고 예측된 노력을 각 소작업에 분배하여 순서와 일정 정리.
- PERT (Program Evaluation and Review Technique, 프로그램 평가 및 검토 기술)
: 전체 작업의 상호 관계를 표시하는 네트워크
- CPM (Critical Path Method, 임계 경로 기법)
: 프로젝트 완성에 필요한 작업을 나열, 필요한 소요기간을 예측하는데 사용하는 기법.
- 간트 차트 / Time-Line 차트
: 프로젝트의 작업 시작, 종료에 대한 작업일정을 막대 도표로 표시하는 프로젝트 일정표.
현행 시스템 분석
* 현행 시스템 파악: 현행 시스템이 어떤 하위 시스템으로 구성되어있고, 제공 기능 및 연계 정보는 무엇이며 어떤 기술 요소를 사용하는지 파악하는 활동.
* 현행 시스템 파악 절차:
1. 구성/ 기능/ 인터페이스 파악 - 시스템 구성 현황, 시스템 기능, 시스템 인터페이스 파악
2. 아키텍처 및 소프트웨어 구성 파악 - 아키텍처, 소프트웨어 구성 파악
3. 하드웨어 및 네트워크 구성 파악 - 시스템 하드웨어 현황, 네트워크 구성 파악
* 개발 기술 환경 파악
- OS (Operation System) 운영체제: 컴퓨터 시스템이 제공하는 하드웨어, 소프트웨어를 효율적으로 관리하며 편리하게 사용할 수 있도록 지원하는 소프트웨어.
고려사항:
- 품질측면 : 신뢰도, 성능
- 지원측면 : 기술지원, 주변 기기, 구축비용
- DBMS (Data Base Management System) 데이터베이스 관리 시스템: 사용자가 데이터베이스를 생성, 저장, 관리 기능을 도와주는 응용 프로그램.
고려사항:
- 품질측면 : 가용성, 성능, 상호 호환성
- 지원측면 : 기술지원, 주변 기기, 구축비용
- Middleware 미들웨어: 분산 컴퓨팅 환경에서 응용 프로그램과 프로그램이 운영되는 환경 간 통신을 제어해주는 소프트웨어. 대표적인 미들웨어로 WAS가 있다.
고려사항:
- 성능 측면: 가용성, 성능
* WAS (Web Application Server) 웹 애플리케이션 서버: 서버 계층에서 app이 동작할 수 있도록 환경 제공. 다른 이기종 시스템과의 애플리케이션 연동을 지원하는 서버.
- Open Source 오픈소스: 누구나 제한없이 사용할 수 있도록 소스를 공개한 소프트웨어.
- 라이선스의 종류, 사용자 수, 기술의 지속 가능성
'정처기 실기' 카테고리의 다른 글
[정처기 실기] 화면설계 (0) | 2022.07.10 |
---|---|
[정처기 실기] 인터페이스 구현 (0) | 2022.07.07 |
[정처기 실기] 서버 프로그램 구현 (0) | 2022.07.06 |
[정처기 실기] 통합 구현 (0) | 2022.07.06 |
[정처기 실기] 데이터 입출력 구현 (2) | 2022.07.04 |