[ 현대사회의 소프트웨어 ]
▪ 점점 더 많은 시스템들에서 소프트웨어가 사용되어지고 있다.
▪ 국가기반 시설, 전자제품, 교육, 행정, 건강관리 시스템, 정치·경제 시스템..등등
▪ 현대 사회의 정치·경제 시스템의 효율적인 운용은 소프트웨어를 효과적인 비용으로 개발하는 능력에 의해서 좌우된다.
-> 따라서 소프트웨어 공학은 국가와 국제의 사회의 기술을 위해 중요하다.
[ 소프트웨어의 특징 ]
▪ 시스템은 물질적으로 보이는 것이 아니고 추상적인 것이다.
▪ 물리의 법칙이나 제조과정에 영향을 받지 않는다.
▪ 이해하기에 어렵고 복잡하며, 변경하는데 상당한 비용을 요구한다.
[ 소프트웨어 공학 ]
▪ 소프트웨어공학은 컴퓨터 시스템들을 위한 소프트웨어를 개발하는 데 필요한 방법, 이론, 도구들에 관심을 둔다.
▪ 소프트웨어의 종류에 따라 다른 소프트웨어공학을 요구한다
Ex) 웹기반 정보 시스템, 임베디드 시스템, 컴퓨터게임
▪ 소프트웨어 공학은 다른 공학의 생산 규범과 다르다.
▪ 소프트웨어 공학자는 소프트웨어의 현실 세계를 모델링한다. 현실 세계란 시스템을 개발하기 원하는 영역이다. 이런 모델은 크고, 추상적이고, 복잡하기 때문에 시스템 설계나 사용자 지침서 등의 문서로 표시해야 한다.
[ 소프트웨어의 실패(소프트웨어 공학이 필요한 이유) ]
▪ 필요로 하는 기능을 만족하지 않는 상태에서 소프트웨어를 출하하여 설치
▪ 소프트웨어 실패의 두 가지 요소
- 요구의 증가 : 시스템은 새로운 요구사항을 추가해야 한다.
- 소홀한 관리 : 상당한 회사들이 모든 작업에서 소프트웨어공학방법을 사용하지 않는다. 따라서 개발 기간이 연장되고 예산을 초과한다.
[ 전문적인 소프트웨어 개발 ]
▪ 개인적인(아마추어) 소프트웨어 개발
- 소프트웨어는 개인적인 흥미와 여가활동으로 개발되어 진다. 소프트웨어는 개인에 의해 개발 되어 진다.
▪ 전문적인 소프트웨어 개발
- 소프트웨어는 구체적인 사업 목적으로 개발 되어 진다.
- 팀을 꾸려 개발한다.
- 추가적인 도구들과 함께 제공 되어 진다.(문서, 파일, 고객의 지원)
▪ 소프트웨어 공학
- 전문적인 소프트웨어 개발을 돕기 위해 만들어 진 것이다.
- 프로그램, 설계, 진화를 돕기 위한 기술이다.
[ FAQ ]
Question | Answer |
소프트웨어란? |
컴퓨터 프로그램과 그와 관련된 문서 소프트웨어 상품은 특정한 고객들을 위해 개발되어 지거나 일반적인 시장을 위해 개발되어 진다. |
좋은 소프트웨어의 속성은 무엇인가? |
좋은 소프트웨어는 사용자를 위해 요구된 기능과 결과들을 가져다 준다. 좋은 소프트웨어는 또한 유지보수가 가능하고 의존적이다. |
소프트웨어 공학은 무엇인가? | 소프트웨어 공학은 소프트웨어 제품의 모든 면과 관련된 공학 규율이다. |
근본적인 소프트웨어 공학 액티비티는 무엇인가 | 소프트웨어 명세화, 소프트웨어 개발, 소프트웨어 검증, 소프트웨어 진화 |
소프트웨어 공학이 직면한 도전과제는 무엇인가 |
증가하는 다양성에 대항한다. 줄어든 배포 시간을 요구한다. 가치 있는 소프트웨어를 개발하는 것 |
소프트에어 공학의 비용은 어떤가? |
개발 비용 60%, 테스트 비용 40% 일반적인 소프트웨어에서, 진화 비용은 종종 개발비용을 넘어선다. |
최고의 소프트웨어 공학 기술과 방법은 무엇인가? |
모든 소프트웨어 프로젝트들이 전문적으로 관리되고 개발 되어 져야 하지만, 다른 기술은 시스템의 종류에 따라 적절하게 사용된다. Ex) 게임의 경우에는 많은 프로토타입을 통해 개발되어 진다. 안전성을 중요시 하는 시스템의 경우에는 개발 전에 명세서를 먼저 완성하고 분석하는 방법을 사용한다. 따라서 다른 것 보다 더 좋은 하나의 방법은 없다. |
댓글이나 공감 남겨주는 사람 착한사람
'학사 그리고 석사 > 소프트웨어공학' 카테고리의 다른 글
Waterfall model (0) | 2019.10.03 |
---|---|
소프트웨어 프로세스 모델 (0) | 2019.09.29 |
소프트웨어 공학 (2) (0) | 2019.09.27 |
소프트웨어 공학 (0) | 2019.09.27 |
소프트웨어 제품 (0) | 2019.09.27 |