topcit 기술영역 소프트웨어 공학 개요

2024. 9. 19. 15:48카테고리 없음

목표

1. 소프트웨어의 특성과 문제점을 설명할 수 있다.

2. 소프트웨어공학의 배경과 목적을 설명할 수 있다.

3. 소프트웨어 개발 프로세스 모델에 대해 설명할 수 있다.

 

핵심키워드

- 소프트웨어의 특성

- 소프트웨어 생명주기

- 요구사항 분석, 설계, 구현, 테스팅

- 소프트웨어 요구관리, 유지관리, 형상관리, 품질관리

 

공부시작 전 궁금증

1. 소프트웨어의 품질이 어떻게 평가되고 관리될까?

2. 프로세스 모델이 어떻게 변화하여 왔을까?

3. 소프트웨어 공학이라는 학문은 어떠한 필요로 생겨났을까?

4. 소프트웨어 공학에서 다루는 개념은 무엇일까?

 

 

내용정리

 

소프트웨어 공학의 정의 : "소프트웨어의 개발, 운용, 유지보수 등의 생명주기 전반을 체계적이고 정량적으로 다루는 학문"

 

 

소프트웨어 공학의 4가지 중요요소

- 방법 : 소프트웨어를 어떻게 개발할 것인가? -> 프로젝트 계획수립, 프로그램 구조, 알고리즘 ...

- 도구 : 어떤툴을 사용해 만들것인가? -> 요구 관리 도구, 모델링 도구, 형상관리 도구 ...

- 절차 : 방법과 도구를 이용해서 어떻게 계획을 세우고 개발할 것인가? -> 결과물, 품질 보증, 개발 진행 순서 ...

- 사람 : 결국 이 요소들을 버무릴 인원이 필요하기때문에 4가지 요소 포함되어 있음.

 

개발 생명주기의 정의 : 사용자의 환경 및 문제점 이해에서 시작해 운용/유지 보수에 이르기까지의 모든 과정.

 

일반적인 생명주기 순서(* 생명주기 모델에 따라 다를수 있음)

1. 타당성 검토 -> 이러한 필요가 있는데 이게 실제로 만들수있을까?

2. 개발 계획 -> 이 프로그램을 만들기 위해선 이런 알고리즘이 필요하고 이런 툴이 필요하겠구나.

3. 요구사항 분석 -> 사용자입장에서 정확히 어떤 기능이 필요하지? 또 각 파트에 있어야할 정확한 기능이 무엇이지?

4. 설계 -> 데이터베이스 엔티티, API 명세서 등 이렇게 맞춰놓으면 되겠다.

5. 구현 -> 이제 파트를 나눠서 실제 기능을 만들어보자

6. 테스트 -> 예외처리 잘되어있나, 잘 동작하나?

7. 운용 ->  이제 서비스하자

8. 유지보수 -> 다음 버전에는 뭘 추가하고 ...

 

생명주기 목적

- 프로젝트 비용 산정과 개발 계획 수립, 기본 골격 구성

- 프로젝트 관리

-> 개발을 시작할때 막막할 수 있는데 하나의 가이드라인이 될 수 있다.