2017-12-03 21 views
3

나는 (디자인 변경 전후의) PHP 애플리케이션의 제출 프로세스에 걸쳐 두 개의 UML 다이어그램을 만들려고합니다. 내 UML이 녹슬 었음을 깨닫고 내 다이어그램이 옳다는 것을 의심 스럽지만 시각적으로 프로세스가 아주 잘 설명되어 있다고 생각합니다.PHP 폼 제출을위한 UML 시퀀스 다이어그램

첫 번째 (디자인을 변경하기 전). 이 그것을 일부 DB의 데이터를 필요에 대한

  1. 사용자는
  2. Manage.php는 HTML을 구축 시작하는 CMS 페이지 (manage.php)를 입력합니다.
  3. 5-10 초 후에 CMS가 준비되고 사용자의 html로 표시됩니다.
  4. 사용자가 편집 할 양식이 포함 된 일부 페이지를 선택했습니다 (여러 페이지가 있으며 각각 다른 양식을 편집하는 고유 한 양식이 있음).
  5. 사용자가 양식을 편집/변경합니다. (모든 양식은 2 단계에서 현재 설정으로로드 됨)
  6. 사용자가 제출 버튼을 클릭합니다. 모든 폼 데이터는 processor.php로 보내지고 cms 페이지는 죽는다. ?? 양식이 페이지를 새로 고칩니다.
  7. 사용자가 일부 세션 항목 (facebook sdk)으로 확인되면 성공을 반환합니다.
  8. 프로세서가 작업 (편집 된 양식)을 식별합니다.
  9. 프로세서가 수신 한 데이터의 유효성을 검사합니다 (정상 이었음) 성공을 반환합니다.
  10. 프로세서가 CRUD 작업을 DB로 보냅니다. 성공!
  11. 프로세서가 일부 헤더를 설정하고 클라이언트에 응답을 보냅니다.
  12. CMS가 모든 것을 다시로드하고 db에서 새 데이터를 가져옵니다.
  13. 사용자로드가 끝나면 html 페이지가 다시 나타납니다.

enter image description here 어떻게 CMS와 JS가 죽었을 것으로 보일 수 있는가? (빨간색 X) 및 어떻게 다시 인스턴스화되었음을 보여줄 수 있습니까 (파란색 ->) ?? 이 디자인은 가난 때문에

디자인에서

변경 나는 그것을 바꾸기로 결심했습니다. 양식을 제출하고 작은 양식이 편집 될 때마다 전체 CMS를 다시로드하는 대신. jQuery ajax 요청과 비동기로 변경 사항을 제출하기로했다. CMS 페이지는 결코 새로 고쳐지지 않으며 "저장"프로세스는 이제 5-10 초 대신에 초고속입니다.

  1. 사용자는
  2. Manage.php이 어떤 DB의 데이터를 필요로이를 위해, HTML을 구축 시작하는 CMS 페이지 (manage.php)를 입력합니다.
  3. 로딩 화면이 표시됩니다 (가능한 한 조기에)
  4. 5-10 초 후에 CMS가 준비되고 사용자에게 html로 표시됩니다.
  5. 사용자는 양식을 포함하는 일부 페이지는
  6. 사용자는 저장 버튼을 클릭하고 기능을 트리거 ..../....
  7. 사용자 편집 편집 양식을 변경해야하기로 결정했습니다.
  8. 양식 데이터가 수집되어 변수에 지정됩니다.
  9. ajax 요청이 이루어지기 전에 단추가 주황색으로 켜져 아직 읽지 않았 음을 알립니다. 또한 사용할 수 없습니다.
  10. 아약스 요청이 있습니다.
  11. 사용자의 유효성을 검사하면 ... 성공입니다.
  12. 프로세서가 동작을 식별합니다 ....
  13. 프로세서가 수신 한 데이터의 유효성을 검사합니다.
  14. 프로세서가 CRUD 작업을 DB로 보냅니다. 성공!
  15. 프로세서가 상태 200을 설정하고 클라이언트에 응답을 보냅니다.
  16. ajax 함수는 success() 함수를 호출하여 단추가 녹색으로 바뀌면 이제 완료되었음을 알립니다.

enter image description here 유효성 검사 프로세스는 동일합니다. 그러나 나머지는 새로운 것이고 나는 이것이 정확하다는 것도 확신 할 수 없습니다. 둘 다 논리적 인 것처럼 보이지만 내 논리 감은 거의 해결책이 아닙니다. 특히 UML과 관련해서는 말이죠.

+0

언뜻보기에 이것은 괜찮아 보입니다. 그러나 귀하의 질문은 너무 광범위합니다. –

답변

2

적어도 첫 번째 스키마에서 나는 다음과 같은 설명을 제공 할 수 있습니다. - 그렇게 나쁘지는 않지만 툴을 모르지만 코드에서 다이어그램을 생성합니까? 루프해야

  • 이 manage.php 삭제할 수 없습니다 이전 끝나기 전에 이상한 시작하고 응답을

  • 반복을 보내 :

      • 페이지를 선택 17.6.3.17 Loop interactionOperator 루프는 CombinedFragment가 루프를 나타내는 지 지정합니다. 루프 피연산자는 번 반복됩니다. 루프 상태를 정의하는 가드입니다.

      • 긴 실행은 모든 메시지에서 논리가 아닙니다. 그것은

      빨간색 상자

      이 ExecutionSpecification 입니다 ... 모든 메시지가 synchrone 때문에

      일부 메시지가이 실행을 건너
    • , 그것이 비논리적 인 것 같다 ... 메시지에 의해 실행되지 않는다 "는 ExecutionSpecification은이다 라이프 라인 내에서 행동 또는 행동 단위의 실행을 명기하십시오. "

      나를 위해 메시지로 활성화되는 동작을 모델링합니다.

  • +0

    안녕하세요. 도와 주셔서 감사합니다. 사소한 수정으로 두 이미지를 모두 업데이트했습니다. - "페이지 선택"은 액터가 수행 한 액션입니다. 자바 스크립트는 해당 요청을 처리하고 CMS (manage.php)의 내용을 변경합니다. 살아있는 stile? 빨간색 상자는 라이브/활성을 의미합니까? 아니면 그것은 그것이 작동하고 있다는 것을 의미합니까 ?? - manage.php는 먼저 게시 요청을 보낸 다음 응답을 받고 새로 고칩니다. 당신은 응답을받은 후에 그것이 죽어야한다고 (X) 의미합니까? 아니면 페이지가 다시로드되기 때문에 현재 상태가 완전히 대체되었음을 시각적으로 표시 할 수 있습니까? –

    +0

    @ Rasmus Puls 빨간 상자가 ExecutionSpecification이고 그것에 대해 덧붙였다.분류기가 활성화되어 있는지 여부는 라이프 라인 (수직 파선) – granier

    +0

    아하에 표시되므로 두 번째 다이어그램에서 "긴"세로 실행 상자를 줄여 코드가 실행되도록 단축해야합니다. 다른 차선의 메소드를 호출하고 (반환을 기다리는 경우) 빨간색 상자를 멈추고 빨간색 상자를 계속할 수있는 다른 차선으로 화살표를 올려 놓습니다. 다른 차선의 통화가 실행되는 동안 스레드가 실행되고 계속 실행되면 두 차선 모두에서 빨간색 상자를 계속 진행할 수 있습니까? –