Notice
Recent Posts
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- RxSwift
- ARC
- ios면접
- IOS
- Swift코딩테스트
- five lines of cdde
- SWIFT
- UIKit
- hackerrank
- algorithm
- alamofire
- mrc
- 코딩테스트입문
- storekit2
- 카카오맵클론
- unittest
- css학습
- Swift디자인패턴
- five lines of code
- RC
- 프로그래머스
- Safari Inspector
- 리팩터링
- 앱의생명주기
- AutoLayout
- 클린코드
- firebase
- Di
- firestore
- TDD
Archives
- Today
- Total
샘성의 iOS 개발 일지
[정보처리기사] 2. 재공학 본문
728x90
1. 재공학
1-1) 소프트웨어 재공학(Software Reengineering)의 개념
💡 “기존의 시스템을 변경 혹은 재구조화 해서 사용하자.”
- 소프트웨어 위기를 유지보수의 생산성으로 해결하려는 방법을 뜻함
1-2) 재공학의 장점, 목표, 과정
- 장점
- 개발 시간 및 비용 감소
- 품질 향상 (기존에 존재하는 것을 다시 만든 것이니까)
- 신뢰성 향상 (기존에 사용했기 때문에 검증됨)
- 구축 방법에 대한 지식의 공유, 프로젝트 실패 위험 감소
- 목표
- 최우선 목표는 소프트웨어 유지보수성 향상이다.
- 복잡한 시스템을 다루는 방법 구현, 다른 뷰의 생성, 잃어버린 정보 복구 및 제거
- 재사용을 수월하게 해서 소프트웨어의 수명을 연장시키자.
- 과정
- 분석(사용 가치 여부 분석) → 구성(구조 리펙토링) → 역공학(기존에 있는 것을 뜯어보기) → 이식(실제 필요한 곳에 적용시키기)
2. 역공학
💡 소프트웨어를 분석하여 소프트웨어 개발 과정, 데이터 처리 과정을 설명하는 설계 정보를 재문서화 하는 것
3. CASE
💡 Computer Aided Software Engineering의 약자, 소프트웨어 개발의 자동화 도구
3-1) CASE가 제공하는 기능
- 개발을 신속하게 할 수 있음, 오류 수정이 쉬움 → 소프트웨어 품질 향상됨
- 소프트웨어 생명주기의 전체 단계를 연결해주고 자동화 및 통합 도구를 제공함
- 소프트웨어 시스템의 문서화 및 명세화를 위한 그래픽 기능 제공
- 소프트웨어 개발 단계 표준화 기할 수 있음, 자료 흐름도 작성 기능 제공
- 모델들 사이의 모순 검사 기능 제공
- 원천 기술
- 구조적 기법
- 프로토타이핑 기술
- 정보 저장소 기술
3-2) CASE 사용의 장점
- 기간 단축, 비용 감소 → 생산성 향상
- 소프트웨어 설계, 구현, 유지보수를 모두 관리할 수 있는 문서화 도구
3-3) CASE의 분류
- 상위 CASE
- 요구 분석 및 설계 단계 지원
- 하위 CASE
- 소스 코드 작성, 테스트, 문서화 과정 지원
- 통합 CASE
- 소프트웨어 개발 주기 전체 과정 지원
3-4) 요구사항 분석을 위한 CASE 도구
- SADT (Structured Analysis and Design Technique)
- 시스템 정의, 소프트웨어 요구사항 분석, 시스템/소프트웨어 설계를 위해 사용되어 온 구조적 분석 및 설계 도구
- SoftTech사에서 개발함
- 구조적 요구분석을 위한 블록 다이어그램을 채택한 자동화 도구
728x90
'정보처리기사 > 소프트웨어 설계' 카테고리의 다른 글
[정보처리기사] 1. 소프트웨어 공학의 개념 (0) | 2023.11.09 |
---|