Software is the Collection of Computer programs, procedure rules and associated documantation and data.
공학: 문제 해결을 위한 결과물의 산출을 중요시
소프트웨어 공학: 고객이 필요로 하는 소프트웨어 제품의 생산 과정에 과학적 지식을 적용하는 전문 작업 분야
환경: 무엇에 영향을 주거나 무엇을 변화시키는 주변 상황이나 영향력
외부 품질: 사용성, 신뢰도와 같이 사용자가 인지할 수 있는 것
좋은 소프트웨어의 기준
- 신뢰도
- MTTF: Mean Time To Failure, 고장날 때까지의 평균 시간
- 정확성
- 성능
- 사용성
- 상호운영성
- 유지보수성
- 이식성
- 검사성
- 추적성
- 요구사항들 간 또는 요구사항, 설계, 소스코드 간의 관계를 정의하고 기록하며 유지
소프트웨어 프로세스
프로세스: 주어진 목적을 달성하기 위해 수행되어야 하는 활동들의 순서 또는 절차
모든 소프트웨어 프로세스에 공통적으로 적용되는 주요 프로세스 활동 (Sommerville)
- 소프트웨어 명세
- 소프트웨어 개발
- 소프트웨어 검증
- 소프트웨어 진화
폭포수 모델
각 단계가 끝날 때마다 결과 확인 후에 다음 단계로. 한 단계의 출력은 다음 단계의 입력으로 사용된다.
단계
- 타당성 조사
- 요구 분석과 명세
- what을 기술하는 것이지 how를 기술하는 것이 아니다
- 요구사항 명세서: SRS Software Requirement Specification
- 설계와 명세
- 코딩과 단위 테스트
- 통합과 시스템 테스트
- 인도
- 유지보수
사용자 요구 분석
FRUPS+: HP에서 개발된 요구사항 분류 모델
- Functionality, Usability, Reliability, Performance and Supportability
요구 공학 과정의 출력은 소프트웨어 요구사항 명세서(SRS)
JAD(Joint Application Design): 애플리케이션의 설계와 개발 과정에 고객과 사용자를 참여시킨다.
출처: 소프트웨어 공학 (김희천)
'TIL > CS' 카테고리의 다른 글
프로그래밍언어론 (0) | 2025.01.25 |
---|---|
자료구조 알아보기 (1) | 2024.12.16 |
선형대수학의 본질 (3blue1brown) (0) | 2024.11.25 |
컴퓨터구조 알아보기 (0) | 2024.11.24 |
혼자 공부하는 컴퓨터 구조 + 운영체제 2장. 데이터 (1) | 2024.11.20 |