소프트웨어 생명주기

 

* 소프트웨어 생명주기: 소프트웨어를 개발하기 위한 설계, 운용, 유지보수 등의 과정을 각 단계별로 나눈 것.

 

생명주기 모형의 종류:

- 폭포수 모형

- 프로토타입 모형

- 나선형 모형

- 애자일 모형

 


요구사항 확인

 

* 요구사항: 문제의 해결 또는 목적 달성을 위해 고객의 요구사항, 혹은 표준이나 명세를 충족시키기 위해 시스템이 가져야하는 서비스 혹은 제약사항.

 

* 요구사항 분류:

- 기능적 요구사항: 

 특성: 기능성, 완전성, 일관성

 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 오픈소스: 누구나 제한없이 사용할 수 있도록 소스를 공개한 소프트웨어.

  • 라이선스의 종류, 사용자 수, 기술의 지속 가능성

 

+ Recent posts