소프트웨어 - 프로그램과 이의 개발, 운용, 수정, 기능확장을 위한 모든 정보 - 프로그램의 동적인 의미 프로그램 : 형식언어(Formal Language)로 표현된 지적 구축물 특징 비가시성 구조가 외부에 보이지 않고 코드에 내재되어 있다. 복잡성 개발과정이 복
소프트웨어 시스템을 만들때 필요한 활동Specification어떠한 기능을 제공하는가기능을 어떠한 방식으로 제공할것인가기능을 제공하기 위해 어떠한 방식으로 시스템이 설계되어야 하는가Design and Implementation구현Validation고객이 원하는것을 할수
Agile Development 빠른 개발과 배포 비즈니스 요구에 빠른 대처 Specification / Design / Implementation을 동시에 빠른 버전 업데이트 자동화 테스팅 툴 문서 최소화 Output을 계획하는 Plan-Driven 방식과는 달
해석/이해가 되어야 한다 자세하고 구체적인 설명이 되어야 한다.사용자들이 사용하기 위한 작동 제약구체화된 설명해야되는것의 요구사항언제/몇명에게 제공할지 정하기최종 사용자시스템 관리자시스템 소유자등등
시스템의 추상적 Model 작성UML ( Unified Modeling Language ) 를 사용한다.기존에 존재하던 시스템의 Model은 요구사항 공학 과정에서 사용 가능하다.새로운 시스템의 Model은 다른 시스템 이해관계자들에게 요구사항을 설명하는데 도움을 준다
소프트웨어 시스템이 어떻게 구성되고 전체적 구조가 어떻게 되는지Architecture in small : 개별 프로그램의 Architecture, 개별 프로그램이 컴포넌트로 세분화된다.Architecture in large : 다른 시스템, 프로그램, 프로그램 컴포넌트
소프트웨어 설계 및 구현 활동은 항상 상호 연관되어 있습니다.시스템을 구매해서 요구사항에 맞게 맞출수도 있습니다.객체지향 설계기법을 사용 가능Define the context and modes of use of the system우리의 시스템이 할 것과 하지 않을 것에
프로그램이 의도된대로 동작하는지를 확인하고 프로그램의 결함을 확인하는 과정특정 데이터를 이용해 프로그램을 실행시킨다.에러/부정확한 동작 혹은 Non-functional attribute 가 결과로 나올수 있다에러가 있다는것을 확인했다는 이유로 에러가 없다고는 할수 없다
소프트웨어의 변경은 필연적이다.새로운 요구사항에러 수정새로운 시스템의 등장시스템의 전반적 성능 향상소프트웨어 시스템에 보통 큰 투자를 한다.그 자산들의 가치를 유지하기 위해선 변경점이 꾸준히 존재해야 한다.대기업 소프트웨어의 대부분은 새로운 개발보다는 유지보수에 초점을