끄적이는 기록일지

[컴퓨팅 & 파이썬] 1.2 소프트웨어 생명주기 본문

파이썬(ICDL) 정리

[컴퓨팅 & 파이썬] 1.2 소프트웨어 생명주기

시시나브로 2021. 7. 8. 20:00
728x90
 

[컴퓨팅 & 파이썬] 1.1 컴퓨팅

1.1 컴퓨팅(Computing) - 컴퓨터를 사용하여 정보를 처리하는 절차적 과정 1. 광범위한 목적을 위한 H/W, S/W 시스템 설계 및 구축, 프로세싱(처리), 구조화 및 관리를 포함 2. 다양한 종류의 정보, 컴퓨

kcy51156.tistory.com

 

1.2.1 생명주기 모델(Life cycle)

- 소프트웨어가 개발되고 사용되는 모든 과정

1. 프로그램은 분석, 설계, 구현, 시험 등의 단계를 거치면서 개발

2. 유지보수 : 개발 후 사용하면서 발견되는 문제점 수정하는 작업

3. 폭포수모델, 나선형모델, 단계적개발모델 등

 

  1) 폭포수모델(Waterful Model)

  - 각 단계가 다음 단계 시작 전에 끝나야한다.(대형 프로젝트에 적합)

  - 시간이 오래 걸리고, 중요한 문제점들이 나중에 발견되는 단점이 있다.

  2) 나선형모델(Spiral Model)

  - 각 단계별 작업의 리스크를 분석하고 해결방안을 수립하여 나가는 개발모델

    (대형 프로젝트에 적합)

  - 모델이 복잡하여 프로젝트 관리의 수준 높은 기술이 필요함. 

  3) 단계적 개발모델 : 점증과 반복(스마트폰)

 

1.2.2 프로그램 개발 단계

1. 개발

1) 개발자와 사용자(의뢰인) 의견교환을 통해 개발 계획서 작성

2) 개발 범위, 스케줄, 개발 팀 구성, 비용 산정

3) 개발자는 계획서를 참조하여 프로젝트 진행, 사용자는 계획서를 참조하여 진행상황을 파악

2. 분석(Analysis)

1) 사용자의 요구사항을 토대로 무엇을 개발할 것인가를 파악

2) 요구사항 : 고객의 요구를 만족시키기 위해 시스템이나 구성요소가 가져야할 조건 또는 기능

3) 분석가는 사용자의 요구사항을 파악하여 요구사항 명세서를 만들며 이를 설계 단계의 기초로 제공

ER(Entity Relationship) 다이어그램

유즈케이스도

클래스도

 

교원 관리에 관한 클래스 다이어그램

데이터 흐름도 : 가장 많이 사용

책 주문에 관한 데이터 흐름도

의사결정표

  1 2 3 4
나이 > 21 T T F F
몸무게 > 60 T F T F
약 1 O O    
약 2 O O O O
약 3 O   O  

 

3. 설계Design)

1) 분석 단계에서 나온 산출물을 이용하여 실제로 소프트웨어가 어떻게 구현 될 것인지를 결정

2) 개발될 프로그램의 구조, 모듈(module)의 알고리즘(Algorithm) 등을 생성

3) UML(Unified Modeling Language)

시퀀스 다이어그램(Sequence diagram)

- 객체간의 상호 작용과 작동의 순서

- 객체를 기준으로 하여 작성된 다이어그램

통신 다이어그램(communication diagram)

- 객체간의 상호 작용과 작동의 순서

- 작동순서를 기준으로 하여 작성된 다이어그램

- 시퀀스 다이어그램과 상호교환 가능

활동 다이어그램(activity diagram)

- 모듈이 처리해야 할 일을 표현

- 플로우차트와 매우 유사

4. 구현(Implementation)

1) 설계 문서를 프로그래밍 언어로 변환하는 단계

2) 설계 명세서를 토대로 구현해야 할 모듈을 선택

3) 프로그램 언어 문법에 맞추어 작성

4) 모듈의 선택 순서(상향식, 하향식, 절충식)

코드는 간단명료하게 작성

제어 구조 순차, 선택, 반복(구조적 코딩)

각 모듈은 분명한 한 가지 역할만 수행

각 모듈에 헤더 주석 블록 추가-이름, 작성자, 작성일, 데이터 구조

입출력 자료가 한계 값을 벗어나지 않는지 항상 검사

데이터의 입출력은 따로 모아서 독립된 서브루틴으로 만듦

예외(exception) 상황을 파악하고, 규격화하여 예외를 해결

5. 시험(Test)

1) 소프트웨어의 결함(오류)을 찾아내는 단계

2) 사용자의 요구 사항을 만족하는지 평가

3) 시스템의 품질을 측정

4) 시험의 특징

테스트는 프로그램이 잘 동작한다는 것을 보여주는 것이 아니라, 오류를 발견하기 위한 것

테스트는 창조적인 일이며 힘든 일, 소프트웨어 비용 중 3분의 2가 유지보수에 들어감, 개발 비용 중 반 이상이 테스트 비용

테스트는 구현과 관계없는 독립된 팀에 의해 수행

완벽한 테스트는 불가능

6. 유지보수

1) 소프트웨어가 인수되어 설치된 후 여러가지 이유로 시스템을 변경하는 모든 것

개선은 새로운 프로그램의 기능 추가, 성능 향상, 인터페이스 향상 등을 통하여 더 좋은 프로그램으로 변경

수정은 시스템을 사용하는 과정에서 발견된 오류의 원인을 찾아 코드를 수정

적응은 새로운 자료나 운영체제, 하드웨어 환경으로 이식하기 위하여 코드를 수정

 

예상문제

1. 다음 중 프로그램을 출시한 후 새로운 기능을 추가하는 것과 가장 관련이 있는 것은?

버전

릴리즈

개선

유지보수

 

2. 다음 중 테스팅과 디버깅의 목적을 가장 잘 설명한 것은?

잘 구조화되고 문서화된 코드를 작성하였는지 확인한다.

출시(release) 이후에 프로그램을 향상시키거나 개선할 필요가 없어진다.

코드 전체에 설명적 명명을 사용하였는지 확인한다.

프로그램이 의도한대로 작동하는지 확인한다.

 

3. 다음 중 프로그램의 상세한 요구 사항을 기록한 것과 가장 관계가 있는 것은?

알고리즘

명세서

주석

매뉴얼

 

4. 어떤 도시의 주변 산에 온도와 바람 등을 측정할 수 있는 기후 관측소를 건설하려 한다. 다음 중 이 문제에서 다루어야 할 주요 사항과 가장 관계없는 것을 2개 고르시오.

관측소 위치

관측소에 적합한 건물 유형

사용할 컴퓨터의 종류

사용할 센서의 종류

관측소의 페인트 색

사할 나사의 종류

 

5.온라인으로 야식을 주문하는 시스템을 설계하려 한다. 이 시스템에서 다루어야 할 주요 사항은 무엇인가?

 

6.수학 연산식을 계산하는 프로그램을 제작하려 한다. 여러분이라면 개발자에게 어떤 요구사항을 제시하겠는가?

 

 

정답 : 3/4/2/5,6/야식종류/

728x90
Comments