2009-05-20 4 views
2

저는 프로젝트 작업을하고 있으며 시스템에서 수행해야 할 작업에 대한 높은 수준의 사용자 요구 사항을 개발했습니다. 이 프로젝트는 CodeIgniter 프레임 워크에 구축 된 PHP 웹 애플리케이션입니다. 이제는 이러한 요구 사항을 수용하여 컨트롤러/액션으로 추가로 분해하려고합니다. 이 작업을 수행하는 가장 좋은 방법은 무엇입니까?CodeIgniter 웹 어플리케이션에 대한 필자의 요구 사항은 무엇입니까?

4 개의 열이있는 표가있는 단어 문서를 만들려고했습니다. 열 1은 컨트롤러의 이름이고, 열 2는 작업을 가지며, 열 3은 작업에 고유 한보기 이름을 가지며 네 번째 열은 해당 사용자가 해당 작업에 액세스 할 수 있음을 나타냅니다. 이게 좋은 생각 같습니까?

저는 응용 프로그램을 작성하기위한 인터페이스의 첫 번째 방법이 좋지만 사실적으로 프로토 타입 인터페이스를 만들기 전에 필요한 뷰가 무엇인지 알아야합니다.

아무도 도와 줄 수있는 응용 프로그램 및 설명서를 계획하는 방법을 알려 주실 수 있습니까?

답변

9

귀하의 분류는 좋은 생각이지만 실제로는 단계입니다.

는 여기에 내가 할 줄 작업은 다음과 같습니다

  • 당신의 요구 사항을 가지고 가고, 시나리오 ("사용 사례", "사용자 스토리")의 시리즈로 돌립니다.

  • 좋은 코드 페어리가 완벽한 시스템을 제공하려는 경우 원하는 사용자 인터페이스의 기초를 골라 종이에서 스케치하십시오.

  • 시나리오를 거치며 이야기의 모든 명사에 밑줄을 긋습니다. 그것들은 아마도 도메인 객체 일 것입니다. 모든 동사의 밑줄을 다른 색상으로 지정하십시오. 각 동사는 해당 도메인 객체 중 하나의 메소드입니다. 사실, 도메인 객체는 동사의 객체가 될 것입니다. 멋지죠?)

  • 해당 도메인 객체를 사용하여 해당 사용자 인터페이스를 구현하는 방법을 설명하십시오.

  • 그것은

  • 누가 변함없이

  • 당신이 당신의 요구 사항 inot 배운 변경 및 물건을 넣어 "나는 하지만 좋아"말할 것이다, 당신의 고객에게 보여, 반복 빌드가 수표가 사라질 때까지 Java Design: Building Better Apps and Applets :

피터 코드는 아직도 정말이에 대한 최고의 초보자 책이다 생각 썼다. 자바를 지향하지만 디자인 부분은 보편적입니다.

도메인 개체는 모델이고 데이터 표시는 대략적으로보기이며 동작에 첨부 된 코드는 컨트롤러입니다. 사용 사례에


사용 사례 또는 사용자 이야기를 할 수있는 "올바른 방법"엄청난 토론과 종교 전쟁이 적용됩니다.Cockburn의 somewhat complex form에서 notesscribbledindexcards에 이르기까지 여러 가지 옵션이 있습니다.

설명하는 응용 프로그램의 경우 두 가지를 수행합니다. 25 단어 이하로 유지하려고합니다. SMART 약어에 대해 생각합니다.

  • 25 단어 이하는 작게 유지하는 데 도움이됩니다. 몇 가지 작은 이야기를하는 것이 큰 일에 몇 주를 보내는 것보다 낫습니다.

  • SMART는 "특정, 측정 가능, 책임 및 테스트와의 계약"의 약자입니다. (또는 적어도 그게 내가 그것을 해석하는 방법입니다. 다른 버전이 있습니다.)

    • 특정, 당신이 요청을 받고 있는지 알고 편안해야합니다. 뭔가를 당신이 될 필요가 있고 고객이 모두 만족에게 필요가 동의 할 수 있기 때문에
    • 측정, 당신은 시험의 어떤 방법 또는
    • 계약 허용 될 것입니다 어떤 진술의 일종을 가지고있다 -에 즉, 책임와 계약의 "마음의 만남"
    • , 당신은 당신이 고객 또는 사용자가 제공 할 책임이 무엇인지, 제공되고있는 것을 알고있다, 당신은
    • 무엇 테스트, 다른 말로하면, "수락 가능하다"또는 "받아 들일 수 없다"라는 대답을주는 효과적인 절차가 있어야합니다.

형태 내가 사용하는이 패턴에게 어떤 혜택의 결과로 특정 역할
않는 무언가
에서

사용자가

따라서, 귀하의 예제에서, 나는

  • 관리자를 작성합니다 (누가?)
  • 목록을 모든 FAQ를
  • 업데이트 그들을 검토 (무엇을?). (이유는 무엇입니까?)

"결과로 얻는 이익"부분은 내가 강조하고 많은 사람들이 언급하지 않았거나 언급조차하지 않는 부분입니다. 나중에 우선 순위를 정해야 할 경우 많은 도움이됩니다.

"테스트"부분은 수락 테스트에 대한 설명입니다. "이것이 완료 되었습니까?"라는 질문에 대답하고 있습니다. 따라서 수락 테스트는

  • 일 수 있습니다. 로그인 한 관리자는 "목록 FAQ"를 선택합니다. 모든 알려진 FAQ는 올바른 형식으로 나열되어 있습니다.

expect 또는 gui 테스트 도구와 같은 일부 도구가 자동으로 실행할 수 있도록 설정하는 것이 이상적이지만, 특히 소규모 프로젝트에서는 수동으로 테스트 할 수 있습니다. 당신 자동화 테스트를 원합니다. 시스템을 빌드 할 때 회귀 테스트를하고 싶기 때문입니다. 즉, 나중에 변경된 사항이 없는지 확인하기 위해 테스트를 반복해야합니다.

+0

"관리자가 FAQ를 관리하도록 허용"이라는 요구 사항이 있다고 가정 해 봅시다. 해당 요구 사항에 대한 사용 사례는 무엇입니까? 분명히 그 요구 사항을 더 세분화하려면 관리자가 추가, 편집, 삭제, faq의보기가 가능해야합니다. 이들 각각에 유스 케이스가 있습니까? 아니면 전체적으로 요구 사항일까요? – Joe

+0

그건 좋은 질문입니다. 교수는 "나는 진짜 확실한 대답이 없습니다."라고 말합니다. 나는 그 답에 더 많은 것을 추가 할 것이다. –

+0

도움을 주신 Charlie에게 감사드립니다. 따라서 내가 올바르게 당신을 이해한다면, 각각의 행동은 자신의 유스 케이스를 가질 것입니다. 유스 케이스를 여러 사용자가 공유해야하는 경우 예를 들어 블로그 컨트롤러가 있고 해당 컨트롤러에 대한 작업이 edit_post 일 수 있습니다. 블로그 게시물을 쓰는 사용자가 여러 명인 경우 edit_post 작업에 액세스해야하지만 마스터 관리는 게시물 검토시 사용자 게시물을 편집해야 할 수도 있습니다. 따라서 동일한 기능에 액세스해야하는 두 명의 사용자가 있습니다. – Joe

0

당신이하는 일은 사용자 중심적입니다.

  1. 당신은 화면의 거친 모형 (사용 Balsamiq 또는 무언가를) 확인하고 고객/이해 관계자에게 보여주고, (그들은 그것을 사용하는 것처럼) 그것을 통해 도보. 그들에게 동의하도록하십시오.
  2. 이 그럼 당신은
  3. 그런 다음 다시 클라이언트에게 보여주는 것은 (나는 당신이 밖으로 그 부분을 알아낼 수 있습니다 확신을) 코드 및 변경에 동의 (그들이 실제로 세부에서 사용이).
  4. 지금 당신은

행운을 완료!

관련 문제