728x90
반응형
구조적 방법론
정형화된 분석 절차에 따라 사용자의 요구 사항을 파악하여 문서화하는 처리(Process) 중심의 방법론이다.
- 1960년대 까지 가장 많이 적용되었던 방법론
- 쉬운 이해 및 검증이 가능한 프로그램 코드를 생성하는 것이 목적
- 복잡한 문제를 다루기 위해 분할과 정복(Divide and Conquer) 원리를 적용
정보공학 방법론
정보 시스템의 개발을 위해 계획, 분석, 설계, 구축에 정형화된 기법들을 상호 연관성 있게 통합 및 적용하는 자료(Data) 중심의 방법론
- 정보 시스템 개발 주기를 이용하여 대규모 정보 시스템을 구축하는데 적합함
컴포넌트 기반 방법론
기존의 시스템이나 소프트웨어를 구성하는 컴포넌트를 조합하여 하나의 새로운 애플리케이션을 만드는 방법론
- 컴포넌트의 재사용 -> 시간과 노력을 절감
- 새로운 기능을 추가하는 것이 간단함 -> 확장성 보장
- 유지 보수 비용 최소화, 생산성 및 품질을 향상
절차
소프트웨어 재사용
이미 개발되어 인정받은 소프트웨어의 전체 혹은 일부분을 다른 소프트웨어 개발이나 유지에 사용하는 것이다.
- 소프트웨어 개발의 품질과 생산성을 높이기 위한 방법으로, 기존에 개발된 소프트웨어와 경험, 지식 등을 새로운 소프트웨어에 적용
재사용의 이점
- 개발 시간과 비용을 단축
- 소프트웨어 품질을 향상
- 소프트웨어 개발의 생산성을 향상
- 프로젝트 실패의 위험 감소
- 시스템 구축 방법에 대한 지식을 공유
- 시스템 명세, 설계, 코드 등 문서를 공유
방법
함성 중심(블록 구성 방법) (Composition-Based) |
전자 칩과 같은 소프트웨어 부품, 즉 블록을 만들어서 끼워 맞추어 소프트웨어를 완성하는 방법 |
생성 중심 (Generation-Based) |
추상화 형태로 쓰여진 명세를 구체화하여 프로그램을 만드는 방법으로, 패턴 구성 방법이라고도 함 |
소프트웨어 재공학(Software Reengineering)
새로운 요구에 맞도록 기존 시스템을 이용하여 보다 나은 시스템을 구축, 새로운 기능을 추가하여 소프트웨어 성능을 향상시키는 것이이다.
- 유지보수 비용이 소프트웨어 개발 비용의 대부분을 차지하는 문제를 염두에 두어 기존 소프트웨어의 데이터와 기능들의 개조 및 개선을 통해 유지보수성과 품질을 향상 시키려는 기술
- 유지보수 생산성 향상을 통해 소프트웨어 위기를 해결하는 방법
- 기존 소프트웨어의 기능을 개조하거나 개선하므로, 예방 유지보수 측면에서 소프트웨어 위기를 해결하는 방법이라고 할 수 있음
- 자동화된 도구를 사용하여 소프트웨어를 분석하고 수정하는 과정을 포함
- 소프트웨어의 수명이 연장되고, 소프트웨어 기술이 향상될 뿐만 아니라 소프트웨어의 개발 기간도 단축
- 소프트웨어에서 발생할 수 있는 오류가 줄어들고, 비용이 절감됨
주요 활동
분석 (Analysis) |
기존 소프트웨어의 명세서를 확인하여 소프트웨어의 동작을 이해하고, 재공학할 대상을 선정하는 활동 |
재구성 (Restructuring) |
- 기존 소프트웨어의 구조를 향상시키기 위하여 코드를 재구성하는 활동 - 소프트웨어의 기능과 외적인 동작은 바뀌지 않음 |
역공학 (Reverse Engineering) |
- 기존 소프트웨어를 분석하여 소프트웨어 개발 과정과 데이터 처리 과정을 설명하는 분석 및 설계 정보를 재발견하거나 다시 만들어 내는 활동 - 일반적인 개발 단계와는 반대 방향으로 기존 코드를 복구하거나, 기존 소프트웨어의 구성 요소와 그 관계를 파악하여 설계도를 추출함 |
이식 (Migration) |
기존 소프트웨어를 다른 운영체제나 하드웨어 환경에서 사용할 수 있도록 변환하는 활동 |
CASE(Computer Aided Software Engineering)
소프트웨어 개발 과정에서 사용되는 요구 분석, 설계, 구현, 검사 및 디버깅 과정 전체 또는 일부를 컴퓨터와 전용 소프트웨어 도구를 사용하여 자동화하는 것
- 객체지향 시스템, 구조적 시스템 등 다양한 시스템에서 활용되는 자동화 도구(CASE Tool)
- 소프트웨어, 하드웨어, 데이터베이스, 테스트 등을 통합하여 소프트웨어를 개발하는 환경을 조성
- 소프트웨어 생명 주기의 전체 단계를 연결해주고 자동화해 주는 통합된 도구를 제공해 주는 기술
- 소프트웨어 개발 도구와 방법론이 결합된 것, 정형화된 구조 및 방법을 소프트웨어 개발에 적용하여 생산성 향상을 구현하는 공학 기법
- 소프트웨어 개발의 모든 단계에 걸쳐 일관된 방법론을 제공하는 자동화 도구들을 지원하고, 개발자들은 이 도구를 사용하여 소프트웨어 개발의 표준화를 지향, 자동화의 이점을 얻을 수 있게 해줌
CASE의 주요 기능
- 소프트웨어 생명 주기 전 단계의 연결
- 다양한 소프트웨어 개발 모형 지원
- 그래픽 지원 등
728x90
반응형
'자격증 준비 > 정보처리기사 필기 - 5과목(정보시스템 구축 관리)' 카테고리의 다른 글
[정보처리기사 필기] 5과목 - 보안1 (0) | 2023.02.23 |
---|---|
[정보처리기사 필기] 5과목 - 네트워크 및 프로토콜, DB 회복, 교착상태 (0) | 2023.02.22 |
[정보처리기사 필기] 5과목 - 신기술 및 관련 용어 (0) | 2023.02.21 |
[정보처리기사 필기] 5과목 - 프로젝트 관리, 소프트웨어 개발 (0) | 2023.02.21 |
[정보처리기사 필기] 5과목 - 소프트웨어 비용 산정 (0) | 2023.02.20 |