도담도담

2.소프트웨어 개발 (정처기 공부) 본문

IT 공부/개인정리

2.소프트웨어 개발 (정처기 공부)

Zinisang 2022. 3. 28. 14:41

인터넷으로 공부하면서 나중에 훑어보려고 적는 노트

2.소프트웨어 개발


테스트용어

테스트 스텁 - 제어 모듈이 호출하는 타 모듈의 기능을 단순히 수행하는 도구로, 일시적으로 필요한 조건만을 가지고 있는 테스트용 모듈
테스트 슈트 - 테스트 대상 컴포넌트나 모듈, 시스템에 사용되는 테스트 케이스의 집합
테스트 케이스 - 사용자의 요구사항을 정확히 준수했는지 확인하기 위한 입력 값, 실행조건, 기대결과 등으로 만들어진 테스트 항목의 명세서

 

프로젝트 관리

-프로젝트 관리는 주어진 기간 내에 최소의 비용으로 사용자를 만족시키는 시스템을 개발하기 위한 전반적인 활동
-프로젝트 관리는 소프트웨어 개발 계획을 세우고 분석, 설계, 구현 등의 작업을 통제하는 것으로 소프트웨어 생명 주기의 전 과정에 걸쳐 진행됨
-소프트웨어 프로젝트를 성공적으로 수행하기 위해서는 수행할 작업의 범위, 필요한 자원, 수행 업무, 이정표, 비용 추진 일정들을 알아야 함
    - 소요인력은 최소화 하는 것이 좋음
* 프로젝트 관리는 제한된 시간과 비용으로 좋은 품질의 시스템을 개발하여 고객에게 제공함

 

정형기술검토(FTR)의 지침

- 오류 검출에 초점을 두고 해결책을 나중으로 미룸(제품 검토의 집중성)
- 검토를 위한 자료를 사전에 배포하여 검토하도록 한다(사전 준비성)
- 의견을 제한하되 충분히 받아들인다(의제의 제한성)
- 안건을 세우면 고수한다(안건 고수성)
- 논쟁과 반박을 제한한다(논쟁 반박의 제한성)
- 문제 영역을 공개한다(문제 공개성)
- 참가자의 수를 제한한다(참가 인원의 제한성)
- 발견된 오류는 문서화한다(문서성)

 

소프트웨어 재공학의 주요 활동

Analysis: 기존 소프트웨어를 분석하여 재공학 대상을 선정하는 것
Migration: 기존 소프트웨어를 다른 운영체제나 하드웨어 환경에서 사용할 수 있도록 변환하는 작업
Restructuring: 기존 소프트웨어를 향상시키기 위하여 코드를 재구성하는 작업(기능과 외적 동작은 변하지 않음)
Reverse Engineering: 기존 소프트웨어를 분석하여 소스코드를 얻어내는 작업(소스코드로 소프트웨어를 만드는 작업의 역작업)

 

소프트웨어 패키징

-소프트웨어 패키징은 소비자 중심으로 진행한다.
-신규 및 변경 개발소스를 식별하고, 이를 모듈화하여 상용제품으로 패키징한다.
-범용 환경에서 사용이 가능하도록 일반적인 배포 형태로 패키징이 진행된다.
-고객의 편의성을 위해 매뉴얼 및 버전관리를 지속적으로 한다.

 

자료 구조의 분류

-비선형 구조 : 트리, 그래프
-선형 구조 : 스택, 큐, 데크, 리스트
-파일 구조 : 순차파일, 색인파일, 직접파일

 

소프트웨어의 재사용

**소프트웨어 재사용함으로써 얻을 수 있는 이점들**
1. 개발 시간과 비용 단축
2. 소프트웨어 품질 및 생산성 향상
3. 프로젝트 실패 위험 감소
4. 시스템 구축 방법에 대한 지식 공유

**소프트웨어 재사용함으로써 얻을 수 있는 문제점들**
1. 재사용할 소프트 웨어 선정 필요
2. 시스템에 공통적으로 사용되는 요소 발견 필요
3. 프로그램의 표준화 부족
4. 새로운 개발 방법론 도입이 어려움
5. 재사용을 위한 관리 및 지원 부족
6. 기존 소프트웨어에 재사용 소프트웨어를 추가하기 어려움

 

인터페이스 간의 통신

JSON(Javascript Object Notation)
속성-값 쌍 또는 “키-값 쌍”으로 이루어진 데이터 오브젝트를 전달하기 위해 인간이 읽을 수 있는 텍스트를 사용하는 개방형 표준 포맷, AJAX에서 많이 사용되고 XML을 대체하는 주요 데이터 포맷

XML(Extensible Markup Language)
HTML의 단점을 보완한 인터넷 언어, SGML의 복잡한 단점을 개선한 특수한 목적을 갖는 마크업 언어

AJAX(Asynchronous Javascript And XML)
자바스크립트를 사용하여 웹 서버와 클라이언트 간 비동기적으로 XML 데이터를 교환하고 조작하기 위한 웹 기술, XMLHttpRequest 객체를 이용해 전체 페이지를 새로 로드하지 않고 필요한 부분만 로드한다.

REST(Representational State Transfer)
⦁  웹과 같은 분산 하이퍼미디어 환경에서 자원의 존재/상태 정보를 표준화된 HTTP 메서드로 주고받는 웹 아키텍처 (리소스, 메서드, 메시지)
⦁  HTTP URI를 통해 자원을 명시하고, HTTP 메서드(POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 생성, 조회, 갱신, 삭제 등의 명령을 적용할 수 있는 분산 하이퍼미디어 시스템을 위한 소프트웨어 아키텍처이다.

 

NS-Chart(Nassi-Schneiderman Chart)

- 3가지 기본구조만으로 논리를 표현(표준화 가능)
- Flow Chart의 최대 단점인 화살표가 표시되지 않음
- 기본구조의 입구와 출구는 각 하나씩
- 전체적인 알고리즘을 일목요연하게 볼 수 있음

 

스택연산

순서가 A, B, C, D로 정해진 입력자료를 push, push, pop, push, push, pop, pop, pop 순서로 스택연산을 수행하는 경우 출력 결과는?

스택연산 : 입구 및 출구가 하나 A B C D 순으로 입력되었을때 출력순서는 D C B A 순
push 입력 pop 출력
push A
push A B
pop_ A / B
push A C / B
push A C D / B
pop_ A C / B D
pop_ A / B D C
pop_ / B D C A

 

코드 인스펙션

- 결함 뿐만 아니라 모든 것이 표준대로 되어 있는 지 확인하기 위한 검토
- 표준이나 명세서에 서술항 내용과 비교하여 편차와 에러를 식별하기 위해 산출물을 근거로 수행하는 검사
- 정적 테스트에 가까움

 

ISO/IEC 25000

- ISO 9126, ISO 14598. ISO 12119의 여러 표준 문서를 통합하고 재구성하여 만든 표준 문서
- SQuaRE(Software Quality and Requirement Evaluation)라고도 함
- 2500n, 2501n, 2502n, 2503n, 2504n의 다섯가지 분야로 나눌수 있고, 확장 분야인 2505n이 있다.
- 2500n (9126-1, 품질 관리 지침)
    - SQuaRE에 대한 개요, 전체에 대한 계획과 관리
- 2501n (9126-2, 품질 모형)
    - 품질 모델 및 품질 사용 안내
- 2503n (9126-3, 품질 측정)
    - 매트릭을 통한 측정 방법 제시
- 2504n (9126-4, 품질 정의(요구사항))
    - 품질 요구사항
- 2505n (9126-5, 품질 평가)
    - 품질 프로세스에 관한 개요, 관점들의 평가 프로세스

Comments