Origin: iansommerville.com/software-engineering-book/
전문적인 소웨 개발 - 소웨 공학이란 무엇을 의미하는가
소웨 공학에 영향을 미치는 윤리적 이슈들
3개의 예시
모든 발전한 나라의 경제들이 소웨에 의존한다.
점점 더 시스템들이 소웨에 의해 컨트롤 된다
소웨공학은 이론, 방법, 툴을 실제 소웨 개발에 관련이 있다.
소웨에 대한 지출은 선진국들 GNP의 상당부분을 차지한다
소웨는 종종 컴퓨터 시스템 비용을 넘는다
소웨는 개발보다 유지 비용이 더 들기도 한다. 오래 유지할 수록 개발비용의 몇배가 들기도 한다.
소웨 공학은 소웨 개발의 가성비를 고려한다.
소웨 플젝 실패이유
1. 시스템 복잡도의 증가
소웨 공학이 발전하면서 요구사항이 더 빠르게, 크게, 복잡하게 변화한다
2. 소웨 공학 방법론 사용의 실패
방법론을 사용하지 않고 개발하는 경우가 많고, 결과적으로 더 비싸고, 신뢰도 떨어지는 것이 나오는 경우가 있다.
소웨란 무엇인가?
컴퓨터 프로그램과 관련 문서들, 소웨 제품은 특정 고객이나 일반적인 마켓을 위해 개발된다.
좋은 소웨의 속성들은 무엇인가?
요구되는 기능성과 성능을 만족하고 유지보수 가능하고 신뢰도 있고 사용성 있어야 한다.
소웨 공학이란?
소웨 제품의 모든 관점을 고려하는 원리(discipline)
기본적인 소웨 공학 활동들은?
소웨 스펙정리, 소웨 개발, 소웨 검증, 소웨 진화
소웨공학과 컴싸의 차이점은? 소프트웨어 공학과 컴퓨터 과학의 차이점
컴싸는 이론과 기본에 초점을 맞추고, 소웨공학은 소웨 개발의 실용적인 부분을 고려한다.
소웨공학과 시스템공학의 차이점은?
시스템공학은 컴퓨터 기반 시스템 모두, 하웨, 소웨, 과정을 포함한다. 소웨공학은 일반적인 과정의 부분이다.
소웨 공학의 어려운점
다양성 증가,
소웨 제품 종류
Generic / Customized
제네릭한 제품은 개발자가 상세 만들고 개발자가 수정하고 싶은대로 시장에 맞추어 수정
커스텀 제품은 고객이 상세를 만들고 고객이 수정하고 싶은대로 수정사항 반영
좋은 소웨의 필수 속성들
1. Maintainability
2. Dependability and security
3. Efficiency
4. Acceptability
소웨공학은 공학원리인데, 시스템 상세 단계부터 유지까지 모든 단계의 관점을 고려한다.
여기서 원리는 이론 + 방법 둘 다 의미한다
여기서 제품의 모든 관점은 기술적인 개발과정과 관리, 툴, 방법 등 소웨 제품 지원을 위한 것들을 말한다.
장기적인 관점에서 보면, 소웨 공학 방법론과 기술을 적용하면 그냥 막 만든 것보다 더 비용이 싸다.
소프트웨어 과정의 활동들
1. SW specification 소웨 상세
2. SW development 소웨 개발
3. SW validation 소웨 검증
4. SW evolution 소웨 진화
소웨에 영향주는 일반적인 이슈들
1. Heterogeneity 이질성 - 하웨 및 환경이 다 달라짐 네트워크, 모블디바이스 등
2. 사업이나 사회의 변화
3. 보안과 신뢰
4. Scale 사이즈가 다양하다
소웨공학의 다양성
소웨 공학 방법론이나 툴들은 각 어플리케이션의 타입이나 고객 요구사항, 개발 배경에 맞추어 골라야 한다. 딱 맞는게 없음.
프로의 책임 문제들 (Issues of professional responsibility)
1. Confidentiality (기밀성)
2. Competence (역량을 과대평가 X)
3. Intellectual property rights (지적재산권)
4. Computer misuse (오용 X)
ACM/IEEE code of ethics (윤리행동강령)
Ethical principles
1. PUBLIC
2. CLIENT AND EMPLOYER
3. PRODUCT
4. JUDGMENT
5. MANAGEMENT
6. PROFESSION
7. COLLEAGUES
8. SELF