소프트웨어 : 프로그램과 관련된 데이터의 묶음 + 관련 문서
소프트웨어 분류
- 기능 : 시스템 SW | 응용 SW
- 사용자 : 일반(generic) SW | 맞춤형(custom) SW
소프트웨어 공학 : 소프트웨어 위기에 대응하여 고품질 소프트웨어를 경제적으로 생산하기 위한 공학적 원리와 방법
소프트웨어 공학 환경 : 중규모 이상의 복잡하고 중요한 소프트웨어
좋은 소프트웨어의 기준
- 신뢰도
- 정확성
- 성능
- 사용성(=사용편의성)
- 상호운영성
- 유지보수성
- 이식성
- 검사성
- 추적성
소프트웨어 프로세스
소프트웨어 프로세스 : 소프트웨어 시스템을 개발하거나 유지보수할 목적으로 수행되는 활동 일체 또는 절차
- 소프트웨어 명세
- 개발
- 검증
- 진화
폭포수 모델
(=선형 순차 모델)
: 고전적 소프트웨어 생명주기. 각 단계 병행 수행 X
- 타당성 조사
- 타당성 조사 보고서 : 문제 정의, 기술적/경제적 타당성, 해결방안과 기대효과, 비용과 인도 날짜 등 포함
- 시간적 제약, 정신적 압박 존재
- 요구 분석과 명세
- 요구사항 명세서 (SRS) : 의뢰자 - 개발자 간 의사소통 수단. 시스템의 목적 및 범위, 기능적·비기능적 요구사항, 기타 제약 조건 등
- 설계와 명세
- what -> how.
- 아키텍쳐 설계
- 인터페이스 설계
- 프로그램 설계
- 전통적 설계 방법 / 객체 지향 설계 방법
- 코딩과 단위테스트
- 설계
- 프로그램으로 작성
- 구현 모둘이 명세서를 만족하는지 테스트
- 통합과 시스템 테스트
- 통합 테스트 : 모듈 통합하여 점증적으로 시스템 구축
- 시스템 테스트 : 모든 모듈을 통합한 후, 최종 완성된 시스템이 요구사항 만족하는지 테스트
- 인도와 유지보수
- 배포
- 유지보수 (소프트웨어 진화)
- 장점
- 선형 모델로 단순하여 이해하기 쉬움
- 체계적인 문서화
- 명확한 프로젝트 진행 상황
- 단점
- 요구사항을 완벽히 작성해야 함
- 변경 수용성이 낮음
- 대형 프로젝트에 적용하기 어려움
'프로그래밍 > CS' 카테고리의 다른 글
| [소프트웨어 공학] 프로젝트 관리 (0) | 2023.01.02 |
|---|---|
| [소프트웨어 공학] 소프트웨어 프로세스 - 반복진화형, 프로토타이핑 (1) | 2023.01.01 |
| [컴퓨터 통신] 네트워크 보안 (0) | 2023.01.01 |
| [컴퓨터 통신] 근거리 통신 (LAN : Local Area Network) (0) | 2022.12.30 |
| [컴퓨터 통신] TCP/IP (0) | 2022.12.30 |