요구 분석은 문제 해결의 첫 번째 단계이고, 시스템 소프트웨어가 무엇을 요구하는지를 자세하게 설명하는 것이다. 왜 요구 분석을 정형화하는가? 1. 명확한 요구 분석은 명확한 프로그램을 만들수 있게 해주기 때문이다. 2. 논쟁을 피하는데 도움을 준다. (이 논쟁이 프로그래밍에 있어서 사소하다고 생각하면 나중에 상처입거나 입힐수 있다는 점이 떠오른다;;) 3. 요구 분석에 기울이면 개발을 시작한 이후에 시스템 수정을 최소화 하는데 도움을 준다. (이 부분도 막강하게 좋다, 초기 요구에 대해서 생각해두지 못하고 개발을 하게 되면, 나중에 요구가 생겼을때 힘들어지게 되었다.) 입증된 자료 대표적인 사례들을 예로 들며, 요구분석을 지나 아키텍처 단계에서 요구분석 에러가 발생되면 5배 정도의 비용 손해 코드 작성 ..
전체 글 검색 결과
"컨스트럭션(구축, 설계, 이하 컨스트럭션으로 통일한다.)의 시작 전에 수행해야 할 첫 번째 필요조건은 시스템이 해결해야 할 문제를 확실히 정의하는 것" 이라고 필자는 설명한다. 이 책은 컨스트럭션에 관한 책이므로 문제 정의가 빠짐없이 모두 기술되어 있는지와 그 기술된 것들이 컨스트럭션의 기초가 되기에 충분한지 알려준다. 문제정의하는 방법으로는 1. 우리는 해외 주문은 수행할 수 없어요. 2. 우리는 해외 주문을 수행하기 위해서 자동화된 데이터 입력 시스템을 최적화할 필요가 있아요. 이렇게 두가 방법이 있는데, 필자는 1번째 방법으로 문제를 기술하라고 한다. 2번은 문제 해결책이기 때문이다. (해결책이 나쁘다는것이 아니라, 이 해결책은 컨스트럭션 단계이기 때문이다. 단계는 밑에 따로 쓰겠다.) 문제 정의..
필요조건이 왜 중요한가? 프로젝트 진행중, 질적 수준(어떤것에 대한 최적화)을 강조가 되는데, 이런 질적향상이 어느때 발생하는지에 따라서, 효율이 다르다고 필자는 설명한다. 프로젝트 마무리 단계에서 질적 수준을 강조한다면, 테스트에 중점을 두어야 하지만, 테스트는 잘못된 소프트웨어(원래의 목적)를 개발했을때는 문제를 찾아 낼수 없다고 설명한다. 이러한 테스트는 컨스트럭션(구축,설계)가 시작되기 전에 수행해야 한다고 설명한다. (이 부분은.. 매우 공감한다. 마무리 단계에서 테스트는 단지 버그가 있는지 없는지 밖에 파악을 못한다.) 이런 질적 향상을 하기 위해서는 필요조건을 충분히 만족시켜야 한다고 설명하고 있다. 그렇다면 불완전한 준비의 원인은 무엇일까? 가장 큰 이유는 개발기간에 있다고 필자는 설명한다..
많은 프로그래머들의 비유방법을 말해준다. 1. 편지 쓰기에 비유 : 코드 쓰기 - 간단한 프로그램에 있어서 좋은 비유지만, 거대한 프로젝트에 사용하기에는 힘든 비유라고 평가된다. 2. 농사짓기에 비유 : 시스템 기르기 - 단계별로 해 나간다는 비유이지만, 어떻게 개발하는것인가에 대해서는 사용할수 없다고 평가된다. 3. 조개양식에 비유 : 시스템 증대 - 조개가 진주를 만들어 내는 비유로, 점차적으로 소량의 칼슘을 탄소화시키는 과정으로 설명되며, 조개의 이미지를 점증적 개발이나 증대를 설명하는데 좋은 방법으로 평가된다고 저자는 설명한다. (나의 경우로 .. 조개를 길러본적이 없어 딱히 와닫지 않는다;) 4. 건스트럭션에 비유 : 구축 - 현재 많은 프로그래머가 사용하는 비유이며, 이를 통해 많은 단어들이 ..
전 설명에서 비유의 중요성을 설명했듯이. 적절한 비유는 해결책을 제시하는 것이 아니라, 그것을 찾는 방법을 알려준다. 보는 관점에 따라 프로그램이 달라질수 있다는 것이다. 저자가 설명하는 개발방법론은 알고르짐이라기보다는 경험적 방법에 의존하는것이다. 알고리즘은 길을 가는 방법이고 비유방법(경험적 방법)은 길을 찾는 방법이라고 저자는 설명한다. 사실 두가지의 방법론은 미묘한 차이라고 저자는 설명하고, 문제 해결 방법에 있어서 간접성 정도의 차이라고 한다. (내 생각으로는 비유방법은 알고리즘을 만드는 방법 이라고 생각된다.) 그리고 프로그램 작성 상의 문제 해결방법을 정확히 지시한다(알고리즘)는 것은 힘들다고 한다. (필자의 관점의 알고리즘은 개발방법론이고, 내가 생각한 알고리즘은 프로그램을 뜻한다.) 프로..
최근댓글