정보처리기사 내용이 개정 되었다고는 하지만
구)정보처리기사 내용과 비교해 보니
출판사와 저자의 차이일 뿐 내용은 크게 다르지 않아 추가적으로 정리한다
신)정보처리기사 의 내용은 영진 출판사 이고
구)정보처리기사 의 내용은 길벗 출판사 이며
출판사를 상업적으로 언급하는 것이 아님을 밝힌다
- 상품성
개발된 소프트웨어는 상품화 되어 판매된다
- 견고성
일부 수정으로 소프트웨어 전체에 영향을 미칠 수 있다
- 복잡성
개발 과정이 복잡하고 비표준화되어 이해와 관리가 어렵다
- 순응성
사용자의 요구나 환경 변화에 적절히 변경할 수 있다
- 비가시성
소프트웨어의 구조가 외관적으로 나타나지 않고 코드 속에 숨어있다
- 비마모성
사용에 의해 마모되거나 소멸되지 않는다
- 비제조성
하드웨어처럼 제작되지 않고 논리적인 절차의 맞게 개발된다
- 비과학성
소프트웨어 개발 자체는 수학적이거나 과학적인 것이 아니라
조직, 인력, 시간, 비용, 절차 등이 중심이 된다
소프트웨어
하드웨어를 동작시켜 사옹자가 작업을 퍈리하게 수행하도륵 하는
프로그램과 자료 구조등을 총칭하며, 프로그램 자체뿐만 아니라
프로그램 개발, 운용 및 유지보수에 관련된 모든 문서와 정보를 포함함
시스템
공통의 목적이나 목표를 달성하기 위하여
여러 가지 상호 관련된 요소들을
유기적으로 결합한 것으로
구성 요소는 입력, 처리, 출력, 제어, 피드백으로 나눌 수 있다
- 피드백 (Feedback)
출력된 결과가 예정된 목표를 만족 시키지 못할 경우
목표 달성을 위해 반복 처리하는 것
원인
결과
IEEE 의소프트웨어 공학 표준 용어사전
소프트웨어의 개발, 운용, 유지보수, 폐기 처분에 대한
체계적인 접근방안Fairley
지정된 비용과 기간 내에 소프트웨어를 체계적으로 생산하고
유지보수하는데 관련된 기술적이고 관리적인 원리
Boehm
과학적인 지식을 소프트웨어 설계와 제작에 응용하는 것이며
이를 개발, 운용, 유지보수 하는데 필요한 문서 작성 과정
소프트웨어 공학 은 제품을 단지 생산하는 것이 아니라
가장 경제적인 방법으로 양질의 제품을 생산하는 것이다
소프트웨어 공학 은 안정적이고 효율적으로 작동하는
소프트웨어를 생산하고 유지보수 활동을 체계적이고
경제적으로 수행하기 위해 계층화 기술을 사용한다
1) 정의 단계
'무엇 (What)'을 처리하는 소프트웨어를 개발할 것인지 정의하는 단계`
관리자와 사용자가 가장 많이 참여하는 단계
- 타당성 검토 단계
개발할 소프트웨어가 법적, 경제적, 기술적으로 실현 가능성이 있는지 조사하는 단계
- 개발 계획 단계
소프트웨어 개발에 사용될 자원과 비용을 측정하는 단계
- 요구사항 분석 단계
사용자가 요구한 문제를 보다 상세하고 정확히 분석하는 단계
2) 개발 단계
'어떻게 (How)'의 초점을 두고 실제적으로 소프트웨어를 설계하는 단계
- 설계 단계
소프트웨어의 구조, 알고리즘, 자료 구조 등을 작성하는 단계로 에러가 가장 많이 발생하는 단계
- 구현 단계
설계 단계에서 작성된 문서를 기초로 하여 코딩하고 번역하는 단계
- 테스트 단계
구현된 소프트웨어에 내제되어 있는 오류를 찾는 단계
3) 유지보수 단계
소프트웨어를 직접 운용하며, 변경 (Change)에 초점을 두고 여러 환경 변화에 따라 소프트웨어를 적응 및 유지 시키는 단계로 시간과 비용이 가장 많이 투입되는 단계