-
소프트웨어 개발 및 관리Topcit/소프트웨어 개발 2018. 6. 11. 14:53
- 소프트웨어 특성
- 하드웨어와 다른 점
- SW는 HW에 비해 수정하기가 쉽다.
- SW는 오래 쓰더라도 낡지 않지만 유지보수 비용은 HW보다 더 많이 소모된다.
- SW의 비가시성으로 인해 진행 상태를 알기 어렵다.
- SW는 요구사항을 정의하기 어렵다.
- 수확체증의 법칙이 적용된다.
- 수확체증의 법칙 : 추가 생산해도 추가 비용이 들지 않는다.
- 소프트웨어의 특징
- 투입 인력의 수와 성과가 비례하지 않다.
- 소프트웨어가 기기의 원가 경쟁력을 결정한다.
- 재사용이 가능함
- 소프트웨어 공학의 중요 요소
- 소프트웨어 공학
- 소프트웨어의 개발, 운용, 유지보수, 생명주기 전반을 체계적, 서술적, 정량적으로 다루는 학문
- 방법
- 구성
- 프로젝트 계획 수립과 추정, 시스템과 소프트웨어 분석, 자료구조, 프로그램 구조, 알고리즘, 코딩, 테스팅, 유지보수
- 소프트웨어 품질에 대한 일련의 평가 기준을 도입
- 도구
- 생산성, 일관성을 목적으로 사용하는 방법들을 자동화, 반자동화 시켜놓은 것
- 종류
- 요구 관리 도구, 모델링 도구, 형상 관리 도구, 변경 관리 도구 등
- 절차
- 방법과 도구를 결합하여 소프트웨어를 합리적이고 적시에 개발할 수 있도록 한다.
- 적용된 방법, 요구되는 결과물, 품질을 보증하고 변경을 조정하게 도와주는 제어, 마일스톤 등의 순서를 정의한다.
- 마일스톤 : 프로젝트의 진행을 평가하기 위한 이정표
- 사람
- 소프트웨어 공학에서는 많은 것들이 사람, 조직에 의해서 움직이기 때문에 사람에 대한 의존성이 상대적으로 크다.
- 소프트웨어 생명주기
- 정의
- 구성
- 타당성 검토 -> 개발 계획 -> 요구사항 분석 -> 설계 -> 구현 -> 테스트 -> 운용 -> 유지보수
- 목적
- 프로젝트 비용 산정, 개발 계획 수립
- 용어의 표준화
- 프로젝트 관리
- 소프트웨어 생명 주기 선정
- 기업에서 프로젝트의 개발 프로세스를 테일러링 하는데 중요한 활동
- 테일러링 : 프로젝트의 특성에 적합한 프로세스를 적용하기 위해 프로세스를 수정하는 과정
- 시스템 개발의 리스크, 불확실성에 대한 이해를 바탕으로 수행
- 선택한 모델은 리스크, 불확실성을 최소화 시킬 수 있어야 한다.
- 종류
- 폭포수 모델, 프로토타입 모델, 진화 모델, 증분 모델 등
- 소프트웨어 개발 소개
- 소프트웨어 개발
- 요구사항 분석
- 사용자의 요구를 이해하는 단계
- 전체 개발 과정에서 개발 비용을 감소시킬 수 있는 결정적인 단계
- 잘 정의된 요구사항은 개발 기간, 비용의 초과, 품질저하를 미연에 방지할 수 있다.
- 설계
- 서브 시스템으로 이루어지는 시스템 구조를 결정, 서브 시스템들은 하드웨어, 소프트웨어 등의 구성요소에게 할당
- 설계는 품질에 직접적인 영향을 준다.
- 설계가 제대로 되지 않으면 시스템의 안정감이 저하되고 유지보수가 어려워 진다.
- 구현
- 목표
- 설계 명세를 기반으로 요구사항을 만족할 수 있도록 프로그래밍
- 상세 설계, 사용자 지침서에 기술된 것과 일치하도록 코딩
- 코딩 표준 정의가 중요
- 테스팅
- 시스템이 정해진 요구를 만족하는지, 예상과 실제 결과가 어떤 차이를 보이는지를 검사, 평가하는 과정
- 소프트웨어의 품질을 확보하기 위해 결함을 찾아내는 작업
- 소프트웨어의 품질에 대한 평가, 품질 향상을 위한 수정 작업 등이 포함된다.
- 소프트웨어 관리
- 소프트웨어 유지관리
- 소프트웨어는 개발중, 개발후에도 많은 변경이 필요하다.
- 소프트웨어는 계속적인 변경을 수용할 수 있도록 개발된다.
- 고객에게 소프트웨어가 인도되어 사용되는 과정에서 발생하는 여러 변경 사항에 대해 적응하고 변화에 대비하는 과정
- 소프트웨어 요구관리
- 요구사항을 추출, 구성, 문서화하고 변경에 대한 동의를 설정에 관리하는 활동
- 목적
- 의사소통 : 무엇을 왜 해야 하는지, 변경사항에 대하여
- 협업 : 업무의 공동 수행을 위한 협업 수단
- 검증 : 모든 것이 계획 한대로 완료되었는지 검증
- 소프트웨어 형상관리
- 소프트웨어 개발, 유지 산출물에 대한 계획, 개발, 운용 등을 조합하여 시스템의 형상을 만들고 이에 대한 변경을 체계적으로 관리, 제어하기 위한 활동
- 소프트웨어 개발, 유지보수 과정 중 변경을 통제하는 절차는 소프트웨어 개발 과정의 산출물을 관리하고 고품질의 소프트웨어를 얻기 위해 중요하다.
- 소프트웨어 품질관리
- 소프트웨어 개발 활동이 프로젝트 계획과 일치하고 조직 정책에 적합한가를 검증하는 활동
- 소프트웨어 품질의 정의
- 주어진 요구사항을 만족시킬 수 있는 소프트웨어 속성의 정도
- 소프트웨어의 품질 특성
- 기능성 : 기능구현 완전성, 정확성, 상호운용성, 보안성, 표준 준수성 등
- 신뢰성 : 운용 안정성, 장애복구 용의성, 서비스 지속성, 데이터 회복성 등
- 사용성 : 기능학습 용이성, 입출력 데이터 이해도, 사용자 인터페이스 조정 가능성, 일관성 등
- 효율성 : 반응 시간, 자원 사용률, 처리율
- 유지보수성 : 문제진단, 해결 지원, 환경설정변경 가능성, 업데이트 용이성 등
- 이식성 : 운영환경 적합성, 설치제거 용이성, 하위 호환성 등
- 필요에 따라 품질 특성 중 적절한 것을 선택해 사용하고 적절한 검증 활동을 수행해야 함
'Topcit > 소프트웨어 개발' 카테고리의 다른 글
객체지향 설계 과정 (0) 2018.06.11 소프트웨어 아키텍처 설계 (0) 2018.06.11 소프트웨어 설계 원리 (0) 2018.06.11 요구사항 분석과 명세화 (0) 2018.06.11 소프트웨어 기반 기술 (0) 2018.06.11 댓글