[정보처리기사] 정보처리기사 실기 정리 5 (소프트웨어 개발 방법론, S/W 공학의 발전적 추세)

미음제

·

2021. 8. 6. 17:03

Section 20

 

소프트웨어 개발 방법론

 

소프트웨어 개발 방법론

 

소프트웨어 개발, 유지 보수 등에 필요한

여러 가지 일들의 수행 방법과

이러한 일들을 효율적으로 수행하려는 과정에서 필요한

각종 기법 및 도구를 체계적으로 정리하여 표준화한 것.

 

 

* 소프트웨어 개발 방법론의 종류

 

✓ 구조적 방법론

✓ 정보공학 방법론

✓ 객체 지향 방법론

✓ 컴포넌트 기반 방법론(CBD)

✓ 제품 계열 방법론

✓ 애자일 방법론 (Section 1에서 다룸)

 

 

구조적 방법론

 

기능들을 모듈화하고 필요할 때

가져다 쓰는 개념이다.

 

정형화된 분석 절차에 따라

사용자 요구사항을 파악하여 문서화하는

처리(Precess) 중심의 방법론이다.

 

쉬운 이해 및 검증이 가능한 프로그램 코드를

생성하는 것이 목적이다.

 

복잡한 문제를 다루기 위해

분할과 정복(Divide and Conquer) 원리를 적용한다.

 

* 구조적 방법론의 개발 절차

 

구조적 개발 방법론 개발 절차

 

정보공학 방법론

 

정보 시스템의 개발을 위해

계획, 분석, 설계, 구축에 정형화된 기법들을

상호 연관성 있게 통합 및 적용하는

자료(Data) 중심의 방법론이다.

 

대규모 정보 시스템을 구축하는데 적합하다.

 

* 정보공학 방법론의 개발 절차

 

정보공학 방법론 개발 절차

 

객체지향 방법론

 

현실 세계의 개체(Entity)를 기계의 부품처럼

하나의 객체(Object)로 만들어,

소프트웨어를 개발할 때 기계의 부품을 조립하듯

객체들을 조립해서 필요한 소프트웨어를 구현하는 방법론이다.

 

✓ 객체지향 방법론의 구성 요소

 

객체, 클래스, 메시지 등

 

✓ 객체지향 방법론의 기본 원칙

 

캡슐화, 정보 은닉, 추상화, 상속성, 다형성 등

 

* 객체지향 방법론의 개발 절차

 

객체지향 방법론 개발 절차

 

컴포넌트 기반 방법론

(CBD, Component Based Design)

 

기존의 시스템, 소프트웨어를 구성하는

컴포넌트를 조합하여

하나의새로운 애플리케이션을 만드는 방법론이다.

 

컴포넌트의 재사용(Reusability)이 가능해 시간, 노력을 절감할 수 있다.

 

유지 보수 비용을 최소화하고,

생산성 및 품질을 향상할 수 있다.

 

* 컴포넌트 기반 방법론의 개발 절차

 

컴포넌트 기반 방법론 개발 절차

 

제품 계열 방법론

 

특정 제품에 적용하고 싶은 공통된 기능을

정의하여 개발하는 방법론이다.

 

임베디드 소프트웨어를 만드는데 적합하다.

 

영역공학과 응용공학으로 구분된다.

영역 공학 영역 분석, 영역 설계, 핵심 자산을 구현하는 영역이다.
응용 공학 제품 요구 분석, 제품 설계, 제품을 구현하는 영역이다.

 

영역공학과 응용공학의 연계를 위해

제품의 요구사항, 아키텍처, 조립 생산이 필요하다.

 


Section 21

 

S/W 공학의 발전적 추세

 

소프트웨어 재사용(Software Reuse)

 

이미 개발되어 인정받은 소프트웨어를

다른 소프트웨어 개발이나 유지에 사용하는 것이다.

 

소프트웨어 개발의 품질과

생산성을 높이기 위한 방법이다.

 

* 소프트웨어 재사용 방법

 

합성 중심(Composition-Based) 전자 칩과 같은 소프트웨어 부품, 즉 블록을 만들어서 끼워 맞춰 소프트웨어를 완성시키는 방법이다.
블록 구성 방법이라고도 함.
생성 중심(Generation-Based) 추상화 형태로 써진 명세를 구체화하여 프로개름을 만드는 방법이다.
패턴 구성 방법이라고도 함.

소프트웨어의 재사용을 통해

개발 시간, 비용, 실패 위험성, 복잡도를 낮출 수 있고,

신뢰성, 성능, 효율성을 높일 수 있다.

 

소프트웨어 재공학(Software Reengineering)

 

기존 시스템을 이용하여 보다 나은 시스템을 구축하고,

새로운 기능을 추가하여

소프트웨어 성능을 향상시키는 것이다.

 

유지보수 비용이 소프트웨어 개발 비용의

대부분을 차지하기 때문에

유지보수의 생산성 향상을 통해

소프트웨어 위기를 해결하는 방법이다.

 

기존 소프트웨어의 데이터와 기능들의 개조 및 개선을 통해

유지보수성과 품질을 향상 시킨다.

 

* 소프트웨어 재공학의 이점

 

✓ 소프트웨어 품질 향상

✓ 소프트웨어 생산성 증가

✓ 소프트웨어 수명 연장

✓ 소프트웨어 오류 감소

 

CASE(Computer Aided Software Engineering)

 

소프트웨어 개발 과정에서 사용되는

요구 분석, 설계, 구현, 검사 및 디버깅

과정 전체 또는 일부를 컴퓨터와 전용 소프트웨어 도구를 사용하여

자동화하는 것이다.

 

표준화된 개발 환경 구축 및 문서 자동화 기능을 제공한다.

 

작업 과정 및 데이터 공유를 통해 작업자 간 커뮤니케이션을 증대한다.

 

* 주요 기능

 

✓ S/W 라이프 사이클 전 단계의 연결

✓ 그래픽 지원

✓ 다양한 소프트웨어 개발 모형 지원

 

반응형