-
[정보처리기사]기사따기16일차_4과목_소프트웨어공학_4_190210자격증/정보처리기사-합 2025. 1. 3. 23:17반응형
# 최초 등록일 : 2025년 1월 3일 23:16
# 최근 변경일 : 2025년 1월 3일 23:16
# 내용 : 정보처리기사 필기 4과목 공부 후 정리한 내용 올리기
이전 기사따기15일차는 아래에 링크로!!
이건 많이 언급되는 단어
이건 내가 궁금한거 쳐봐서 나온 결과
------------------------------------------------------------------------------------------------------------------------------
소프트웨어 유지보수
소프트웨어의 유지보수
1) 유지보수의 이해 : 소프트웨어가 사용자에게 인수, 설치된 이후에 발생하는 모든 공학적인 작업 활동
2) 유지보수 단계의 특징 : 비용이 가장 큰 비중 차지, 명세서를 항상 최신의 상태로 만드는 것, 보완되지 않으면 일관성을 유지하기 어려움
사용자가 유지보수에 관련된 사항이나 전문 지식을 가질 수는 없다.
시험 용이성, 이해성, 수정 용이성, 이식성이 고려되어야 함.
3) 유지보수가 어려운 경우 : 비표준화된 소프트웨어인 경우, 유지보수를 염두에 두지 않고 개발된 소프트웨어,
개발자가 없는 경우, 기록된 문서가 없는 경우, 외계인 코드인 경우
4) 외계인 코드 : Alien Code는 15년전 이전에 개발된 소스 코드
5) 문서화 : Documentation은 개발을 위한 분석 설계가 용이, 유지보수가 용이하고, 확장성이 좋다, 문서화 작업이 표준화되어야 한다.
6) 유지보수 작업의 종류
- 하자보수 : Corrective Maintenance는 소프트웨어 테스팅 동안 밝혀지지 않는 모든 잠재적인 오류를 찾아 수정
- 기능개선 : Perfective Maintnance는 전반적인 기능 개선 등의 요구를 사용자로부터 받았을 때 수행되는 유형
- 환경적응 : Adaptive Maintenance는 소프트웨어를 운용하는 환경 변화에 대응하여 소프트웨어를 변경하는 경우
- 예비조치 : Preventive Maintenance는 추가요구를 미리 예측하여 준비하는 활동
7) 유지보수 비용 측정 방법 : 개발이 모두 종료된 후에 측정, 거의 대부분의 비용을 차지하는 추세
- 주먹구구식 : 개발 비용과 유지보수 비용을 1:1로 보는 방법으로 진부한 방법
- BL 방법(Belady와 Lehman에 의해서 제안한 방법) :* M : 유지보수를 위한 노력
* P : 생산적인 활동에 드는 비용
* K : 통계값에 구한 상수
* c : 복잡도
* d : 소프트웨어에 대한 지식 정도
- COCOMO 방법 :* M : 유지보수를 위한 노력
* ACT : 유지보수 비율
* DE : 생산적인 활동에 드는 비용
* EAF : 노력 조정 수치
- Vessey & Webber 방법 :* M : 생산적인 활동에 드는 비용
* ACT : 유지보수 비율
* KDSI : 1000당 명령어 라인 수
8) 유지보수 부작용
- 코딩 부작용 : 부 프로그램이 삭제, 확인자가 삭제 또는 수정, 파일을 연 후 닫지 않은 경우, 논리 연산자가 삭제,
설계 수정 후 코드를 변경하지 않았을 경우
- 데이터 부작용 : 전역 상수의 재정의, 레코드 구조의 변경, 배열의 크기 변화가 있는 경우, 제어 플래그 변수 수정,
포인터 변수를 수정, 부 프로그램의 매개 변수를 수정
- 문서 부작용 : 원시 코드는 변경하고 문서를 변경하지 않았을 경우
소프트웨어 품질 보증
1) 품질 : Quality는 어떤 사물의 특성 또는 속성을 말한다.
2) 품질 보증 : QA, Quality Assurance는 제품의 설정된 기술적인 요구사항과 일치하는가를 적절하게 확인하는데 필요한
체계적이고도 계획적인 유형의 활동
3) 품질 보증 활동의 목적 : SQA의 목적은 소프트웨어 품질의 향상에 있다.
4) 품질 목표 항목
- 정확성 : Correctness는 사용자의 요구사항을 충족
- 신뢰성 : Reliability는 요구된 기능을 수행하는 시스템 능력의 정도
- 효율성 : Efficiency는 최소한의 컴퓨터 시간과 기억 장소를 소요하여 요구된 기능을 수행
- 무결성 : Integrity는 허용하지 않는 사용이나 자료의 변경을 제어
- 유지보수 용이성 : Maintaiability는 사용자의 기능 변경의 필요성을 만족하기 위하여 소프트웨어를 진화하는 것
- 사용 용이성 : Usability는 소프트웨어를 쉽게 배우고 사용
- 검사 용이성 : Testability는 소프트웨어를 쉽게 검사
- 이식성 : Portability는 다양한 하드웨어 환경에서도 운용 가능하도록 쉽게 수정
- 상호 운용성 : Interoperability는 다른 소프트웨어와 정보를 교환할 수 있는 정도
- 유연성 : Flexibility는 소프트웨어 품질 목표 중 새로운 요구사항에 접하여 쉽게 수정
- 재사용성 : Reusability는 이미 만들어진 프로그램을 사용
소프트웨어 신뢰성 측정
1) 신뢰성 측정의 기본 개념 : 주어진 시간 동안 주어진 환경에서 프로그램이 고장 없이 운영될 확률
과거의 데이터와 개발 시의 데이터를 이용해서 측정, 구현상의 문제 때문에 생김, MTBF로 측정,
최종 사용자는 실패에 관심이 있는 것이지 총 오류 수에는 관심이 없다.
2) 평균 시간의 종류
- 평균 사용 시간 (MTBF) : Mean Time Between Failures는 고장 수리가 끝난 시간부터 다음 고장이 발생할 때까지의 시간 평균치
- 평균 고장 시간 (MTTF) : Mean Time To Failures는 고장이 발생한 시점부터 다음 고장이 발생할 때까지의 평균
- 평균 수리 시간 (MTTR) : Mean Time To Repair은 고장이 일어난 시점부터 고장 수리가 완료되는 시점까지의 평균치
소프트웨어 재공학
소프트웨어 재공학
1) 소프트웨어 재사용 : Software Reuse는 이미 개발된 소프트웨어를 반복 사용하여 생산성을 향상시키는 방법
2) 소프트웨어 재사용의 단위 : 프로그램 모듈이 재사용 단위로 가장 일반화되어 있으며, 모듈(부품)의 크기는 작을수록
재사용 비율이 높다.
- 프로그램 소스 코드, 프로그램의 모듈, 프로그램의 명령어, 요구분석을 형식화하는 기술, 프로그램 전체, 모듈 설계 기술...등
3) 소프트웨어 재사용의 2가지 기본 기술
- 생성 중심 : Generation Based는 재사용 단위를 찾아 발전시키는 기술
- 합성 중심 : Composition Based는 모듈을 생선성 있게 조립하는 기술
4) 소프트웨어 재사용 기술 모델
- 범용 표준 부품화 : 신뢰성 있는 모듈을 개발
- 유틸리티 : 운영체제(OS)를 이용하는 기술을 재사용할 수 있도록 함
- 표준 패키지 : 사용자가 이용하는 프로그램을 재사용할 수 있도록 함
- 지식 데이터베이스 : 재사용 기술로 확립된 모듈이나 부품을 검색하고 조립하는 기술
5) 소프트웨어 재사용의 이점 : 시간과 비용 단축, 프로젝트 실패의 위험을 줄임, 지식을 공유, 품질 향상, 개발의 생산성 높아짐
6) 소프트웨어 재공학 : Software Re-Engineering은 유지보수 문제에서 소프트웨어의 위기를 해결하려고 한 방법
사용하던 소프트웨어를 수명 연장을 위해 효과적으로 사용할 수 있도록 접근하는 기술
- 재공학의 출현 배경 : 유지보수의 생산성으로 해결하기 위해, 유지보수 종류 중에 예비 조치 문제를 해결하기 위한 공학
- 재공학의 정의 : 소프트웨어를 파기하지 않고 변경된 사용자의 요구사항이나 수정된 환경으로 기존 소프트웨어를 수정 및 보완하여 재구축하는 기술, 보다 나은 시스템을 구축하고 새로운 기능을 추가하여 소프트웨어 성능을 향상시키는 기술
현재의 시스템을 재구조화 하는 것, 사용자의 요구사항이나 기술적인 변경 없이 프로그램을 개선하는 것
기존 시스템의 이해도를 높이고 새로운 기법을 구상하는 것, 재분석 작업을 통해 공학적으로 우수한 시스템을 만듬
- 재공학의 특징 : 가장 주된 이유가 유지보수 때문, 예비 조치의 문제를 해결하기 위한 학문, 소프트웨어를 분석 및 수정하는 과정을 포함
많은 비용과 시간 및 자원을 요구, 형식의 변경과 재설계 과정을 포함
- 재공학의 목표 : 품질의 향상, 수명 연장, 비용 감소, 기술 향상, 방법을 연구, 다른 뷰 생성, 정보를 회복, 부작용 발견, 재사용 쉬움
- 소프트웨어 역공학 정의 : 기존 소프트웨어를 분석하여 소프트웨어 개발 과정과 데이터 처리 과정을 설명하는 분석 및 설계 정보를 재발견하거나 다시 만들어 내는 작업
* 코드의 역공학 : Reverse Engineering of Code는 소스 코드로부터 자료 흐름도를 추출하고 분석하여 변경
* 데이터의 역공학 : Reverse Engineering of Data는 소스 코드로부터 자료 사전을 추출하고 분석하여 변경
클라이언트/서버 모델
1) 클라이언트와 서버 모델의 컴포넌트 분포
- 클라이언트와 서버 모델의 요소 : 사용자 상호 작용/프레젠테이션 컴포넌트, 어플리케이션 컴포넌트, 데이터베이스 컴포넌트
- 팻 서버와 팻 클라이언트
* 팻 서버 : Fat Server는 트랜잭션과 그룹웨어 시스템을 설계할 때 사용
* 팻 클라이언트 : Fat Client는 데이터 관리 지원만 제공
2) 미들웨어 : Middleware는 운영체제와 사용자 응용 프로그램 사이에 또는 두 가지 다른 종류의 사용자 응용 프로그램 사이에서
조정 및 중개 역할을 하는 프로그램
- 미들웨어의 특징 : 두 개 이상의 응용 프로그램 간의 데이터를 공유, 웹 서버 간에 연결을 도와줌, 대부분의 사용자 요구는
데이터베이스에 영향을 미침, 병목 현상을 방지하기 위한 체계적인 관리 형식이 필요,
인터넷이나 LAN에서 서버에 접소하는 사용자에 대해서는 인증 작업이 필요함
3) CORBA : Common ORB Architecture는 인터넷이나 LAN에서 각 컴퓨터 간에 통신할 수 있는 객체 프로그램을 쉽게 만들고 사용할
수 있도록 정한 구조 및 표준
- OMG : Object Management Group은 여러 대의 컴퓨터를 연결하여 사용하는 환경하에서 응용 프로그램 간에 기술적인 문제
를 지원하고 표준을 위해 설립된 비영리 단체
- OMG의 목표 : 객체지향 기법을 적용, 공통된 작업 환경을 제공
4) COM : Component Object Model은 MS사가 개발한 객체 응용프로그램 간의 통신 방식, COM은 CORBA에서 정의된 수준의
기능을 제공하는 것을 목표로 하는 표준 규약
5) DCOM : Distributed COM은 MS사의 객체 간 통신 규약인 COM은 인터넷이나 LAN에서 사용하도록 확장한 인터페이스 방식
6) UML : Unified Modeling Language는 요구분석, 설계, 구현 등의 과정에서 사용되는 표준화된 모델링 언어로
대부분 다이어그램으로 표현
- Usecase Diagram은 컴퓨터 시스템과 사용자가 상호작용을 하는 하나의 경우 Actor, Relationship, use case로 구성반응형'자격증 > 정보처리기사-합' 카테고리의 다른 글
[정보처리기사]기사따기18일차_5과목_데이터통신_2_190212 (0) 2025.01.10 [정보처리기사]기사따기17일차_5과목_데이터통신_1_190211 (0) 2025.01.09 [정보처리기사]기사따기15일차_4과목_소프트웨어공학_3_190209 (2) 2025.01.02 [정보처리기사]기사따기14일차_4과목_소프트웨어공학_2_190208 (0) 2024.12.31 [정보처리기사]기사따기13일차_4과목_소프트웨어공학_1_190207 (1) 2024.12.30