일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 데이터베이스
- write by GPT-4
- 자바암호
- 시스템
- 코틀린
- 소프트웨어공학
- kotlin
- 자바
- 유닉스
- android
- 리눅스
- JVM
- python
- 인프라
- jpa
- write by chatGPT
- 웹 크롤링
- 역학
- Database
- 파이썬
- chatGPT's answer
- spring data jpa
- oracle
- NIO
- GPT-4's answer
- Java
- flet
- 자바네트워크
- spring integration
- 고전역학
- Today
- Total
기억을 지배하는 기록
소프트웨어 개발방법론 본문
모든 조직 사회에는 그 구성원들이 따라야 하는 제도나 규정 등이 존재하기 마련이다. 이러한 제도와 규정을 이해하고 업무를 처리해 나가다 보면, 가장 효과적으로 그 일을 처리하는 방법(Method)과 그 과정에서 필요한 지식이 축적되는데, 이를 체계적으로 정의한 것이 방법론(Methodology)이다. 정보 시스템 구축 시에도 정보 시스템의 구축업무 수행에 필요한 자원, 산출물, 참여자 등을 정의하고 이러한 내용을 일관된 흐름으로 체계적으로 정리한 방법론이 소프트웨어 개발 방법론이다.
소프트웨어 개발방법론의 정의
- 소프트웨어를 생산하기 위해 반복적으로 수행될 실행 방법을 정리한 것
- 정보 시스템을 구축하는데 필요한 여러 가지 일들의 수행방법과 이러한 일들을 수행하려는 절차에서 필요한 소프트웨어 공학 원리에 입각한 각종 기법 및 도구를 기업의 문화를 바탕으로 체계적으로 정리하여 표준화한 것
소프트웨어 개발방법론의 등장 배경
- 소프트웨어 위기 인식에 따른 소프트웨어 공학의 발전
- 소프트웨어 이용범위의 확대 및 소프트웨어 Project 개념의 등장
- 소프트웨어 Project 규모 및 복잡도 증가
소프트웨어 개발방법론의 필요성
- 소프트웨어 위기를 극복하기 위한 방법론 필요성 증대
- 공정의 가시화와 프로젝트의 효율적 관리 필요
- 개발경험 축적 및 재활용을 통한 개발생산성 향상
- 소프트웨어 품질의 균일화
- 개발 조직의 의사 소통 활성화
- 시스템 개발 노하우 축적
소프트웨어 개발방법론의 구성요소
구성요소 | 내용 |
작업절차 | - 프로젝트 수행 시 이루어지는 작업단계의 체계 - 단계별 활동, 활동 별 세부작업 열거, 활동의 순서 명시 |
작업방법 | - 각 단계별 수행해야 하는 일 - 절차/작업 방법 |
산출물 | - 각 단계별로 만들어야 하는 산출물의 목록 및 양식 |
관리 | - 프로젝트 진행 기록 - 계획수립, 진행관리, 품질, 외주, 예산, 인력관리 등의 기록 |
기법 | - 각 단계별로 작업수행 시 기술 및 기법의 설명 |
도구 | - 각 기법 별 지원도구에 대한 구체적인 사용표준 및 방법 |
소프트웨어 개발방법론의 종류
개발방법론 | 구조적 방법론 | 정보공학 방법론 | 객체지향 방법론 | 컴포넌트 기반 방법론 |
연대 | 1960 년대 ~ 1980년대 중반 | 1980년대 중반 ~ 1990년대 중반 | 1990년대 중반 ~ 2000년대 | 1990년대 후반 ~ 현재 |
목표 | 비즈니스 프로세스 자동화 | 경영전략적 정보시스템 구축 | 재사용 시스템 | 컴포넌트 개발 및 활용 |
주요모형 | 프로세스 (기능) | 데이터 | 객체 | 컴포넌트 |
주요기술 환 경 | 메인프레임 환경 단위업무 전산화 3세대 언어 (COBOL, Fortran, C) 소프트웨어 공학 태동 | PC보급확산 전사규모의 정보시스템 관계형 데이터베이스 4세대 언어 (Visual Basic, Power Builder, Delphi) 클라이언트/서버 사용자 중심 설계 통합 CASE | 인터넷 이용확산 다양한 SW요구 증대 객체지향 언어 (C++,Java) UML 분산 객체기술 Round-Trip CASE | 비즈니스 기능 단위 컴포넌트 J2EE 기반 기술 COM 기반 기술 웹서비스 기술 기존 시스템 연동 기술 애플리케이션 서버 |
주요기법 | 기능모형 (자료흐름도, 자료사전, 기능명세) 프로그램 구조 설계 (구조도, 모듈명세) | 데이터 모형 (객체 관계도) 정보전략계획 BRP 분산설계 | 객체모형 위험관리 반복적/점진적 개발 분석/설계 패턴 설계 개선 (Refactoring) | 컴포넌트 명세 컴포넌트 추출 컴포넌트 연동 아키텍처 설계 |
특징 | 학습용어 보편적 활용 | 안정된 개발 방법론 | 실세계 개념 모형 UML 사용 확산 | 적기 개발 개발 비용 감소 |
산업구조 | 소품종 다량생산 | 다품종 소량생산 | 인터넷 비즈니스 | 인터넷 비즈니스 |
모델링 | 기능 모델링 | 데이터 모델링, 프로세스 모델링 | 객체지향 관점, UML | 객체 모델링, 컴포넌트 모델링 |
'오래된글 > 소프트웨어공학' 카테고리의 다른 글
소프트웨어 모듈 결합도와 응집도 (0) | 2018.04.19 |
---|---|
소프트웨어 공학(Software Engineering) (0) | 2018.04.19 |
마르미 III 개발 방법론 (0) | 2018.04.19 |
디자인 패턴(Design Pattern) (0) | 2018.04.19 |
나선형(Spiral) 모델 (0) | 2018.04.19 |