Podcast
Questions and Answers
소프트웨어 개발 수명 주기(SDLC)의 주요 목표는 무엇입니까?
소프트웨어 개발 수명 주기(SDLC)의 주요 목표는 무엇입니까?
- 하드웨어 구매 비용을 최소화합니다.
- 마케팅 전략을 최적화합니다.
- 소프트웨어 개발 프로세스를 관리하고 개선합니다. (correct)
- 최종 사용자 교육 시간을 단축합니다.
시스템 분석 단계에서 주로 수행되는 작업은 무엇입니까?
시스템 분석 단계에서 주로 수행되는 작업은 무엇입니까?
- 데이터베이스 스키마 설계
- 사용자 인터페이스 디자인
- 정보 시스템이 무엇을 해야 하는지 이해하고 명세로 나타내는 작업 (correct)
- 소프트웨어 코드 작성
소프트웨어 설계 단계의 주요 목표는 무엇입니까?
소프트웨어 설계 단계의 주요 목표는 무엇입니까?
- 프로젝트 예산 결정
- 최종 사용자 교육 일정 계획
- 하드웨어 및 소프트웨어 요구 사항 식별
- 정보 시스템을 어떻게 구현해야 하는지 자세히 나타내는 작업 (correct)
IT 프로젝트 실패의 예시로 제시된 맥도날드 프로젝트에서 드러난 문제점은 무엇입니까?
IT 프로젝트 실패의 예시로 제시된 맥도날드 프로젝트에서 드러난 문제점은 무엇입니까?
소프트웨어 설계자의 주요 역할로 가장 적절한 것은 무엇입니까?
소프트웨어 설계자의 주요 역할로 가장 적절한 것은 무엇입니까?
성공적인 소프트웨어 디자인의 핵심 목표는 무엇입니까?
성공적인 소프트웨어 디자인의 핵심 목표는 무엇입니까?
일반적인 시스템 개발 과정의 4단계는 무엇입니까?
일반적인 시스템 개발 과정의 4단계는 무엇입니까?
계획 단계에서 프로젝트 팀이 결정해야 하는 사항으로 가장 적절한 것은 무엇입니까?
계획 단계에서 프로젝트 팀이 결정해야 하는 사항으로 가장 적절한 것은 무엇입니까?
타당성 분석(validity analysis)에서 고려해야 할 요소는 무엇입니까?
타당성 분석(validity analysis)에서 고려해야 할 요소는 무엇입니까?
분석 단계에서 수행되는 SWOT 분석의 목적은 무엇입니까?
분석 단계에서 수행되는 SWOT 분석의 목적은 무엇입니까?
설계 단계에서 시스템의 동작을 결정할 때 고려해야 할 요소는 무엇입니까?
설계 단계에서 시스템의 동작을 결정할 때 고려해야 할 요소는 무엇입니까?
구현 단계의 주요 작업으로 가장 적절한 것은 무엇입니까?
구현 단계의 주요 작업으로 가장 적절한 것은 무엇입니까?
소프트웨어 개발 방법론의 정의로 가장 적절한 것은 무엇입니까?
소프트웨어 개발 방법론의 정의로 가장 적절한 것은 무엇입니까?
CASE (Computer-aided Software Engineering) 도구의 주요 기능은 무엇입니까?
CASE (Computer-aided Software Engineering) 도구의 주요 기능은 무엇입니까?
소프트웨어 프로세스의 정의로 가장 적절한 것은 무엇입니까?
소프트웨어 프로세스의 정의로 가장 적절한 것은 무엇입니까?
Code-and-Fix 모델의 주요 특징은 무엇입니까?
Code-and-Fix 모델의 주요 특징은 무엇입니까?
폭포수 모델(Waterfall model)의 주요 특징은 무엇입니까?
폭포수 모델(Waterfall model)의 주요 특징은 무엇입니까?
폭포수 모델이 적합한 경우는 언제입니까?
폭포수 모델이 적합한 경우는 언제입니까?
폭포수 모델의 단점으로 가장 적절한 것은 무엇입니까?
폭포수 모델의 단점으로 가장 적절한 것은 무엇입니까?
프로토타입 모델(Prototyping model)의 주요 목적은 무엇입니까?
프로토타입 모델(Prototyping model)의 주요 목적은 무엇입니까?
프로토타입 모델의 단점으로 가장 적절한 것은 무엇입니까?
프로토타입 모델의 단점으로 가장 적절한 것은 무엇입니까?
스파이럴 모델(Spiral model)의 주요 특징은 무엇입니까?
스파이럴 모델(Spiral model)의 주요 특징은 무엇입니까?
스파이럴 모델의 장점으로 가장 적절한 것은 무엇입니까?
스파이럴 모델의 장점으로 가장 적절한 것은 무엇입니까?
애자일 모델(Agile model)의 핵심 가치로 가장 적절한 것은 무엇입니까?
애자일 모델(Agile model)의 핵심 가치로 가장 적절한 것은 무엇입니까?
애자일 모델의 주요 목표는 무엇입니까?
애자일 모델의 주요 목표는 무엇입니까?
시스템 개발 환경에 따라 개발 모델을 선택할 때 고려해야 할 요소가 아닌 것은?
시스템 개발 환경에 따라 개발 모델을 선택할 때 고려해야 할 요소가 아닌 것은?
프로젝트 팀 구성원의 역할 중 시스템 분석가(소프트웨어 설계자)의 주요 기능은 무엇입니까?
프로젝트 팀 구성원의 역할 중 시스템 분석가(소프트웨어 설계자)의 주요 기능은 무엇입니까?
품질 보증(QA) 담당자의 주요 역할은 무엇입니까?
품질 보증(QA) 담당자의 주요 역할은 무엇입니까?
데이터베이스 관리자(DBA)의 주요 역할로 가장 적절한 것은 무엇입니까?
데이터베이스 관리자(DBA)의 주요 역할로 가장 적절한 것은 무엇입니까?
Flashcards
SDLC란?
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 모델이란?
Waterfall 모델이란?
Signup and view all the flashcards
Prototyping 모델이란?
Prototyping 모델이란?
Signup and view all the flashcards
Spiral 모델이란?
Spiral 모델이란?
Signup and view all the flashcards
Agile 모델이란?
Agile 모델이란?
Signup and view all the flashcards
시스템 분석가의 역할은?
시스템 분석가의 역할은?
Signup and view all the flashcards
사용자 지원 담당의 역할은?
사용자 지원 담당의 역할은?
Signup and view all the flashcards
품질 보증(QA) 담당의 역할은?
품질 보증(QA) 담당의 역할은?
Signup and view all the flashcards
데이터베이스 관리자(DBA)의 역할은?
데이터베이스 관리자(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.