728x90
목차
- 1.모듈
- 2.공통모듈
- 3.소프트웨어 재공학
1.모듈
1-1. 모듈의 개념
* 프로그램의 효율적인 관리를 위해 프로그램을 기능단위로 분해
* 인터페이스가 단순해지고 소프트웨어의 이해가 쉬워진다
* 재사용이 가능하기 때문에 프로그램 개발과 유지보수 용이
* 소프트웨어 통합, 수정및 테스트 용이
* 종속적으로 수행된다 (독립의 반대)
1-2. 모듈의 기본요소
1. 입력
2. 출력
3. 기능
4. 기관
5. 내부자료
1-3. 공유도와 제어도
1. 공유도(Fan-in)
* 해당 모듈을 사용하는 상위 모듈 개수
* 공유도가 높다는것은? 해당 모듈의 호출이 가능한 상위클래스가 많다
* 이상적인 모듈설계지만, 단일실패지점이 발생할가능성 있음
2. 제어도(Fan-out)
* 해당 모듈을 사용하는 하위 모듈 개수
* 제어도가 높다는것은? 해당 모듈의 호출이 가능한 하위클래스가 많다
* 불필요한 호출이 있는지, 업무로직을 좀더 단순화
1-4. 모듈설계시 고려사항
* 모듈의 크기가 작을수록 모듈의 개수가 많아짐, 모듈의 통합하는 비용이 커진다
* 모듈의 크기가 클수록 모듈의 개수가 적어짐, 모듈의 개발비용이 커진다
* 모듈통합비용과 모듈개발비용을 적절히 조절하여 최소노력비용을 산정
* 가급적 100라인 이내 설계
2.공통모듈
2-1. 공통 모듈의 개념
* 프로그램에서 공통적으로 사용할수 있는 모듈
* 정보시스템 구축시 자주 사용하는 기능들을 모듈화하여 재사용이 가능한 패키지로 제공
2-2. 공통 모듈의 설계원칙
1. 정확성: 시스템 구현에 필요여부 정확히 판단
2. 명확성: 기능이 구성이 한가지로 해석
3. 완전성: 모든 요구사항을 수행할수 있도록 설계
4. 일관성: 상호 충돌없이 적용
5. 추적성: 요구사항 출처, 관계를 파악
2-3. 공통 모듈의 재사용 범위
1. 함수와 객체 재사용: 클래스나 메소드단위
2. 컴포넌트 재사용: 컴포넌트 단위
3. 애플리케이션 재사용
2-4. 공통 모듈의 식별과 명세
1. 공통부분식별: 단위시스템의 업무기능을 분석하여 공통으로 사용될수있는부분을 식별하여 후보군으로 선정
2. 검토회의: 식별된 공통기능이 재사용의 효과성이 높은지 검토
3.소프트웨어 재공학
3-1. 소프트웨어 재사용
1. 소프트웨어 재사용의 개념
* 개발자원을 줄이기 위해 기능을 파악하고 재구성하여 시스템에 적용하는 최적화 작업
* 재사용이 가능한 코드로 발전
* 개발지식의 공유가 가능하며 품질과 개발의 생산성을 높인다
* 이미 검증된 모듈을 재사용하기 때문에 실패의 위험을 줄여준다
2. 소프트웨어 재사용의 기본기술
* 생성중심: 추상화 형태로 쓰여진 명세를 구체화 하여 재사용 단위를 찾아 발전시키는 기술
* 합성중심모델화: 모듈을 조립하여 소프트웨어를 완성시키는 기술
3. 재사용 모듈 설계의 유의사항
* 결합도는 약하게, 응집도는 높게 구성
* 공유도는 높이고, 제어도는 낮춘다
* 모듈설계는 계층적으로 제시
* 누구나 쉽게 이해하고 사용할수 있도록 사용법 공개
* 유지보수 용이하고 지나치게 제한적이지 않아야 한다
3-2. 소프트웨어 재공학
1. 소프트웨어 재공학의 개념
* 소프트웨어의 위기를 개발의 생산성이 아닌 유지보수의 생산성으로 해결하는 방법
* 시스템에 대한 재분석을 통해 공학적으로 우수한 시스템으로 발전시키는 학문
* 분석, 재구성, 역공학, 이식할동 등으로 구분
2. 소프트웨어 재공학의 과정
* 분석
* 재구성
* 역공학
* 이삭
3. 역공학
* 정보를 재발견 하거나 다시 만들어 내는 작업
* 데이터, 아키텍처, 데이터 프로세스에 대한 분석및 설계정보 추출
* 외계인코드를 분석하여 구성요소와 그 관계를 파악하여 설계도를 추출
* 코드의 역공학: 자료흐름도 생성
* 데이터의 역공학: 자료사전을 생성
참고자료 : 이기적 환상콤비 정보처리기사
728x90