소프트웨어 공학

Software is the Collection of Computer programs, procedure rules and associated documantation and data.

 

공학: 문제 해결을 위한 결과물의 산출을 중요시

소프트웨어 공학: 고객이 필요로 하는 소프트웨어 제품의 생산 과정에 과학적 지식을 적용하는 전문 작업 분야

환경: 무엇에 영향을 주거나 무엇을 변화시키는 주변 상황이나 영향력

 

외부 품질: 사용성, 신뢰도와 같이 사용자가 인지할 수 있는 것

 

좋은 소프트웨어의 기준

  • 신뢰도
    • MTTF: Mean Time To Failure, 고장날 때까지의 평균 시간 
  • 정확성
  • 성능
  • 사용성
  • 상호운영성
  • 유지보수성
  • 이식성
  • 검사성
  • 추적성
    • 요구사항들 간 또는 요구사항, 설계, 소스코드 간의 관계를 정의하고 기록하며 유지

소프트웨어 프로세스

 

프로세스: 주어진 목적을 달성하기 위해 수행되어야 하는 활동들의 순서 또는 절차

 

모든 소프트웨어 프로세스에 공통적으로 적용되는 주요 프로세스 활동 (Sommerville)

  1. 소프트웨어 명세
  2. 소프트웨어 개발
  3. 소프트웨어 검증
  4. 소프트웨어 진화

 

폭포수 모델

 

각 단계가 끝날 때마다 결과 확인 후에 다음 단계로. 한 단계의 출력은 다음 단계의 입력으로 사용된다.

 

단계

  1. 타당성 조사
  2. 요구 분석과 명세
    1. what을 기술하는 것이지 how를 기술하는 것이 아니다
    2. 요구사항 명세서: SRS Software Requirement Specification
  3. 설계와 명세
  4. 코딩과 단위 테스트
  5. 통합과 시스템 테스트
  6. 인도
  7. 유지보수

사용자 요구 분석

 

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