소프트웨어 생명 주기 및 설계 기초

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson
Download our mobile app to listen on the go
Get App

Questions and Answers

소프트웨어 개발 수명 주기(SDLC)의 주요 목표는 무엇입니까?

  • 하드웨어 구매 비용을 최소화합니다.
  • 마케팅 전략을 최적화합니다.
  • 소프트웨어 개발 프로세스를 관리하고 개선합니다. (correct)
  • 최종 사용자 교육 시간을 단축합니다.

시스템 분석 단계에서 주로 수행되는 작업은 무엇입니까?

  • 데이터베이스 스키마 설계
  • 사용자 인터페이스 디자인
  • 정보 시스템이 무엇을 해야 하는지 이해하고 명세로 나타내는 작업 (correct)
  • 소프트웨어 코드 작성

소프트웨어 설계 단계의 주요 목표는 무엇입니까?

  • 프로젝트 예산 결정
  • 최종 사용자 교육 일정 계획
  • 하드웨어 및 소프트웨어 요구 사항 식별
  • 정보 시스템을 어떻게 구현해야 하는지 자세히 나타내는 작업 (correct)

IT 프로젝트 실패의 예시로 제시된 맥도날드 프로젝트에서 드러난 문제점은 무엇입니까?

<p>Global ERP application 개발 및 120여개 국의 3만여 매장 연결의 어려움 (C)</p> Signup and view all the answers

소프트웨어 설계자의 주요 역할로 가장 적절한 것은 무엇입니까?

<p>소프트웨어 개발에서 중요한 역할을 담당하고 비즈니스 니즈(needs)를 만족 시키기 위하여 분석과 설계 기술을 사용하는 전문가 (A)</p> Signup and view all the answers

성공적인 소프트웨어 디자인의 핵심 목표는 무엇입니까?

<p>기관의 가치 창출 및 비즈니스 목표 달성 (D)</p> Signup and view all the answers

일반적인 시스템 개발 과정의 4단계는 무엇입니까?

<p>계획, 분석, 설계, 구현 (D)</p> Signup and view all the answers

계획 단계에서 프로젝트 팀이 결정해야 하는 사항으로 가장 적절한 것은 무엇입니까?

<p>프로젝트 팀이 앞으로 어떻게 할 것인지 결정 (B)</p> Signup and view all the answers

타당성 분석(validity analysis)에서 고려해야 할 요소는 무엇입니까?

<p>기술적, 경제적, 조직적 타당성 (D)</p> Signup and view all the answers

분석 단계에서 수행되는 SWOT 분석의 목적은 무엇입니까?

<p>시스템의 강점, 약점, 기회 및 위협 식별 (D)</p> Signup and view all the answers

설계 단계에서 시스템의 동작을 결정할 때 고려해야 할 요소는 무엇입니까?

<p>UI, 입력 양식, 보고서, 프로그램, 데이터베이스, 파일 (B)</p> Signup and view all the answers

구현 단계의 주요 작업으로 가장 적절한 것은 무엇입니까?

<p>구축 또는 컴포넌트 통합으로 설계를 현실화 (A)</p> Signup and view all the answers

소프트웨어 개발 방법론의 정의로 가장 적절한 것은 무엇입니까?

<p>소프트웨어 개발 생명 주기(SDLC)를 구현하기 위하여 따라야 할 가이드라인이나 정형화된 접근 방법 (D)</p> Signup and view all the answers

CASE (Computer-aided Software Engineering) 도구의 주요 기능은 무엇입니까?

<p>설계, 구현, 유지보수, 테스트 등 소프트웨어 산출물 생산에 도움을 주는 소프트웨어(툴) (C)</p> Signup and view all the answers

소프트웨어 프로세스의 정의로 가장 적절한 것은 무엇입니까?

<p>소프트웨어를 개발해 나가는 단계나 과정 (C)</p> Signup and view all the answers

Code-and-Fix 모델의 주요 특징은 무엇입니까?

<p>생명 주기가 없음 (A)</p> Signup and view all the answers

폭포수 모델(Waterfall model)의 주요 특징은 무엇입니까?

<p>각 단계가 다음 단계 시작 전에 끝나야 함 (D)</p> Signup and view all the answers

폭포수 모델이 적합한 경우는 언제입니까?

<p>단순하거나 응용 분야를 잘 알고 있는 경우 (B)</p> Signup and view all the answers

폭포수 모델의 단점으로 가장 적절한 것은 무엇입니까?

<p>프로토타입과 재사용의 기회가 줄어듦 (B)</p> Signup and view all the answers

프로토타입 모델(Prototyping model)의 주요 목적은 무엇입니까?

<p>사용자의 요구를 더 정확히 추출 (C)</p> Signup and view all the answers

프로토타입 모델의 단점으로 가장 적절한 것은 무엇입니까?

<p>오해, 기대심리 유발, 관리가 어려움(중간 산출물 정의가 난해) (B)</p> Signup and view all the answers

스파이럴 모델(Spiral model)의 주요 특징은 무엇입니까?

<p>여러 버전으로 나누어 순차적으로 개발 (B)</p> Signup and view all the answers

스파이럴 모델의 장점으로 가장 적절한 것은 무엇입니까?

<p>사전 위험 분석을 통한 돌출 위험 요소 감소 (D)</p> Signup and view all the answers

애자일 모델(Agile model)의 핵심 가치로 가장 적절한 것은 무엇입니까?

<p>의사소통, 단순함, 피드백, 격려 (A)</p> Signup and view all the answers

애자일 모델의 주요 목표는 무엇입니까?

<p>과도한 모델링과 문서화의 짐을 과감히 생략하고 개발에 집중 (A)</p> Signup and view all the answers

시스템 개발 환경에 따라 개발 모델을 선택할 때 고려해야 할 요소가 아닌 것은?

<p>팀 구성원의 선호도 (A)</p> Signup and view all the answers

프로젝트 팀 구성원의 역할 중 시스템 분석가(소프트웨어 설계자)의 주요 기능은 무엇입니까?

<p>시스템 개발에서 제기된 이슈를 다룸 (B)</p> Signup and view all the answers

품질 보증(QA) 담당자의 주요 역할은 무엇입니까?

<p>품질 관점에서 모든 결과물을 체크 (D)</p> Signup and view all the answers

데이터베이스 관리자(DBA)의 주요 역할로 가장 적절한 것은 무엇입니까?

<p>데이터베이스 설계 관리 (D)</p> Signup and view all the answers

Signup and view all the answers

Flashcards

SDLC란?

소프트웨어 개발의 단계를 계획, 분석, 설계, 구현으로 나누어 관리하는 것

소프트웨어 시스템 분석이란?

소프트웨어 시스템이 무엇을 해야 하는지 자세히 이해하고 명세하는 작업

소프트웨어 시스템 설계란?

소프트웨어 시스템을 어떻게 구현해야 하는지 자세히 나타내는 작업

소프트웨어 설계자란?

소프트웨어 개발에서 중요한 역할을 담당하며, 분석 및 설계 기술을 사용하는 전문가

Signup and view all the flashcards

소프트웨어 개발 과정이란?

요구사항을 반영한 기본 컨셉에서 시작하여 설계도에 따라 개발하는 과정

Signup and view all the flashcards

소프트웨어 개발 방법론이란?

소프트웨어 개발을 위해 따라야 할 가이드라인이나 정형화된 접근 방법

Signup and view all the flashcards

소프트웨어 프로세스란?

소프트웨어를 개발해 나가는 단계나 과정

Signup and view all the flashcards

Waterfall 모델이란?

각 단계가 다음 단계 시작 전에 완료되어야 하는 순차적 모델

Signup and view all the flashcards

Prototyping 모델이란?

사용자의 요구를 정확히 추출하고 시험 제작하는 모델

Signup and view all the flashcards

Spiral 모델이란?

여러 버전으로 나누어 순차적으로 개발하는 모델

Signup and view all the flashcards

Agile 모델이란?

과도한 모델링과 문서화를 생략하고 개발에 집중하는 방법

Signup and view all the flashcards

시스템 분석가의 역할은?

시스템 개발에서 제기된 이슈를 다루고 비즈니스 프로세스를 개선하는 역할

Signup and view all the flashcards

사용자 지원 담당의 역할은?

기술적 정보 제공, 교육, 생산성 지원 등을 담당하는 역할

Signup and view all the flashcards

품질 보증(QA) 담당의 역할은?

품질 관점에서 모든 결과물을 체크하고 테스트하는 역할

Signup and view all the flashcards

데이터베이스 관리자(DBA)의 역할은?

데이터베이스 설계 관리, 보안, 백업 등을 담당하는 역할

Signup and view all the flashcards

네트워크 관리자의 역할은?

네트워크 장비의 관리 및 유지보수를 담당하고 보안을 책임지는 역할

Signup and view all the flashcards

Study Notes

학습 목표

  • 소프트웨어 개발 생명 주기 (SDLC)
  • 소프트웨어 개발 방법론
  • 소프트웨어 개발 프로세스
  • 소프트웨어 프로젝트 팀

소프트웨어 분석 및 설계

  • 소프트웨어 시스템 분석은 정보 시스템이 무엇을 해야 하는지 자세히 이해하고 명세에 나타내는 작업
  • 소프트웨어 시스템 설계는 정보 시스템을 어떻게 구현해야 하는지 자세히 나타내는 작업

소프트웨어 설계 및 분석의 중요성

  • 고객이 설명한 요구 사항, 분석을 통해 이해한 요구 사항, 그리고 설계된 요구 사항 간에는 차이가 발생

IT 프로젝트 실패 사례

  • McDonald's의 혁신 프로젝트: 글로벌 ERP 애플리케이션 개발, 120여 개국의 3만여 매장 연결
  • 영국 국가 보건 서비스 IT 현대화 프로젝트: 2년 지연, 100억 달러 추가 투입, 인터페이스 문제, 의료 서비스 중단
  • 덴버 공항의 자동 수하물 처리 시스템: 짐 카트와 시스템 간의 동기화 문제
  • KT의 고객 통합 시스템: 외주 관리 및 통합 문제로 인해 수백억 원 투자에도 실패

소프트웨어 설계자

  • 소프트웨어 개발에서 중요한 역할을 담당
  • 비즈니스 요구 사항(needs)을 충족하기 위해 분석 및 설계 기술을 사용하는 전문가
  • 목표는 소프트웨어를 사용하는 기관에 이익을 가져다주는 가치를 창출하는 것
  • 소프트웨어는 단순한 도구가 아닌 기업이나 기관 경영 목표 달성을 돕는 통합 요소

소프트웨어 설계 목표

  • 멋진 소프트웨어(시스템)보다 기관의 가치 창출
  • 비즈니스 목표 달성

일반적인 시스템 개발 과정

  • 소프트웨어 개발은 건축과 유사함
  • 요구 사항을 반영한 기본 개념(concept)에서 시작하여 설계도에 따라 개발
  • 시스템 개발 과정은 기본적으로 4단계로 구성: 계획, 분석, 설계, 구현
  • 각 단계별 산출물을 바탕으로 개발 과정을 점진적으로 구체화

계획 (Planning)

  • Information System을 구축해야 하는 이유를 이해
  • 프로젝트 팀이 앞으로 어떻게 진행할지 결정
  • 타당성 분석 (validity analysis): 기술적, 경제적, 조직적 타당성
  • 작업 계획 수립, 팀 조직 수립, 프로젝트 관리 계획
  • 프로젝트 계획서 작성

분석 (Analysis)

  • 질문: 누가, 언제 시스템을 사용하는가? 시스템이 무엇을 해야 하는가? (기능)
  • 작업: 분석 전략 수립, SWOT 분석, 현재 시스템(as-is system) 및 새로운 시스템(to-be system) 분석
  • 요구 수집: 인터뷰 또는 설문
  • 문서화: 제안서 작성

설계 (Design)

  • 시스템을 어떻게 구축할 것인가? (시스템이 어떻게 동작하는지 결정)
  • 시스템의 동작 결정: UI, 입력 양식, 보고서, 프로그램, 데이터베이스, 파일
  • 설계 전략 수립: 사내 프로그래머 개발 또는 아웃소싱
  • 아키텍처 설계: 소프트웨어 아키텍처, 인터페이스 설계
  • 데이터 설계: DB와 파일 설계
  • 프로그램 설계

구현 (Implementation)

  • 구축 또는 컴포넌트 통합으로 설계를 현실화
  • 작업 단계: 시스템 구축 및 부분 테스트, 시스템 설치 및 전환, 지원 계획

소프트웨어 개발 방법론 (Methodology)

  • 소프트웨어 개발 생명 주기(SDLC)를 구현하기 위해 따라야 할 가이드라인 또는 정형화된 접근 방법
  • 방법론은 기술, 모델, 도구로 구성
    • 모델: 실세계를 특정한 관점으로 표현한 것 (예: 흐름도, 자료 흐름도, 아키텍처, 유스케이스 다이어그램)
    • 도구: 설계, 구현, 유지 보수, 테스트 등 소프트웨어 산출물 생산에 도움을 주는 소프트웨어(툴)인 CASE(Computer-aided Software Engineering)
    • 기술: 개발 작업을 완성할 수 있도록 도움을 주는 가이드라인 (예: 프로젝트 관리 기술, 객체 지향 분석 설계 기술, 테스트 기술 등)

소프트웨어 프로세스 모델

  • 소프트웨어를 개발해 나가는 단계나 과정 (컨셉트를 정하는 것부터 소멸될 때까지)
  • 몇 달 또는 몇 년이 걸릴 수 있음
  • 각 단계의 목표는 명확한 작업 단계, 손에 잡히는 결과, 작업의 검토, 다음 단계의 명시
    • Code-and-Fix: 생명 주기가 없음

Waterfall 모델

  • 각 단계가 다음 단계 시작 전에 완료되어야 함
    • 순차적 진행, 단계 간 중복이나 상호 작용이 없음
    • 각 단계의 결과는 다음 단계 시작 전에 점검
    • 바로 전 단계로 피드백 가능
  • 단순하거나 응용 분야를 잘 알고 있는 경우 적합
  • 한 번의 과정으로 비전문가가 사용할 시스템 개발에 적합
  • 장점
    • 프로세스가 단순하여 초보자가 쉽게 적용 가능
    • 중간 산출물이 명확하여 관리하기 용이
    • 코드 생성 전 충분한 연구와 분석 단계
  • 단점
    • 초기 단계가 지나치게 강조되면 코딩 및 테스트 지연
    • 단계별 전환에 많은 노력 소요
    • 프로토타입과 재사용 기회 감소
    • 불필요한 문서 생성 가능성
  • 적용
    • 이미 잘 알고 있는 문제나 연구 중심 문제에 적합
    • 변경 사항이 적은 프로젝트에 적합
  • 폭포수 모델의 변형: 대규모 시스템을 쪼개어 병렬로 진행하는 병렬 개발 모형

프로토타이핑 모델 (Prototyping model)

  • 프로토타입(quick and dirty) 적용
    • 사용자 요구를 정확히 추출
    • 알고리즘 타당성, 운영체제와의 조화, 인터페이스 시험 제작
  • 프로토타이핑 도구: 화면 생성기, 비주얼 프로그래밍, 4세대 언어 등
  • 공동의 참조 모델
  • 사용자와 개발자 간 의사 소통을 돕는 매개체
  • 프로토타입의 목적
    • 단순한 요구 추출 후 폐기
    • 제작 가능성 확인 후 개발 단계에서 유지 보수
  • 단점
    • 오해 및 기대 심리 유발, 관리의 어려움 (중간 산출물 정의가 어려움)
  • 적용
    • 개발 착수 시 요구 사항이 불명확할 때
    • 혁신적인 기술을 사용해 보고 싶을 때

스파이럴 모델 (Spiral model)

  • 여러 버전으로 나누어 순차적으로 개발
  • 장점
    • 사전 위험 분석을 통해 위험 요소 감소
    • 유용한 시스템을 빠른 기간 내에 사용자에게 제공
    • 중요한 추가 요구 사항의 조기 발견
  • 단점
    • 반복적 개발로 인한 프로젝트 기간 연장 가능성
    • 반복 횟수 증가에 따른 프로젝트 관리의 어려움

애자일 모델 (Agile model)

  • Heavy한 프로세스를 지양
    • 과다한 단계 및 문서 생략
    • 코드가 나오기까지 시간 단축
  • 과도한 모델링과 문서화의 짐을 과감히 생략하고 개발에 집중
    • Extreme Programming, Scrum, DSDM
  • Extreme Programming의 핵심 가치: 의사 소통, 단순함, 피드백, 격려

개발 모델 선택

  • 개발 환경 및 요구 사항에 따라 Waterfall, Parallel, Prototyping, Spiral, Agile 등을 선택

프로젝트 팀 역할

  • 프로젝트 관리자, 시스템 분석가, 프로그래머, 사용자 지원, 품질 보증(QA), DB 관리자, 네트워크 관리자 등으로 구성
  • 시스템 분석가(소프트웨어 설계자)
    • 시스템 개발에서 제기된 이슈 처리
    • 비즈니스 프로세스 개선
    • 분석 및 설계 작업
  • 사용자 지원
    • 기술적 정보 제공, 교육, 생산성 지원, 헬프 데스크 운영
  • 품질 보증
    • 품질 관점에서 모든 결과물을 체크, 테스트 수행, 개발과 독립적 운영
  • 데이터베이스 관리자(DBA)
    • 데이터베이스 설계 관리, 보안 및 백업 관리, 사용자 접근 제어, 데이터베이스 튜닝
  • 네트워크 관리자
    • 네트워크 장비 관리 및 유지 보수, 보안 관리

소프트웨어 프로젝트 실패 원인

  • 대규모 소프트웨어 개발 프로젝트에서는 실패 사례가 많으므로, 실패 사례들을 찾아 원인을 분석해야 함

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

Related Documents

More Like This

Use Quizgecko on...
Browser
Browser