문제

그래서...

내가 가르치는 형식적인 방법에는 소프트웨어 엔지니어링입니다.또한 가르치는"민법".대부분의 사람들이 생각하는 것 같이 모순이다.나는 그것에게 많은...저는 또한 회사를 위해,우리가 필요 실제로는 일:)동안 나는 적용할 수 있는 내게 벌 기술 지점에"스펙"에서 일상적으로 동료는 일반적으로 도망 말씀에서"정상".

내가 생각하는 데 사용되는 것으로 본질적인 방법을 우리가 배우는 어떻게 프로그램:우리는 일반적으로 구동을 찾을 수 있는 솔루션을 위해 노력하고,없을 이해하는 문제입니다.그런 다음 이었다는 사실 때문에서 대부분의 사람들이 공식적인 커뮤니티 엔지니어들이지 않지만,수학자 또는 컴퓨터 과학자.요즘 경우,그것은 단지 때문에 공식적인 방법이 지역 사회 뒤에 숨 어떤 종류의"난독"율법을 모두 사용할 수 있는 유니코드 기호에 적극적으로 개발한 무례,unesthetic 도구,얼굴에 웃음 방수 기능을 갖추고 있습니다.

그렇다,나는 이동에서"그들을 비난을 비난을 우리는"관;-)

그래서 제 질문은:당신이 사용하는 모든 종류의 형식적인 방법에 있는 당신의 회사입니까?당신은 그들이 도입,또는 그들 pre-requisites?어떤 기술을 사용 할 명확한 안개의 수학에서 사람들의 두려움을 격려 그들을 사용하는 형식적인 방법입니까?당신은 무엇을 생각하는 현재 도구가 부족한 일반적인 사용법?

도움이 되었습니까?

해결책

사람들이 구매하도록하는 열쇠 어느 방법이나 방법론은 그들이 가지고있는 문제를 어떻게 해결하는지 보여주는 것입니다. 그들이 볼 수 있다면 그들의 삶을 더 좋게 만들 것입니다. 당신은 그들이 기술을 채택하게 할 가능성이 훨씬 향상되었습니다.

만약 너라면 캔트 아마도 당신은 아마도 당신이 실용성보다는 철학을 기반으로하는 방법을 채택하고 싶다는 것을 보여주십시오. 다른 사람들이 당신의 철학을 공유하지 않으면 어디서나 가지 않을 것입니다. 그리고 아마도 당신은해서는 안됩니다.

수십 년 동안 많은 방법론이있었습니다. 새로운 사람들은 항상 오래된 것들의 단점을 다루지 만 프로젝트는 여전히 어려움을 겪고 실패합니다. 왜요? 새로운 방법론을 제시하는 록 스타는 록 스타이기 때문에 근본적인 문제와 적용 방법을 이해하기 때문에 새로운 방법론을 정확하게 만들었습니다. 이후에 오는 사람들은 맹목적으로 레시피를 따르는 경향이 있으며 잘 작동하지 않습니다.

그래서 나는 가장 좋은 점은 근본적인 문제에 대해 가르치고 다양한 방법이 그러한 문제를 어떻게 처리하려고 시도하는지 보여주는 것입니다. 회사, 프로젝트 및 팀의 차이점은 너무나 좋기 때문에 모든 방법론을 모든 조합에 성공적으로 적용 할 수 없습니다. 적절한 도구를 선택하고 잘 적용하는 법을 배우는 것이 중요합니다.

다른 팁

모든 기여에 감사드립니다. 그들은 매우 통찰력이 있습니다. 내가 조금 불꽃을 일으키도록 허용합니다 (하지만 개인적으로 받아들이지 마십시오 :-)

대부분의 사람들은 공식적인 방법이 단지 프로그램 검증에 관한 것이라고 생각하는 것 같습니다. 또는 중요한 시스템. 우리가 궁극적 인 진부함을 추구한다면 이것은 사실 일 수있다.

그러나 합금과 같은 모델 찾기/점검 도구를 고려하십시오. 이와 같은 도구를 사용하는 법을 배우려면 UML과 OO에 사용되는 사람에게는 무시할 수있는 시간이 걸립니다. 그럼에도 불구하고 모델에 대한 즉각적인 통찰력을 줄 수 있습니다. 일반적으로 사용하려는 모델의 작은 하위 집합에 대한 카운터 예를 찾는 데 10 분이 걸리지 않습니다 (처음에는 합금의 모델을 설명하는 것이 포함됩니다).

요구 사항 엔지니어링을 예로 들어 보겠습니다. 하나는 보통 많은 UML을 그립니다. 그러나 OCL을 사용하는 사람은 거의 없으며 많은 비즈니스 규칙이 비공식적으로 자연어로 주석이납니다. 왜요? 시간 제약?

이제 대다수가 자신의 장필을 사용하여 모델이 만족 스럽다는 것을 증명한다는 사실을 고려하십시오. 다시, 왜? 합금에 해당 모델을 작성하기 위해 같은 시간이 걸릴 수 있습니다 (아마도 미학을 그리기에 관심이 없기 때문에). 만족도를 확인하십시오. 그리고 지금 어떤 종류의 수학이 필요합니까? "predicates"? Ifs와 Booleans의 멋진 이름 ;-) Quantifiers? foreachs ()의 멋진 이름 ...

큰 정보 시스템은 어떻습니까? 그들은 비판적 일 필요가 없습니다 ... 단지 600 개가 넘는 클래스로 개념적 (구현이 아님) 다이어그램을 머리를 분석하려고 노력하십시오. 나는 많은 사람들이 제약을 놓치거나 모델이 어리석은 일이 일어날 수 있기 때문에 메이크가 쉬운 모델 실수로 벽에 머리를 두드리는 것을 봅니다.

사실, 머리부터 꼬리까지 공식적인 접근 방식을 사용할 필요는 없습니다. 물론 COQ의 전체 응용 프로그램을 증명할 수 있으며 일부 사양을 100% 준수했음을 증명할 수 있습니다. 이것은 컴퓨터 과학자/수학자 접근법 일 수 있습니다.

그럼에도 불구하고 GTD Philisophy를 사용하면 왜 컴퓨터에 대한 작업을 위임하고 개발을 개선하는 데 도움이 될 수 있습니까? 그것은 실제로 "시간", 또는 평범하고 단순하고 단순한 기술 능력 부족의 문제이며 배우거나 이노베이트해야합니까?

작업 라인의 비즈니스 개발에서는 기업을 갖는 의미하는 지식을 전달하는 비즈니스에 대해서 실제 사업으로 사람들의 머리의 개발자입니다.나는 나 자신을 찾을 추상 수학하는 가장 큰 중 하나가 될 오락가있다,그것은 끔찍한 통신 도구입니다.고 통신은 그것의 모두에 대해입니다.는 동안 나는 수도 알만 몇 가지 성공을 설득력을 포용하는 사람들이 더 추상적인 표기법,기본적으로는 기회가 없으로 비즈니스 사람들이 있습니다.

는 동안 일부 지역이 있는 곳에 나가 볼 수 있는 역할에 대한 공식적인 방법 기업에서(수학하고 논리-중 전문가가 소프트웨어,중요한에 필요한 확실성으로 안전에 있는 중요한 소프트웨어)를 제공에 도움이 얻는 정확한 요구 사항에 예:하는 방법을 이루는 고객의 주문을 발행하여 하나 이상의 공급 주문을 설정의 가능한 외부 또는 내부 공급자입니다.

나는 생각한 심사위원이 아직 모델에 기반 접근 방법과 도메인 언어가 제한되어 있습니다.나는 그들은 성공이나 실패 여부에 따라 그들이 제공하는 빠른 피드백을 소원과 비즈니스의 요구를 측면하고 있는지를 추정한 비즈니스 사람들이 해야 할 것입니다 모든 중요한니다.

기술는 것은 쉽습니다.통신은 어렵습니다.형식적인 방법이 도움이 될 수 있는 우리가 할 일이지만,그 봤어요 아무것도 하지 않고 우리가 그렇게 할 수 있을 것입니다.(예,이러한 진부한이지만,그 때문에 그들은 불가피하게 고통스럽게 사실이다.)

나는 '사양 및 확인'에 대한 과정을 받고 있습니다. 과정 구조의 일부로 우리는 다음을 수행하고 있습니다- 1. PVS와 같은 학습 도구 (프로토 타입 검증 시스템) http://pvs.csl.sri.com/ 및 SMV (소프트웨어 모델링 및 검증) http://www.cs.cmu.edu/~modelcheck/smv.html2. 그 외에도 우리는 소프트웨어 고장으로 인해 발생한 사고를 해부합니다. 예를 들어 - 아리아 v의 실패

실패 비용이 설계 비용보다 큰 시나리오에 공식적인 방법이 더 적합하다고 생각합니다. 그리고 중요한 시스템에서 사용되는 소프트웨어에 사용하는 것은 적절한 것 같습니다. 항공 전자, 칩 디자인 등에 사용 된 것 같아 현재 자동차 산업도 실습을하고 있습니다.

나는 사람들이 공식 사양 방법을 몇 번 받아들이도록 노력했으며 (Z와 합금), 당신이 가진 것과 같은 속도를 만들었습니다. 대부분의 사람들은 유용한 목적을 달성하는 동안 실제 작업에 사용하는 것을 매우 불편하게합니다.

재미있는 사람들은 매우 쓸모없는 UML 다이어그램을 거대한 양으로 생산하는 것을 기쁘게 생각합니다.

여기에는 두 가지 주요 이유가 있다고 생각합니다.

a.) 많은 개발자들이 공식적인 접근 방식에 필요한 추상화 수준에 불편 함을 느낍니다. 대부분의 엔트리 레벨 수학 교육이 모두 미적분학이라는 사실은 이로 인해 무언가를해야 할 수도 있습니다.

b.) 공식적인 방법에는 핵심 모델을 접지에서 설계하고 밀폐 한 다음 인터페이스 위에 인터페이스를 제공하여 실제 사용자 요구 사항에 연결하는 매우 상향식 디자인 aproach가 필요합니다. 우리는 요구 사항이 개발 노력을 기울이는 경향이 있기 때문에 하향식 접근 방식은 종종 일관성이없는 모델로 이어지지 만 더 자연스럽게 느껴집니다. 그것은 이미 지어진 후 집 아래에 지하실을 개조하는 것과 같습니다.

실패 비용이 낮은 시스템에서는 공식적인 방법이 의미가 없습니다.

프로덕션 웹 애플리케이션에는 여러 프론트 엔드 박스, 여러 백엔드 박스, 여러 데이터베이스 상자가 있습니다. 그 중 하나의 프로그램이 실패하면 이벤트가 아닌 것입니다. 하드웨어는 너무 저렴하여 모든 소프트웨어를 공식적으로 지정하는 비용보다 훨씬 적은 비용으로 이러한 시스템을 구축 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top