일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 역학
- chatGPT's answer
- 자바
- Java
- 고전역학
- spring integration
- NIO
- 소프트웨어공학
- oracle
- python
- 코틀린
- android
- jpa
- 데이터베이스
- 시스템
- 인프라
- spring data jpa
- 리눅스
- 웹 크롤링
- 유닉스
- kotlin
- 파이썬
- write by chatGPT
- 자바암호
- 자바네트워크
- write by GPT-4
- Database
- flet
- JVM
- GPT-4's answer
- Today
- Total
기억을 지배하는 기록
소프트웨어 공학(Software Engineering) 본문
소프트웨어 공학의 정의
- 과학적인 지식을 컴퓨터 프로그램 설계와 제작에 실제 응용하는 것이며, 이를 개발, 운영하고 유지 보수하는데 필요한 문서화 과정
- 소프트웨어 위기를 극복하기 위해 개발한 학문으로 소프트웨어 개발, 운용, 유지보수 및 폐기에 대한 체계적인 접근 방법
- 최소의 경비로 신뢰도 높은 소프트웨어를 생산하기 위한 기법과 도구
소프트웨어 공학의 목표
- 소프트웨어 개발, 유지보수에 따른 생산성과 품질 향상
- 효율적인 소프트웨어 개발과 신뢰성을 갖춘 소프트웨어 개발
- 경제적인 개발에 의한 개발비용 감소
소프트웨어 공학의 등장 배경(소프트웨어 위기)
- 하드웨어 기술의 급속한 발전과 범용 컴퓨터의 광범위한 보급은 소프트웨어 분야에 문제를 야기시키고, 소프트웨어 엔지니어들은 위기의식을 느낌
- 하드웨어 기술은 하드웨어 기능을 이용하는 소프트웨어 개발 능력의 발전 속도보다 훨씬 빠르게 발전함
- 새로운 소프트웨어를 요구하는 시장의 수요를 감당할 수 없음
- 기존 소프트웨어의 유지보수가 어려워짐
- 소프트웨어 분야의 인건비 상승과 우수 소프트웨어의 부족 현상으로 악화되어 소프트웨어 생산성이라는 새로운 과제를 심각하게 유발시킴
- 소프트웨어 위기를 해결하고 극복하기 위해서는 체계적이고 제도적인 소프트웨어 개발 방법이 필요하며, 이로부터 소프트웨어 공학이 탄생
소프트웨어 공학의 단계
1. 정의 단계
- What를 식별하는 단계
- 시스템 분석, 소프트웨어 계획, 요구사항 분석
- 처리되는 정보, 성능과 기능, 인터페이스, 설계제약 조건, 검증기준 등의 기술 시스템 소프트웨어의 주요 요구사항 결정단계
2. 개발 단계
- How에 중점을 두는 단계
- 데이터 구조화, 소프트웨어 기능 및 설계, 개발, 테스트에 대한 기술 단계
- 소프트웨어 설계, 소프트웨어 코딩, 소프트웨어 검사로 세분화 됨
3. 유지보수 단계
- Change에 중점을 두는 단계
- 오류수정, 소프트웨어 사용환경변화에 따른 변화, 사용자 요구에 따른 변경
- 기존 소프트웨어의 성질은 변화시키지 않는 범위에서 적용시킴
소프트웨어 공학의 요소
원칙(Principles)
- 소프트웨어 개발에 적용해야 하는 기본적인 사상
방법(Method)
- 소프트웨어 개발시 요구되는 특정 목적을 달성하기 위해 구체적이며 논리적으로 정리된 방법 및 절차
방법론(Methodology)
- 소프트웨어 구축에 필요한 작업 방법, 절차, 기법, 산출물 등 모든 요소들을 논리적으로 정리한 체계
- 특정 패러다임에 맞도록 실제적인 개발 활동들과 메소드, 사례들의 통합 산물
도구(Tool)
- 방법론의 실제 활용을 위해 자동화를 지원
- 소프트웨어 공학 환경을 만들기 위해 소프트웨어, 하드웨어, 소프트웨어 공학 데이터베이스들을 결합시켜 놓은 것
'오래된글 > 소프트웨어공학' 카테고리의 다른 글
소프트웨어 비용산정 - 1 (0) | 2018.04.19 |
---|---|
소프트웨어 모듈 결합도와 응집도 (0) | 2018.04.19 |
소프트웨어 개발방법론 (0) | 2018.04.19 |
마르미 III 개발 방법론 (0) | 2018.04.19 |
디자인 패턴(Design Pattern) (0) | 2018.04.19 |