(방송통신대 소프트웨어공학 중간과제물)교재에서 설명되지 않은 린(Lean) 소프트웨어 개발 방법에 관해 관련 문헌이나 인터넷상의 자료를 찾아 조사하여 정리하라 짝 프로그래밍이란 무엇인가 결함 테스팅과 검증 테스팅의 차이
본 자료는 3페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
해당 자료는 3페이지 까지만 미리보기를 제공합니다.
3페이지 이후부터 다운로드 후 확인할 수 있습니다.

소개글

(방송통신대 소프트웨어공학 중간과제물)교재에서 설명되지 않은 린(Lean) 소프트웨어 개발 방법에 관해 관련 문헌이나 인터넷상의 자료를 찾아 조사하여 정리하라 짝 프로그래밍이란 무엇인가 결함 테스팅과 검증 테스팅의 차이에 대한 보고서 자료입니다.

목차

문1 (20점)
교재에서 설명되지 않은 ‘린(Lean) 소프트웨어 개발 방법’에 관해 관련 문헌이나 인터넷상의 자료를 찾아 조사하여 A4 용지 1.5~3쪽 (글자 크기 12pt, 줄간격 160%) 분량으로 알기 쉽게 정리하라.

1. 개요
2. 린 원칙들
1) 낭비를 제거하라 2) 배움을 증폭하라 3) 가능한 늦게 결정하라
4) 최대한 빨리 납품하라 5) 팀에 권한을 위임하라 6) 통합성을 구축하라
7) 전체를 보라
3. 참고문헌

문2 (각 5점)
다음 질문 2개를 각각 5~10줄 분량으로 명확하게 답하라.
(a) 짝 프로그래밍이란 무엇인가?
b) 결함 테스팅과 검증 테스팅의 차이는 무엇인가?
(c) 참고문헌

본문내용

짝 프로그래밍은 비정형적인 검토 프로세스로 동작한다. 코드 검사(inspection)와 코드 검토(review)는 높은 비율의 소프트웨어 오류를 발견하는 데 매우 성공적이다. 그러나 코드 검사와 코드 검토를 진행하는 데 시간이 소모되어, 일반적으로 개발 프로세스가 지연된다. 짝 프로그래밍은 아마도 매우 많은 오류들을 발견하지 못하는 정형화된 프로세스인 반면에, 정형화된 프로그램 검사보다는 훨씬 비용이 저렴한 검사 프로세스이다.
● 짝 프로그래밍은 소프트웨어 개선 프로세스인 리팩토링을 지원한다. xp의 원리는 소프트웨어는 지속적으로 리팩토링되어야 한다는 것이다. 즉, 코드의 명료성이나 구조를 개선하기 위해 코드의 일부가 재작성되어야 한다. 이것을 보통의 개발환경에서 구현하기가 어려운 이유는 장기간 이익을 얻기 위해서는 코드를 확장하는 노력이 필요하다는 점과, 리팩토링을 실시하는 개인은 단순히 코드를 개발하는 사람에 비해 덜 효율적으로 판단할 수 있다는 점 때문이다.. 짝 프로그래밍은 공동 소유권이 사용되는 곳에서 다른 사람들은 리팩토링을 통해 즉각적인 이익을 얻을 수 있으므로 짝 프로그래밍 프로세스를 지원하는 경향이 있다.
(b) 결함 테스팅과 검증 테스팅의 차이는 무엇인가?
결함 테스트(defect testing)는 소프트웨어 시스템을 고객에게 전달하기 전에 시스템에 숨어 있을 수 있는 결함을 찾고자 하는 것으로 좁은 의미의 테스트에 해당한다. 달리 말하면, 결함 테스팅은 시스템의 운영을 시뮬레이션 하는 것이 아니라 시스템 내의 결점을 찾아내는 시험이다. 결함 테스트의 목표는 프로그램과 명세서 사이의 불일치를 찾는 것이다. 결함 테스트는 소규모 코드를 확인(verify)하기 위한 저수준 테스트라고 할 수 있다.
이와 달리 인수(acceptance) 테스트는 시스템이 주어진 요구 명세를 만족하는지를 고객에게 보이려는 의도로 수행된다. 인수 테스트는 주요 시스템 기능을 검증(validate) 하기 위한 검증 테스트이며 고수준 테스트이다. 검증 테스팅은 소프트웨어가 고객인 원하는 것인지, 즉 요구상항을 만족시키는 것인지를 입증하는 시험이다. 검증 테스팅은 검증 시험의 일환으로 프로그램 성능과 신뢰성을 시험하고 운영 조건 내에서 시스템이 어떻게 동작하는지 점검하기 위해 통계적 시험을 이용한다.
다만, 검증 테스트 중에 시스템의 결합을 발견할 수 있고, 결함 테스트 중의 어떤 시험이 프로그램이 명세서를 만족시킨다는 것을 보일 수도 있다.
참고로 오류, 결함, 고장을 구별하면 테스트 작업에 도움이 된다. 오류(erroe)는 개발자가 잘못하여 설계나 코딩에 실수한 것이다. 프로그램의 출력과 예상하는 출력에 차이가 있다면 오류로 간주된다. 오류가 있는 경우 결함(defect)이 발생한다. 결함은 시스템이 고장을 일으키게 하는 오류의 결과라고 할 수 있다. 고장(failure)은 시스템이 원하는 작업을 수행할 수 없는 상황을 말한다. 시스템에 결함이 있다면 고장이 발생한다.
오류는 제품에 결함이 있도록 만든 사람의 실수이다. 결함은 코드나 문서에 오류가 있다고 선언된 것으로 생각할 수 있다. 고장은 잘못된 결과이다. 즉, 고장은 프로그램의 실제 동작이 예상된 동작과 다를 때 일어나는 현상이다. 고장이 없더라도 결함이 있을 수 있다. 프로그램에는 사용자에게 영향을 미치지 않는 결함이 있을 수 있는 것이다. 프로그램의 고장은 오류가 있음을 나타내는 명백한 증상이지만 고장이 일어났다고 반드시 결함으로 발견되지 않을 수 있다. 입력에 오류가 없고 프로그램에 오류가 많지만 고장을 일으키지 않을 수도 있다.
흔히 테스트 프로세스가, 오류가 없음을 보여 주거나 의도된 기능이 정확하게 수행됨을 보이기 위한 것으로 생각한다. 그러나 테스트를 할 때는 대상 소프트웨어에 결함의 존재가 가정되어 있으며, 그러한 오류를 발견하고자 한다. 다익스트라(Dijkstra)는 프로그램의 테스트를 통해 버그의 존재를 보일 수는 있지만 버그의 부재를 보일 수는 없다고 말한 바 있다. 따라서 (결함) 테스트는 일종의 공격적인 프로세스로. 생각하기 힘든 테스트 케이스가 더 많은 문제점을 발견하게 한다는 점을 알아야 한다. 성공적인 테스트란 발견되지 못했던 결함을 드러내도록 만드는 작업인 것이다.
(c) 참고문헌
김희천(2020). 소프트웨어 공학. 한국방송통신대학교출판문화원.
최은만(2020). 소프트웨어 공학의 모든 것. 생능출판.
Ian Sommerville(2008). 소프트웨어 공학. 홍릉과학출판사.
  • 가격9,000
  • 페이지수9페이지
  • 등록일2022.03.16
  • 저작시기2022.03
  • 파일형식한글(hwp)
  • 자료번호#1165050
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니