일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 지도학습 분류
- 퍼셉트론
- 다중선형 회귀
- 항공지연
- 평가용 데이터
- 딥러닝 역사
- 불순도
- 수치 맵핑 기법
- 가중치 업데이트
- 결측값 처리
- 이상치 처리
- LinearRegression 모델
- 수치형 자료
- 경사하강법
- 지도학습
- 데이터 전 처리
- 스케이링
- 알고리즘 기술
- 머신러닝 과정
- 데이터 분리
- 지니 불순도
- 명목형
- 학습용데이터
- 뉴런 신경망
- 웹 크롤링
- 분류 머신러닝 모델
- MSEE
- 회귀 알고리즘 평가
- ICDL 파이썬
- 더미 기법
- Today
- Total
끄적이는 기록일지
[컴퓨팅 & 파이썬] 1.2 소프트웨어 생명주기 본문
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/야식종류/
'파이썬(ICDL) 정리' 카테고리의 다른 글
[파이썬(ICDL) 정리] - [컴퓨팅 & 파이썬] 3. 코드의 기초 - (3)입출력문 (0) | 2021.08.05 |
---|---|
[컴퓨팅 & 파이썬] 3. 코드의 기초 - (2)변수와 데이터 타입 (0) | 2021.08.04 |
[컴퓨팅 & 파이썬] 3. 코드의 기초 (0) | 2021.07.24 |
[컴퓨팅 & 파이썬] 2. 컴퓨팅 사고 - (2)알고리즘 기술 (2) | 2021.07.24 |
[컴퓨팅 & 파이썬] 1.1 컴퓨팅 (0) | 2021.07.08 |