본문 바로가기
2023-1/소프트웨어 설계

01

by 철없는민물장어 2023. 4. 16.
728x90
반응형

1.1 software analysis & design

-analysis: 정보 시스템이 무엇을 하여야 하는지 자세히 이해하고 명세로 나타내는 일. 

-design: 정보 시스템이 어떻게 구현되어야 하는지 자세히 나타내는 일

 

software designer

-비즈니스 니즈를 만족시키기 위하여 분석과 설계 기술을 사용

-소프트웨어를 사용하는 기관에게 이익을 가져다주는 가치의 창출을 목표로 함

-소프트웨어는 단순 도구가 아니라, 기관이 세운 목표에 좋은 성과를 달성하게 하는 통합 요소가 되어야 함

 

비즈니스 목표 달성을 위해 

-정확한 요구분석

-견고한 구조 설계

-구현과 테스트

-깔끔한 UI설계

등이 필요.

 

1.3 일반적인 시스템 개발 과정

SDLC(software development life cycle)

계획 -> 분석 -> 설계 -> 구현 -> 설치 -> 유지보수

 

시스템 개발 과정은 기본적으로 4단계로 구성

계획->분석->설계->구현

 

1.계획

-왜 정보시스템을 구축하여야 하는지 이해

-프로젝트 팀이 앞으로 어떻게 할 것인지 결정

  • 타당성 분석(validaty analysis) - 기술적, 경제적, 조직적 타당성
  • 작업 계획 수립
  • 팀 조직 수립
  • 프로젝트 관리 계획

-프로젝트 계획서 작성

 

2. 분석

-누가, 언제 사용하며 시스템이 어떤 기능을 가져야 하는지 분석.

-분석 전략 수립

  • SWOT 분석
  • 현재 시스템(as-is system) 및 새로운 시스템(to-be system)분석

-요구 수집: 인터뷰/질문

-문서화: 제안서 문서 작성

 

3.설계

-시스템을 어떻게 구축할 것인가?(시스템이 어떻게 동작하는지?)

-시스템의 동작을 결정

  • UI,입력 양식, 보고서
  • 프로그램
  • 데이터베이스, 파일

-설계 전략 수립: 사내 프로그래머 개발/아웃소싱 등

-아키텍처 설계: 소프트웨어 아키텍처,인터페이스 설계

-데이터 설계: DB와 파일 설계

-프로그램 설계

 

4.구현

-구축 또는 컴포넌트 통합으로 설계를 현실화

-작업 단계: 시스템 구축과 부분 테스트, 시스템 설치,전환, 지원 계획

 

1.4 소프트웨어 개발 방법론

방법론: 소프트웨어 개발 생명주기(SDLC)를 구현하기 위해 따라야 할 가이드라인 또는 정형화된 접근 방법

 

방법론의 구성

  • 모델
  • 도구
  • 기술

모델: 실세계를 특정한 관점으로 표현한 것. (흐름도, 자료흐름도, 유스케이스 다이어그램, 클래스 다이어그램..)

도구: 설계, 유지보수, 테스트 등 소프트웨어 산출물 생산에 도움을 주는 소프트웨어(툴)(CASE)

기술: 개발 작업을 완성할 수 있도록 도움을 주는 가이드라인: 프로젝트 관리 기술, 객체지향 분석 설계 기술 ...

 


1.5 Software process model

-Waterfall model

: 각 단계가 다음 단계 시작 전에 끝나야 함.

각 단계 사이에 중복이나 상호작용이 없음.(순서적, 시퀀셜 모델)

각 단계의 결과는 다음 단계가 시작 되기 전에 점검

 

적용:

단순하거나 응용 분야를 잘 알고 있는 경우 적합함.

비전문가가 사용할 시스템 개발에 적합.

변화가 적은 프로젝트에 적합

 

장점:

프로세스가 단순하여 초보자가 쉽게 적용 가능

중간 산출물이 명확하여 관리 용이

코드 생성 전 충분한 연구와 분석 단계를 가짐

 

단점:

처음 단계에서 지체되면 코딩,테스트가 지연됨

각 단계수행에 많은 노력이 필요함

필요 없는 문서를 생산할 가능성이 있음

 

폭포수 모델을 변형하여, 대규모 시스템을 쪼개어 병렬로 진행하는 병렬 개발 모형(parallel model)도 있음.

 

-Prototyping model

:프로토타입의 적용=> 사용자의 요구를 더 정확히 추출가능. 알고리즘의 타당성, 운영체제와의 조화, 인터페이스 시험 제작

사용자와 개발자의 의사소통을 도움

프로토 타입은 목적에 따라 개발할 수 있다.

단순한 요구 추출을 목적으로 하는 경우 프로토타입을 만들고 버리면 되고

제작 가능성을 타진하는 경우 개발 단계에서 유지보수가 이루어짐

 

장점: 

개발 착수 시점에 요구가 불투명할 때 이점이 있음

혁신적인 기술을 사용해 보고 싶을 때

 

단점: 오해, 기대심리 유발(프로토타입만 못하네..), 관리가 어려움(중간 산출물 정의가 난해)

 

(중소규모의 경우 워터폴 모델을 적용하기 힘들다고 함)

 

-Spiral model

:나선형 모델, 여러 버전으로 나누어 순차적으로 개발

Set requirements

Ananlysis and Design

Verification and Testing

Construction and Implementation

 

장점:

사전 위험 분석을 통한 돌출 위험 요소 감소

유용한 시스템을 빠른 기간 내에 사용자의 손에 들려줌

중요한 추가 요구를 조기에 발견

 

단점:

반복적 개발에 의한 프로젝트 기간 연장 가능성

반복 횟수 증가에 따른 프로젝트 관리의 어려움

 

-Agile model

:민첩한. 과도한 모델링과 문서화의 짐을 과감히 생략하고 개발에 집중함(Extreme programming, Scrum, DSDM)

Extreme Programming의 핵심가치

  • 의사소통
  • 단순함
  • 피드백
  • 격려

1.6 프로젝트 팀 역할

프로젝트 팀 구성

  • 프로젝트 관리자(PM)
  • 시스템 분석가
  • 프로그래머
  • 사용자 지원
  • 품질보증(QA)
  • DB 관리자
  • 네트워크 관리자

 

728x90
반응형

'2023-1 > 소프트웨어 설계' 카테고리의 다른 글

Structural Modeling  (0) 2023.06.16
Use case diagram 2  (0) 2023.06.16
04 - Use Case Diagram  (0) 2023.04.16
03 - UML  (0) 2023.04.16
02 - Planning  (0) 2023.04.16

댓글