Notice
Recent Posts
Recent Comments
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 | 29 | 30 | 31 |
Tags
- 자바의 정석 기초편 ch9
- 스프링 mvc2 - 타임리프
- jpa 활용2 - api 개발 고급
- 자바의 정석 기초편 ch12
- 스프링 mvc1 - 서블릿
- 자바의 정석 기초편 ch3
- 2024 정보처리기사 시나공 필기
- 스프링 mvc2 - 로그인 처리
- 스프링 db1 - 스프링과 문제 해결
- 스프링 mvc1 - 스프링 mvc
- 스프링 mvc2 - 검증
- 자바의 정석 기초편 ch13
- 자바 기본편 - 다형성
- @Aspect
- 자바의 정석 기초편 ch7
- 자바의 정석 기초편 ch5
- 자바의 정석 기초편 ch1
- 자바의 정석 기초편 ch14
- 코드로 시작하는 자바 첫걸음
- 자바의 정석 기초편 ch4
- 자바의 정석 기초편 ch2
- 자바의 정석 기초편 ch6
- 자바의 정석 기초편 ch8
- jpa - 객체지향 쿼리 언어
- 2024 정보처리기사 수제비 실기
- 스프링 db2 - 데이터 접근 기술
- 스프링 입문(무료)
- 게시글 목록 api
- 스프링 고급 - 스프링 aop
- 자바의 정석 기초편 ch11
Archives
- Today
- Total
나구리의 개발공부기록
1장 - 소프트웨어 개발 방법론 활용 핵심 요약 본문
2024정보처리기사 준비 정리(필기 - 시나공, 실기 - 수제비)/필기 5강 - 정보시스템 구축 관리
1장 - 소프트웨어 개발 방법론 활용 핵심 요약
소소한나구리 2024. 5. 7. 20:002024년도 시나공 필기 책 내용 정리
섹션1. 소프트웨어 개발 방법론
1. 구조적 방법론
- 정형화된 분석 절차에 따라 사용자 요구사항을 파악하여 문서화하는 처리(Process) 중심의 방법론
- 복잡한 문제를 다루기 위해 분할과 정복(Divide and Conquer)원리를 적용함
2. 정보공학 방법론
- 정보 시스템의 개발을 위해 계획, 분석, 설계 구축에 정형화된 기법들을 상호 연관성 있게 통합 및 적용하는 자료(Data)중심의 방법론
- 업무 영역과 업무 시스템 설계 과정에 데이터베이스 설계를 위한 데이터 모델링으로 개체 관계도(E-R Diagram)을 사용함
3. 컴포넌트 기번(CBD)방법론
- 기존의 시스템이나 소프트웨어를 구성하는 컴포넌트를 조합하여 하나의 새로운 애플리케이션을 만드는 방법론
- 컴포넌트의 재사용(Reusability)이 가능하여 시간과 노력을 절감할 수 있음
- 새로운 기능을 추가하는 것이 간단하여 확장성이 보장됨
- 유지 보수 비용을 최소화하고 생산성 및 품질을 향상시킬 수 있음
- 분석 단계에서 사용자 요구사항 정의서가 산출됨
섹션2. S/W 공학의 발전적 추세
1. 소프트웨어 재사용의 이점
- 개발 시간과 비용 단축
- 소프트웨어 품질 향상
- 소프트웨어 개발의 생산성 향상
- 시스템 명세, 설계 코드 등 문서 공유
2. 소프트웨어 재사용 방법
- 합성 중심 : 전자 칩과 같은 소프트웨어 부품(블록, 모듈)을 만들어서 끼워 맞추어 소프트웨어를 완성시키는 방법
- 생성 중심 : 추상화 형태로 쓰여진 명세를 구체화하여 프로그램을 만드는 방법
3. 소프트웨어 재공학의 주요 활동
- 분석(Analysis) : 기존 소프트웨어의 명세서를 확인하여 소프트웨어의 동작을 이해하고 재공학할 대상을 선정하는 활동
- 재구성(Restructuring) : 기존 소프트웨어의 구조를 향상시키기 위하여 코드를 재구성하는 활동
- 역공학(Reverse Engineering) : 기존 소프트웨어를 분석하여 소프트웨어 개발 과정과 데이터 처리 과정을 설명하는 분석 및 설계 정보를 재발견하거나 다시 만들어 내는 활동
- 이식(Migration) : 기존 소프트웨어를 다른 운영체제나 하드웨어 환경에서 사용할 수 있도록 변환하는 활동
4. CASE 사용의 이점
- 소프트웨어 개발 기간을 단축하고 개발 비용을 절감할 수 있음
- 자동화된 기법을 통해 소프트웨어 품질이 향상됨
- 소프트웨어의 유지보수를 간편하게 수행할 수 있음
- 소프트웨어 모듈의 재사용성이 향상됨
5. CASE의 주요 기능
- 소프트웨어 생명 주기 전 단계의 연결
- 다양한 소프트웨어 개발 모형 지원
- 그래픽 지원
- 모델들의 모순 검사 및 오류 검증
- 자료 흐름도 작성
6. CASE의 원천 기술
- 구조적 기법
- 프로토타이핑
- 자동 프로그래밍
- 정보 저장소
- 분산처리
섹션3. 상향식 비용 산정 기법
1. LOC 기법
- 소프트웨어 각 기능의 원시 코드 라인 수의 비관치, 낙관치, 기대치를 측정하여 예측치를 구하고 이를 이용하여 비용을 산정하는 기법
- 산정공식
노력(인월) | 개발 기간 X 투입인원, LOC / 1인당 월 평균 생산 코드 라인 수 |
개발 비용 | 노력(인월) X 단위 비용(1인당 월평균 인건비) |
개발 기간 | 노력(인월) / 투입 인원 |
생산성 | LOC / 노력(인월) |
섹션4. 수학적 산정 기법
1. 수학적 산정 기법의 종류
- COCOMO(COnstructive COst MOdel)모형
- Putman 모형
- 기능 점수(Function Point) 모형
2. COCOMO 모형 개요
- 보헴(boehm)이 제안한 것으로 원시 프로그램의 규모(LOC)에 의한 비용 산정 기법
- 비교적 작은 규모의 프로젝트 기록을 통계 분석하여 얻은 결과를 반영한 모델
- 비용 산정 결과는 프로젝트를 완성하는데 필요한 노력(Man-Month)으로 나타남
3. COCOMO의 소프트웨어 개발 유형
- 조직형(Organic Model) : 기관 내부에서 개발된 중/소 규모의 소프트웨어로 일괄 자료 처리나 과학기술 계산용, 비즈니스 자료 처리용으로 5만(50KDSI)라인 이하의 소프트웨어를 개발하는 유형
- 반분리형(Semi-Detached Model) : 조직형과 내장형의 중간형으로 트랜잭션 처리 시스템이나 운영체제, 데이터 베이스 관리 시스템 등의 30만(300KDSI) 라인 이하의 소프트웨어를 개발하는 유형
- 내장형(Embedded Model) : 내장형은 초대형 규모의 트랜잭션 처리 시스템이나 운영체제 등의 30만(300KDSI)라인 이상의 소프트웨어를 개발하는 유형
4. Putman 모형
- 소프트웨어 생명 주기의 전 과정 동안에 사용될 노력의 분포를 가정해 주는 모형
- 시간에 따른 함수로 표현되는 Rayleigh-Norden 곡선의 노력 분포도를 기초로 함
5. 기능 점수(FP) 모형 - 가중치 증대 요인
- 자료 입력(입력 양식)
- 정보 출력(출력 보고서)
- 명령어(사용자 질의수)
- 데이터 파일
- 필요한 외부 루틴과의 인터페이스
6. 자동화 추정 도구 - SLIM
- Rayleigh-Norden 곡선과 Putman 예측 모델을 기초로 하여 개발된 자동화 추정 도구
섹션5. 프로젝트 일정 계획
1.PERT(프로그램 평가 및 검토 기술)
- 프로젝트에 필요한 전체 작업의 상호 관계를 표시하는 네트워크로 각 작업별로 낙관적인 경우, 가능성이 있는경우, 비관적인 경우로 나누어 각 단계별 종료 시기를 결정하는 방법
- 결정 경로, 작업에 대한 경계 시간, 작업 간의 상호관련성 등을 알 수 있음
2. CPM(임계 경로 기법)
- 프로젝트 완성에 필요한 작업을 나열하고 작업에 필요한 소요 기간을 예측하는데 사용하는 기법
- 경영층의 과학적인 의사 결정을 지원
- 효과적인 프로젝트의 통제를 가능하게 해줌
3. 임계 경로 소요 기일
- 임계 경로는 최장 경로(굵은 선)을 의미함
4. 간트 차트(Gantt Chart)
- 프로젝트의 각 작업들이 언제 시작하고 언제 종료되는지에 대한 작업 일정을 막대 도표를 이용하여 표시하는 프로젝트 일정표
- 수평 막대의 길이는 각 작업(Task)의 기간을 나타냄
섹션6. 소프트웨어 개발 방법론 결정
1. 프로젝트 관리
- 주어진 기간 내에 최소의 비용으로 사용자를 만족시키는 시스템을 개발하기 위한 전반적인 활동을 의미
2. 위험 관리
- 프로젝트 추진 과정에서 예상되는 각종 돌발 상황(위험)을 미리 예상하고 이에 대한 적절한 대책을 수립하는 일련의 활동을 의믜
- 위험 관리 절차 : 위험 식별 -> 위험 분석 및 평가 -> 위험 관리 계획 -> 위험 감시 및 조치
섹션7. 소프트웨어 개발 표준
1. ISO/IEC 12207
- 기본 생명 주기 프로세스 : 획득, 공급, 개발, 운영, 유지 보수 프로세스
- 지원 생명 주기 프로세스 : 품질 보증, 검증, 확인, 활동 검토, 감사, 문서화, 형상 관리, 문제 해결 프로세스
- 조직 생명 주기 프로세스 : 관리, 기반 구조, 훈련, 개선 프로세스
2. CMMI의 소프트웨어 프로세스 성숙도 5단계
- 초기(Initail)
- 관리(Managed)
- 정의(Defined)
- 정량적 관리(Quantitatively Managed)
- 최적화(Optimizing)
3. SPICE(소프트웨어 처리 개선 및 능력 평가 기준)
- 정보 시스템 분야에서 소프트웨어의 품질 및 생상선 향상을 위해 소프트웨어 프로세스를 평가 및 개선하는 국제 표준
4. SPICE의 프로세스 수행 능력 단계
- Level 0 - 불완전(Incomplete)
- Level 1 - 수행(Performed)
- Level 2 - 관리(Managed)
- Level 3 - 확립(Established)
- Level 4 - 예측(Predictable)
- Level 5 - 최적화(Optimizing)
섹션8. 소프트웨어 개발 방법론 테일러링
1. 소프트웨어 개발 방법론 테일러링의 개요
- 프로젝트 상황 및 특성에 맞도록 정의된 소프트웨어 개발 방법론의 절차, 사용기법 등을 수정 및 보완하는 작업
- 관리적 측면 : 최단기간에 안정적인 프로젝트 진행을 위해 사전 위험을 식별하고 제거하는 작업
- 기술적 측면 : 프로젝트에 최적화된 기술 요소를 도입하여 프로젝트 특성에 맞는 최적의 기법과 도구를 찾아가는 작업
2. 소프트웨어 개발 방법론 테일러링 고려사항
- 내부적 기준
- 목표 환경 : 시스템의 개발 환경과 유형
- 요구사항 : 개발, 운영, 유지보수 등
- 프로젝트 규모 : 비용, 인력, 기간 등
- 보유 기술 : 프로세스, 개발 방법론, 산출물, 구성원의 능력 등
- 외부적 기준
- 법적 제약사항 : 프로젝트별로 적용될 IT Compliance
- 표준 품질 기준 : 금융, 제도 등 분야별 표준 품질 기준
섹션9. 소프트웨어 개발 프레임워크
1. 소프트웨어 개발 프레임워크
- 프레임워크(Framework)는 소프트웨어 개발에 공통적으로 사용되는 구성 요소와 아키텍처를 일반화하여 손쉽게 구현할 수 있도록 여러 가지 기능들을 제공해주는 반제품 형태의 소프트웨어 시스템임
- 선행 사업자의 기술에 의존하지 않은 표준화된 개발 기반으로 인해 사업자 종속성이 해소됨
- 개발해야 할 애플리케이션의 일부분이 이미 내장된 클래스 라이브러리로 구현되어 있어 개발자는 이미 존재하는 부분을 확장 및 이용하는 것으로 소프트웨어를 개발할 수 있음
2. 프레임워크의 특성
- 모듈화
- 재사용성
- 확장성
- 제어의 역흐름