[자료구조] 02 소프트웨어 개발
✔️소프트웨어 개발 주기
요구사항 ==> 분석 ==> 설계 ==> 구현 ==> 검증 ==>yes면 끝, no 면 다시 요구사항으로
📌요구사항 명세 (Requirement specification)
프로젝트의 목표를 정의하는 명세서 제작
명세서 내용 : 목표 프로그램의 사용환경 (platform) , 주요 기능 (function) , 입출력 정보 (input/output) , 사용자 인터페이스(user interface) 등 포함
if, 요구 사항에서 누락되는 부분이 있으면 이 단계를 다시 반복해야 함
📌문제 분석 (Analysis)
추상적으로 기술된 요구사항들을 용이하도록 구체적, 적당한 크기의 세부 문제로 분할
👇 상향식
기본 단위 조합 => 중간 단위의 서브 시스템 구축 => 서브 시스템 결합, 최종 목표 시스템 구축
👇하향식
프로젝트 최상위 목표에서 출발 => 필요한 하위 모듈 구성 => 최종적으로 모듈의 전체 hierchy 생성
📌기능 설계 (Design)
문제 분석 단계에서 생성된 각 모듈에서 필요한 객체, 연산자 정의
객체 : 속성 정보 (property) + 연산자 (method)
ex) 학교 시스템의 객체 : 학생, 교수, 교과목
이 객체의 생성, 속성 변경, 객체 삭제를 위한 연산자 필요
📌구현 (Implementation)
각 모듈 기능 상세화, 실행 가능한 코드로 변환
📌검증 (Verification)
testing 방법을 이용
👇블랙박스 시험 (black box test)
입력 값으로부터 발생하는 출력 값을 보고 정확도 판단
👇화이트박스 시험 (white box test)
프로그램 내부 루틴을 포함하여 오류 검사
+ document 화 하는게 굉장히 중요하다
이는 소프트웨어 공학 수업에서도 배우는 중요한 단계이다