이 수업에서는 다양한 소프트웨어 개발 방법에 대해 배웁니다. 우리가 집중하고 프로젝트를 개발하는 데 사용한 방법은 폭포 방식이었습니다.
처음부터 언급 한 소프트웨어 개발 세계에이 모델을 도입 한 사람이 대규모 소프트웨어 시스템을 개발하는 데 부적합한 클래식 폭포 모델을 배웠을 것입니다. 많은 사람들이 Waterfall 모델로 간주하는 문제에 대한 자세한 내용을 알아 보려면 Winston Royce의 대형 소프트웨어 시스템 개발 관리라는 제목의 논문 을 읽는 것이 좋습니다.
그러나 Waterfall 모델은 소프트웨어 개발 수명주기를 가르치는 데 유용하며 요구 사항 엔지니어링, 건축 설계, 세부 설계, 구현, 테스트 및 유지 관리에 대해 배우고 수행하는 데 매우 명확하고 뚜렷한 단계로 시간을 소비 할 수 있습니다.
클래스 다이어그램에는 개인 속성을 포함한 모든 속성과 메서드를 나열해야했습니다. 기능을 최대한 짧고 집중적으로 유지하는 몇 가지 책, 즉 Clean Code를 읽었습니다. 다른 개발자를 도와주지 않으면 다이어그램에 모든 작은 기능을 나열하는 것이 지루한 것 같습니다 (비공개, 다른 사람은 사용하지 않을 것입니다). 또한 프로그램을 설계 할 때 모든 작은 기능을 생각하지 못할 수도 있으며 리팩토링 할 때 나타날 수 있습니다.
이것들은 모두 매우 유효한 포인트입니다.
폭포수를 사용하는 경우에도 디자인 단계에서 모든 속성과 메서드를 나열하는 것은 너무 과도 할 수 있습니다. 필수 속성과 함께 공개 된 모든 것을 반드시 나열해야합니다. 실제로 다른 모든 것은 구현을 다이어그램으로 리버스 엔지니어링하여 얻을 수있는 구현 세부 사항입니다.
Clean Code의 조언 (나는 그것을 읽지 않았습니다-당신이 게시 한 내용으로 가고 있습니다)은 폭포 형 방법론을 사용할 때조차도 공정한 것으로 보입니다. 단일 책임 원칙 , 문제 분리 및 기타 SOLID 원칙 과 관련하여 클래스와 방법을 설계 할 수 있습니다 . 폭포는 필요할 때만 디자인하는 방법을 알려주지 않습니다. 즉, 구현하는 동안 더 나은 방법을 배우고 생각할수록 선구자가 더 어려워집니다.
디자인과 구현 사이에 반복이 필요하다는 사실을 지적합니다. 전통적인 폭포가 설명하지 않은 문제입니다.