내 경험에 비추어 볼 때, 비즈니스 프로세스와 잘 일치하는 소프트웨어는 비즈니스 프로세스가 변경 될 때 변경하기가 더 쉽습니다. 이 접근법에 가장 적합한 아키텍처 유형은 무엇입니까?소프트웨어를 비즈니스 프로세스에 맞추는 방법은 무엇입니까?
답변
좋은 질문 ...하지만 처음에는 ... SOA? 이는 훌륭한 전문 용어이지만 종종 "실제"정의가 하나도 없기 때문에 오해가됩니다. 지옥! 마틴 파울러 (Martin Fowler)조차도 이제이를 "ServiceOrientedAmbiguity"라고 부르며 사람들로 하여금 그것을 전혀 제기하지 않도록 장려합니다.
실제적으로 "하나" """"대답이 없습니다. 기업의 IT 요구 사항은 다음과 같습니다. 일반적으로; 아주 다양합니다. 이러한 요구는 고객, 파트너, 시장 동향, 법규, 규제 기관 등과 같은 외부 드라이버의 영향을받는 경우가 많습니다. 대부분의 경우 이러한 드라이버는 아키텍처에 영향을 주거나 "성능 향상"을 달성 할 수있는 능력을 절충하거나 제한합니다 " 건축물. 그것은 또한 glib 소리가 날 수도 있지만 그건 내 의도가 아닙니다. "최고의"아키텍처와 같은 것이 있다는 개념은 많은 사람들로 하여금 엄청난 양의 에너지 (그리고 돈)를 계속해서 낭비하게 만듭니다. 의도적 인 것은 아니지만 이러한 견해는 단일 공급 업체/커뮤니티의 대리인이되거나 제품을 프로세스로 판매하는 사람들이 뒷받침하는 경우가 많습니다.
소프트웨어 공학 관점에서 볼 때 오래된 구상은 비즈니스 요구 사항을 충족시킬 수있는 가장 신뢰할 수있는 수단으로 계속 남아 있습니다. 예를 들어,
- 별도에게 우려
- 레이어 아키텍처 유연성을 염두에 격리에서
- 테스트 레이어
- 디자인하고 함께
- 을 테스트 회귀 볼 수 있도록 지속적인 통합 관행을 채택 더 빨리
- 요구 사항 및 사양을 기본 드라이버로 지정하십시오.
- 공구에 투자하고 투자하십시오. UR 개발자
- 기타 ...
하나 개 아키텍처 패턴, 기술, 또는 언어에 대한 언급이없는 사항 ...이 정말 드라이버하지 않기 때문에 즉,이다 그들이 블러 수 있지만 및 다양한 요인을 고려하여 변경 될 것입니다. 한 번 더 더 자세히 설명해 드리겠습니다. "비즈니스 프로세스"와 소프트웨어 엔지니어링 프로세스에는 매우 다른 관심사, 관점 등이 있습니다. 어느 한 그룹이 다른 그룹과 동일한 기능을하도록 강요하면 완전히 실패하게됩니다. 그것은 날짜, 기능적 산출물 등과 같은 약속을 공유하지 말아야한다는 말은 아닙니다. 이러한 그룹은 효과적으로 일하기 위해서는 다르게해야하지만 분명히 공유 된 비전이 필요한 것들을 전달할 방법을 찾아야합니다. 여기에는 수많은 디자인 및 라이프 사이클 관리 프로세스가 도움이 될 수있는 곳이 있습니다. (예 : DDD, MSF, SCRUM, CMMI 등).
나는 이것이 건설적인 것이 었음을 의미했다 ... 도움이 되길 바랍니다.
Glib 대답 : 엔터프라이즈 아키텍처.
어떤 종류의 대답을 찾고 계십니까? 내 경험상 각 비즈니스는 고유 한 요구 사항을 가지고 있습니다. 특히 진화하고자하는 방향과 관련하여 필요할 때가 있습니다. 수정 가능성은 비용 통제, 시장 진입 시간, 효율성, 보안, 유용성 및 비용면에서 자원과 경쟁하는 바람직한 특성 중 하나 일뿐입니다. 경비원의 나머지.
네 말이 맞아. 더 많은 자질이 있습니다. 비즈니스가 더욱 민첩 해지고 시장 출시시기를 반영해야하기 때문에 modfiability를 선택했습니다. SOA를 비즈니스 중심적인 방식으로 소프트웨어를 구성하는 방법으로 생각했습니다. – jimmystormig
- 1. 문자열을 사각형에 맞추는 방법은 무엇입니까?
- 2. int64에 구조체를 맞추는 방법은 무엇입니까?
- 3. 소프트웨어를 반복적으로 배포하는 방법은 무엇입니까?
- 4. pendrive에서 소프트웨어를 실행하는 방법은 무엇입니까?
- 5. 루비 소프트웨어를 배포하는 방법은 무엇입니까?
- 6. div를 세로로 가운데 맞추는 방법은 무엇입니까?
- 7. 다음 구성 요소에 초점을 맞추는 방법은 무엇입니까?
- 8. 전화 창에 Qt 애플리케이션을 맞추는 방법은 무엇입니까?
- 9. 스크롤과 div 열을 나란히 맞추는 방법은 무엇입니까?
- 10. 두 div를 가로로 나란히 맞추는 방법은 무엇입니까?
- 11. 비즈니스 계층을 테스트하는 방법은 무엇입니까?
- 12. 약간 다른 소프트웨어를 유지 관리하는 방법은 무엇입니까?
- 13. 배포 가능한 소프트웨어를 작성하는 방법은 무엇입니까?
- 14. Java에서 파일 인덱싱 소프트웨어를 작성하는 방법은 무엇입니까?
- 15. 오픈 소스 소프트웨어를 이중 라이센스하는 방법은 무엇입니까?
- 16. Qt에서 금융 소프트웨어를 개발하는 방법은 무엇입니까?
- 17. Eclipse에서 임의의 서버 소프트웨어를 실행하는 방법은 무엇입니까?
- 18. WebForm에서 소프트웨어를 InputData로 자동 설계하는 방법은 무엇입니까?
- 19. 오픈 소스 소프트웨어를 배포하면 비즈니스 모델이 중단됩니까? 팟 캐스트 # 60에서
- 20. 재택 근무자를 민첩한 프로세스에 통합하는 방법은 무엇입니까?
- 21. 디버거를 파이썬 서브 프로세스에 연결하는 방법은 무엇입니까?
- 22. 쉘 스크립트에서 프로세스에 텍스트를 보내는 방법은 무엇입니까?
- 23. 쉘에서 여러 프로세스에 참여하는 방법은 무엇입니까?
- 24. 문자 대신 키를 프로세스에 보내는 방법은 무엇입니까?
- 25. 비즈니스 프로세스와 비즈니스 규칙 분리
- 26. 모바일 비즈니스 앱 - XAML을 사용하는 방법은 무엇입니까?
- 27. 맞춤 비즈니스 엔터티를 자동으로 조롱하는 방법은 무엇입니까?
- 28. GWT Composite에서 비즈니스 로직을 분리하는 방법은 무엇입니까?
- 29. web2py 비즈니스 로직을 캡슐화하는 방법은 무엇입니까?
- 30. 비즈니스 인텔리전스 프로젝트를 클라이언트에게 이야기하는 방법은 무엇입니까?
아주 좋은 답변을 주셔서 감사합니다. 나는 특히 요구 사항과 사양이 주요 드라이버가되어야한다는 데 동의합니다. 너무 자주 비즈니스에 연결되지 않은 다른 요소가 우리의 솔루션에 영향을 미칩니다. – jimmystormig