1.6 소프트웨어 프로젝트 작업
* 소프트웨어 프로젝트 작업
– 요구분석, 설계, 프로그래밍, 품질보증, 프로젝트 관리
– 작업의 종류와 순서는 개발 프로세스 모형에 따라 다름
1.6.1 요구분석과 명세화
* 고객 문제 해결 방법
– 고객의 비지니스 환경, 문제점, 기술 이해
– 작업과 순서 결정
– SW가 제공해야 할 기능 결정
* 도메인 분석
– 관련 배경 지식 이해
– ex) 기업회계 SW : 장부기장 방법, 회계 시스템
– ex) 운영체제 SW : 프로세스 관리, 메모리 관리, 파일관리 기법
* 문제 정의
– 시스템의 범위를 더 좁혀 나가는 작업
* 요구 추출
– SW가 해야 하는 일에 대한 사람들의 아이디어 취합
* 요구 분석
– 정보 정리, SW기능 결정
* 요구 명세화
– 기능 정의를 위해 명령어 형태로 작성
1.6.2 설계
* 요구 사항들을 어떻게 구현할 것인가를 결정하는 과정
* 시스템 엔지니어링
– HW구현 부분, SW구현 부분 결정
– 임베디드 시스템, 리얼타임 시스템에서만 필요
* SW 아키텍처
– 서브시스템으로 분할 방법, 서브시스템간의 상호 작용 결정
* 상세 설계
– 각 서브시스템의 상세한 사항데 대한 구성 방식 결정
– 상세 사항 : 자료구조, 클래스, 알고리즘, 프로시져
* 사용자 인터페이스
– 사용자가 시스템과 어떻게 상호작용 하는지 결정
* 자료저장 형태 결정
– 자료를 어떻게 저장하는지 결정
1.6.3 모델링
* 모델링[정의]
– 도메인이나 SW의 표현을 만들어 나가는 과정
– 요구 분석, 설계에서 모델링 접근 방법 사용
* 사용사계 모델링
– SW 사용자에 의하여 수행 되는 작업을 순서대로 표현
* 정적 모델링
– 도메인이나 SW에 존재하는 클래스나 객체를 표현
* 동적 모델링
– 시스템의 상태 변동 또는 수행하는 작업과 같은 것을 나타냄
1.6.4 프로그래밍
* 프로그래밍
– SW ENG.의 모든 작업을 통합
– 높은 수준의 설계를 정해진 프로그래밍 언어로 옮김.
– 디자인의 마지막 단계
* SW Architect
– 상위 수준의 설계를 담당하는 인력
* SW ENG.연구의 목적
– 프로그래밍의 자동화
1.6.5 테스트
* 단위(모듈) 테스트
– 개별 코드 테스트
*통합 테스트
– 모듈을 연결하여 테스트
– 전체 모듈이 모두 연결될 때 까지 하나식 점증적으로 추가
* 시스템 테스트
– 완성된 시스템이 원하는 대로 작동하는지
– 성능은 어떤지 요구 분석 결과와 비교
1.6.6 품질 보증
* 품질 보증[정의]
– 품질 목표를 달성하려고 작업하는 모든 프로세스
* 리뷰와 인스펙션
– 요구, 설계, 코드가 원하는 수준에 맞는지 토의
* 테스트
– SW가 예상대로 작동하는지 체계적으로 수행
* 검증(Validation)
– 요구가 교객이 요구하는 문제인지 아닌지를 결정
* 검토(Verification)
– 요구를 설계하고 구현하는 과정이 맞는 것인지 판단
** 프로세스 관리(관리자의 역할)
* 시스템 비용 추정
– 요구사항 연구, 디자인, 구현하는데 드는 노력 결정
* 계획
– 개발자들에게 일 할당
– 완료 일정 결정
** SE 토픽 1.5 – ISO 12207 SW 프로세스 표준
– SW 개발 관리를 위한 절차, 방법, 도구들을 자세히 정리하여 틀을 정해 줌.
– SW 공급자나 발주자 사이에 정확한 의사 전달을 위하여 사용
– 입찰 준비부터 공급하기까지 프로젝트의 계약에 관한 작업
– 개발, 운영, 유지보수 하는 입장의 작업
– 품질 관리 등 보조 작업
– 프로세스 관리차원의 작업
** 초보 엔지니어링에게 가이드 역할
– SW 개발 프로세스의 성숙도 평가에 관한 기준으로 사용
Tags: Software Engineering, 소프트웨어 공학