코딩두의 포트폴리오

Chapter #1: SW 소개 본문

Software Engineering

Chapter #1: SW 소개

코딩두 2024. 10. 21. 16:40

1.1 소프트웨어

소프트웨어

프로그램 + 프로그램의 개발, 운용, 보수에 필요한 정보

개념적, 무형적

소프트웨어 특성

비가시성, 복잡성, 순응성, 복제 가능

소프트웨어 유형

응용 소프트웨어

시스템 소프트웨어

주문형 소프트웨어

패키지 소프트웨어

임베디드 소프트웨어

소프트웨어와 시스템

시스템: 필요한 기능을 실현시키기 위해 관련 요소를 어떤 법칙에 따라 조합한 집합체

시스템의 성질 - 서브시스템, 기능적 분할, 시스템 경계, 자동화 경계

 

 

1.2 소프트웨어 공학의 필요성

소프트웨어공학: SW를 개발, 운용, 유지보수, 소멸 하는 데 적용되는 체계적, 원리적인 접근방법

손해가 따를 수 있는 문제를 해결

SW 제품은 고객의 문제를 해결하기 위해 구축, 비즈니스 운영을 위해 사용

고비용

LOC(Lines of Code): SW 규모 측정에 널리 사용

MM(Man-Month): SW 개발 비용

생산성: MM당 생산하는 프로그램의 LOC

ex) 1MM당 생산성: 300 ~ 1,000 LOC

개발 지연과 낮은 신뢰도

계획에서 벗어남, 예상대로 작동 X, HW와 다름

유지보수와 재작업

유지보수의 필요성 (기능 추가, 환경 변화, 에러 적응형)

시스템에 남아 있는 오류 존재, SW는 업그레이드가 흔함

 

SW 개발의 문제점

의도하는 바 모름 -> 요구 파악 힘듦

개발 진행하면서 요구 변경 -> 재작업 필요

 

1.3 소프트웨어 공학이란?

소프트웨어 공학: SW의 개발, 운영, 유지보수, 소멸에 대한 체계적인 접근 방법

체계적인 접근: 일회성 X, 반복 사용 O

품질과 생산성

엔지니어링 작업에서 비용, 일정, 품질과 같은 변수가 중요

비용 - Man-Month로 측정

일정 - 짧은 time-to-market

품질 - 기능성, 신뢰성, 사용용이성, 효율성, 유지보수성, 이식성

일관성과 재현성

일관성 - 결과 어느 정도 예측, 높은 품질 생산

프로세스 표준화 필요

재현성 필요

 

1.4 소프트웨어 공학의 접근 방법

품질을 좌우하는 3가지: 인력, 프로세스, 기술

소프트웨어 공학의 접근 방법

SW를 개발하는 프로세스를 SW와 분리

SW 제작과정에 집중

SW 엔지니어링 3종류 작업 - SW 개발 프로세스, 품질 보증(SQA), 프로젝트 관리

1) 단계적 개발 프로세스

이유 - 문제를 여러 개발 단계에서 다른 관점을 다룸, 개발동안 품질, 진행 체크

 

요구분석: SW 시스템이 풀어야 할 문제를 이해하기 위한 작업

시스템이 무엇(What)이 필요한가?

문제를 분석(배경 이해, 요구 찾기), 요구 정리(요구명세서)

 

설계: 요구문서에 기술된 문제의 솔루션 계획

요구를 어떻게(How) 만족시킬 것인지?

아키텍처 설계, 상세설계 -> 설계 명세서

 

개발 구현 / 코딩

시스템 설계 -> 프로그래밍 언어

단순함, 명확성 추구

-> 새 시스템, 유지보수 계획

 

테스팅: SW의 결함을 찾아냄

SW 개발 단계에서 사용되는 중요한 품질 제어 수단

프로그램의 요구, 설계, 코딩 오류 밝힘

단위 테스팅, 통합 테스팅, 인수 시험 -> 테스팅 결과 보고서

 

2) 품질 보증(QA)

품질 보증: 개발되고 있는 SW가 요구와 품질 수준을 만족시킬 것이라는 것을 보장하는 작업

분석, 설계, 코딩, 테스팅, 유지보수 등 모든 작업을 QA

검토 확인/ 검증/ 테스팅

 

3) 프로젝트 관리

SW 계획은 프로젝트 개발 프로세를 모니터링, 제어하는 기준이 됨

프로세스 관리

소프트웨어 메트릭 - 객관적 데이터

프로덕트 메트릭 - SW 자체의 특성을 계량화

프로세스 메트릭 - SW 개발에 사용된 프로세스 생산성을 계량화

'Software Engineering' 카테고리의 다른 글

Chapter #5: 모델링  (0) 2024.10.21
Chapter #4: 요구 분석  (1) 2024.10.21
Chapter #3: 프로젝트 관리와 계획  (0) 2024.10.21
Chapter #2: 프로세스와 방법론  (4) 2024.10.21