Computer Science/SW Engineering
-
소프트웨어 공학(4) - 테스트와 유지보수Computer Science/SW Engineering 2021. 12. 15. 20:52
소프트웨어 테스팅 프로그램 테스트 의도적으로 프로그램을 사용하기 전 결함을 발견하는 것이다. 인공적인 데이터를 사용한다. 테스트는 테스트에 한해서만 에러를 보여준다. 전체를 보여주는 것이 아니다. V&V가 테스트의 대부분이다. 테스트 대상 소프트웨어 요구사항 에러/실수 결함/버그 → 검증 단계에서 주로 발생 실패 (결함의 결과) 모든 결함이 실패를 만들지는 않는다. 검증 및 확인 Verifacation 요구사항 명세대로 만들었는지 확인 모든 요구사항마다 1개 이상의 테스트가 존재해야한다. Validation 사용자의 실 요구에 잘 맞는지 확인 의도적으로 결함을 드러내도록 테스트한다. 시스템이 사용되는 상황을 예상해서 테스트 케이스를 작성한다. → 의도대로 동작하는지? validation test 시스템의..
-
소프트웨어 공학(3) - 설계 및 구현Computer Science/SW Engineering 2021. 12. 12. 17:35
설계와 구현 실행 가능한 소프트웨어가 개발되는 단계 설계와 구현은 독립적이지 않고 서로 중첩된다. 설계에서 컴포넌트, 관계를 식별하고 이를 바탕으로 구현을 진행한다. 설계 vs 구매 구현 결정 초기 단계에서 시스템을 직접 설계할 것인지 구매하여 사용할 것인지 결정해야한다. 기존의 소프트웨어를 구매하여 요구사항에 맞게 설정할 수 있다. 이는 새로운 시스템 개발 진행 보다 비용이 적고 시간도 빠르다. UML 기반의 객체지향 설계 프로세스 단계 시스템 컨텍스트와 외부 상호작용을 정의 시스템과 외부 환경 사이의 관계를 이해하는 것 이를 바탕으로 요구 기능 제공과 시스템 통신 방법을 결정한다. 시스템 경계 확립 어떤 기능이 구현되어야 하는지에 대한 개발 범위를 결정한다. 컨텍스트 모델과 상호작용 모델을 통해 시스..
-
소프트웨어 공학(2) - 아키텍처 설계Computer Science/SW Engineering 2021. 12. 10. 21:27
아키텍처 설계 소프트웨어 시스템이 어떻게 구성되어야 하는지? 시스템의 전체 구조 설계를 이해하는 것 시스템 내 주요 컴포넌트와 그 관계를 식별하는 중요한 연결 아키텍처 설계 프로세스를 통해 확인할 수 있는 것 시스템이 컴포넌트들 간의 집합으로 어떻게 구성되어 있는지 표현하는 모델 아키텍처 추상화 작은 단위의 아키텍처 개별 프로그램은 어떻게 구성되어있는지? 시스템이 컴포넌트들로 어떻게 구성되었는지? 큰 단위의 아키텍처 외부 시스템과 컴포넌트를 포함하는 시스템 이 시스템이 어떻게 분산되어 있는지? 아키텍처 명시화의 장점 이해관계자가 시스템을 이해하는 것에 도움이 된다. 비 기능적 요구사항에 대한 시스템 분석에 도움이 된다. 대규모 재사용을 통해 새로운 아키텍처 설계에 참고와 시간 단축이 가능하다. 아키텍처 ..
-
소프트웨어 공학(1)Computer Science/SW Engineering 2021. 12. 9. 23:05
소프트웨어 - 개발 비용은 소프트웨어 프로세스에서 적은 비중을 차지 - 유지 보수 비용이 개발 비용보다 크다. - 요구사항은 지속적으로 바뀐다. 소프트웨어 제품의 유형 - 일반 소프트웨어 → 어떤 고객이던 구매 가능, 현재는 맞춤식 SW도 반영 - 맞춤식 소프트웨어 → 특정 고객에게 맞춤, 고객이 SW 명세를 개발하고 통제 좋은 소프트웨어의 특성 - 수용성 : 설계 목적에 부합하는 사용자를 수용할 수 있어야 한다. - 확실성 : 시스템에 장애가 발생하더라도 경제적 피해를 야기하면 안된다. - 보안성 : 악의적인 사용자가 시스템에 피해를 입힐 수 없어야한다. - 효율성 : 시스템 자원을 낭비하면 안된다. - 유지보수성 : 고객의 요구를 충족시킬 수 있도록 진화할 수 있어야한다. 공통의 기본 소프트웨어 프로..