2011-12-14 4 views
0

나는 사용자 상호 작용에 복잡성이있는 소프트웨어를 계획하는 데 익숙합니다. 내가 배운 애자일 소프트웨어 공학 원리는 그런 유형의 시나리오에서 잘 작동합니다. 사용자 스토리는 대부분의 계획이 사용자의 상호 작용을 중심으로 진행될 때 매우 쉽게 작성할 수 있습니다.데이터 기반 프로세스를위한 소프트웨어 엔지니어링

나는 현재 사용자가 가지고있는 개입만으로 go 버튼을 누르고 오류가 발생하면 오류를 읽는 시스템에서 작업하고 있습니다.

이 시스템의 다른 모든 작업은 데이터 처리 중이고 매우 무거운 데이터 처리입니다. 이 처리 과정에서 계획 할 데이터의 약 5 가지 변형이 있습니다.

이러한 프로세스는 본질적으로 느슨하게 결합되어 있으므로 서로 다른 프로세스로 계획하기 쉽고 워크 플로로 작업해야합니다. 그렇더라도 데이터 기반 프로세스를 계획하는 문제는 여전히 남아 있지만 규모는 작습니다.

이와 같은 데이터 기반 프로세스를 계획하려면 어떻게해야합니까? 이 유형의 소프트웨어에 대해 알려진 설계 프로세스가 있습니까?

답변

1

동일! 계획반복적 인 개발에 대한

민첩한 원칙은 모든 유형의 프로젝트에 사용할 수 있습니다. 이것은 여전히 ​​사용자 중심 일 수 있지만 "사용자"개념을 확장해야 할 수도 있습니다. 누가 당신이 만들고있는 소프트웨어를 궁극적으로 사용할 것입니까? 당신 자신? 기술 팀? 다른 프로세스들? "실제"사용자입니까? 그들이 누구든 디자인에 포함시켜야하고 스펙을 토론 할 필요가 있습니다.

  1. 사용자가 원하는 것을 우선 순위로 지정하십시오. 그들이보고 싶어하는 "핵심"기능은 무엇이며, 그리고/또는 새로운 프로세스의 가장 중요한 아키텍처 정의 기능은 무엇입니까? 처음 몇 번의 반복을 계획하십시오. (반복 환경 0을 설정 한 후). 이것의 끝에서, 당신의 시스템은 그것이해야하는 모든 일을하지는 않을 것입니다, 그러나 그것은 시작 일 것입니다. 또한 종단 간 이야기에 중점을 둡니다. 원하는 출력이 아닌 경우 조기에 출력물을 생성 한 다음 리팩터링하여 다시 출력하는 것이 좋습니다.

  2. 각 이야기의 시작 부분에 하나의 문장을 계속 추가하여 계속해서 사용자 이야기를 작성하십시오. "XXX로, 내가 ~하고 싶어 ...". 그래서 각 이야기는 그 이야기에 대한 원래의 요청자와 긴밀하게 연결됩니다. (XXX는 자신, 다른 시스템 또는 실제 사용자 일 수 있음).

  3. 집중 초기에 수용 테스트의 포괄적 인 세트에 집중하십시오. (아마도 JBehave 또는 FITnesse과 같은 자동화 된 프레임 워크를 사용하고있을 것입니다. (자바를 사용하는 경우에는 모든 언어에 대한 대안이 있습니다.) 데이터 중심 프로젝트의 경우 이것들이 가장 중요합니다 : 시스템의 문서로 작동하여 미래의 증거. "빈"(또는 "주어진"시스템)에서 시작하여 XX와 YY 및 ZZ를 데이터로 추가 할 때 결과는 AA, BB 및 CC 여야합니다. 사용자가 항상 확인하고 승인 한 경우 수락 테스트에서 해킹하고 줄이기를 주저하지 마십시오 (모든 가정을 확인하고 모든 것을 확인하십시오)

  4. 그런 다음 반복 후의 반복 원하는 사양 세트에 도달 할 때까지 복잡성 계층을 추가하십시오.

내가 다른 외부 시스템, 서로 다른 소스에서 병합은 "황금 소스"를 유지, 양방향 시간적 데이터베이스를 공급 포함 데이터 관리 및 처리 (저장소를 기반으로 대규모 프로젝트에 여러 매체에 참여했습니다 , 등) 그리고 기본적으로 팀이 더 민첩 해지면 더 성공적으로 프로젝트는입니다. 지금까지.

+0

내가 문제가있는 곳입니다. 이 제품에 관한 한, 관리가 신경을 쓰는 모든 것은 pdf 인 최종 제품입니다. 이 pdf는 데이터를 변환하고 조작하는 5 가지 프로세스로 만들어졌습니다. 사용자 스토리는 "형식 A의 데이터를 가져 와서 B 형식의 데이터로 변환"할 것입니다. – brandon

+0

그럴 수는 있지만 재생할 수있는 역할을 할 수도 있습니다. 반복적 인 접근 방식이 프로젝트를 실제로 개선하고 예제를 보여주고 교육 할 수 있음을 이해하게합니다. 나는 그것이 어려울 수 있음을 안다, 나는 항상 그것을 성공적으로 수행하지 못했다. 그러나 그것이 효과가 있었을 때, 그것은 항상 돈을 벌었습니다. 그들은 개념을 이해하고 벽돌로 벽돌을 건축하는 것을 보게되면 항상 이점을 보게됩니다. (물론 자주 풀어주는 한) – Guillaume

+0

최악의 경우 자신의 사용자가 되십시오. 가장 중요하고 정의하는 것이 무엇인지를 사양에서 정의하고 거기에서 빌드하십시오. 그것은 이상적이지는 않지만 폭포보다 여전히 좋습니다. – Guillaume

0

수락 테스트 (BDD가 요즘 많은 주목을 받고 있습니다)를 사용하면 도움이 될 수 있습니다. 결과 PDF의 확실한 다른 "기능"이 존재한다는 것을 확신 할 수 있습니까? BDD 수용 테스트를 사용하여 최종 사용자에게 해당 기능의 유효성 검사 (피드백 제공)의 책임 성을 높이려는 시도를 제안합니다.