카이 - 소프트 작업 먼저 개인 블로그 작업

계획 함유량
이 작품은 과정 속 봄 2020 컴퓨터 소프트웨어 공학 연구소 (로저 렌 지안)
어디에서 작업이 요구 사항 개인 블로그 작업
이 과정에서 내 목표는 시스템 소프트웨어 공학, 실제로는 개인 개발에 대한 접근
작업 특정 측면이 나를 목표를 달성하는 데 도움이 반영 책을 읽고 통해 새로운 지식을 학습하고, 질문을

훑어보기는 완전한 목록은 당신이 교과서 여전히 이해하지 못하는 개인 블로그에 게시 5-10 질문.

질문 1

어떻게 자신의 기능 모듈은 내부 모듈이 다른 모듈에 영향을주지 않습니다 변경, 가능한 한 구체적으로 책임을 정의 할 수 있습니다, 또한 모듈의 품질이 안정적이고 정량적 보증을받을 수 있나요? 단위 테스트는 매우 효과적인 솔루션입니다.

- 2.1 단위 테스트

이 단위 테스트에 올 때, 당신은 나를 그룹에 의해 사용 물론 자동 평가 시스템을 생각하게합니다. 그것은 자동 평가 시스템으로 올 때, 그래서 비극적 때 학년의 학기 OO 생각해야합니다. 내가 이상 아흔 점수에 대한 동등한 접근에 관한 자동 평가 시스템을 쓸 것이다,라고 할 수있다. 자동 평가 시스템 쓰기 때문에 많은 사람들이, 몇 쓰기 단위 테스트가 않습니다입니까?

나에게, 단위 테스트는 다양한 문, 시간이 많이 걸리는 자체 지점 구조 데이터를 커버해야하지만 자동 평가 시스템은 간단한 쉘 문을 달성 할 수 있으며, 대규모 배치 버그 테스트 범위에서 오랜 시간 일 수 없습니다 필요 조건 분기 문제 한정 다양한. 그래서 단위 테스트가 실제로 필요하지 않지만 대신 자동 평가 평가 시스템 폭력을 사용해야 함을 표시합니까? 또는 단위 테스트와 보완, 평가는 넓은 지역 기반의 폭력을 포함?

질문 2

한 쌍의 프로그래밍 모드 측 프로그래머 마찬가지로, 상보 현상에 의해 한 쌍의 사이드에서. 그들은 컴퓨터 앞에 나란히 앉아 디스플레이 얼굴, 마우스로 작업 같은 키보드를 사용합니다.

페어 프로그래밍에서 검토하고 프로그램의 모든 측면에서 품질의 교환 언제든지이 있기 때문에 하나의 그 높은 수준의 모든 측면에서 프로그래머의 한 쌍에 따라 달라집니다.

--4.5.2 왜 페어 프로그래밍

페어 프로그래밍, 더 많거나 적은 교실에서이 같은 기회를 맞이하고 가난한 사람들보다 나를 위해, 거의 모든 경험을 말할 필요가있다.

나는과 개인적인 측면이 할 수 있다면 실제로 코드를 작성하는 과정에서, 우리는 생각하고 있습니다, 버그를 공동 발견, 공동 썼다 그래서 나는 것 아주 좋은 확실히 쓰기 코드입니다. 이보기의 첫 단계 지점입니다, 다음 언급했다.

그러나 사실, 종종 때문에 불량이 생각하는 사람들이 계속 될 수없는, 또는 누군가가 너무 큰 형님 때문에 두 사람이, 마지막으로 모두 매달려 가지 요리 경우, 다른 캔은 전화를 재생하거나. 또한이 관점에서 두 번째 단락의 말씀을 확인합니다.

그래서, 지금 우리는 "작은 노란색 오리 디버그"법을 가지고, 우리는 왜 동료는 우리의 코드의 문제점을 지적해야합니까? 말 아마 조금 너무 의견을 고집하지만, 한 쌍은 꼭 필요한 프로그램? 대형 엔지니어링 팀이 자신을 완료 할 수있는 작은 절차를 수행 할 필요가, 페어 프로그래밍은 다소 중복 보인다. 더 많은 단어를 말했다 두 번째 단락에 따라 것은, 프로그램의 장점과 단점은 하나의 모든 측면에서 높은 수준의 프로그래머에 따라 달라집니다. 음, 조합에 따라, 우리는 다음과 같은 상황이있을 것이다 :

오빠, 오빠 닭 요리, 닭 요리 닭 요리 갱스.

첫 번째 조합은 아마도 더 적합 페어 프로그래밍,하지만 두 사람이 종종 같은 두 가지 기능을 넘겨 마침내 이하의, 또는 족장과 의견이기 때문에, 스타일이 완전히 다른 코드인지 여부, 그것은 "나는 나 자신을 부담"의미 ?

두 번째 조합이 너무 강한, 실수로 닭 접시에 물을 주도, 종종 있기 때문에 자신의 능력의 족장이되어, 그는 "매듭 나 자신"는 무엇입니까?

세 번째 조합, 그들은 몇 가지 측면이 닭 요리를 만들었 기 때문에 매우 책임이있는 경우 닭 요리는 다음이 명 함께가, 당신도 잘 작업을 페어링 할 수 있습니다, 결함을 가지고 있지만, 수 이명 경우 더 "DDL 전투기 그룹"으로 "DDL 군인"에서하지를 혼합 할 수 있습니다?

그래서 내 생각에, 매듭 프로그래밍 필요하지 않는 것?

질문 3

많은 경우 사용자는 자신의 정확한 요구를 모르거나 수요를 안내하는 사용자를 위해, 자신을 넣어 전체 요구 사항, 소프트웨어 팀의 요구를 표현하고 싶지 않아요.

--8.1 소프트웨어 요구 사항

최근에, 나는이 문제가 발생했다.

도움말 다른 사람에게 코드를 작성하는 과정에서, 상대방은 명확하게 자신의 요구를 표현 할 수없는, 또는 직접 몇 가지 가능한 수요를 제안하라고, 나는에, 또한 여러 가지 새로운 요구를 초기 코드를 작성 완료,하지만 이후 내 요구 사항 변화에 따라 그들은 반복적으로도 이전의 요구의 이전 버전으로 폴백 후.

실제 시장에서 파티 똑같이 변덕, 또는 직접 프로그래머에 그것에 대해 여부를 생각하는 것? 따라서이 유형의 사용자를 위해, 우리는 어떻게 결국 그것을 처리해야합니까? 코드에 관해서는, 우리는 코드를 구성하는 방법 코드 작가와 수비수로, 그래서이 지속적으로 변화하는 요구에, 아니 일반적인 문제에 조기에 초점 책에서 볼?

질문 4

우리는 그들의 피해를 줄일 수있는, 천천히 사람들이 조심하지 일을 할 수있는 팀을 원한다.

--11.5.2 매일 빌드

그것은 펭의 Ru 컵 학년의 감정을 생각 나게한다.

좀 더 생각 또는 거부하는 이유는 여기에 팀이, 그 때마다 자신의 사람의 결과 팀도 또한 펭의 Ru 컵, 수학적 모델링의 모든 요구 사항을 완료 할 것으로 보인다는 것이다. 가끔 자신에 반영, 왜 "작업 팀은"마지막으로 나는 그것의 "개인 임무"가있다? 내가 할 수있는 강력한 능력을 가지고 있기 때문에? 그렇게 생각하지 않아요.

"관심."때문에

Exchange Online으로, 우리는 읽을 수 없습니다되어 결국 자신의 동료를 결코 알지 못할 또는 반환을하지 뒤돌아 보지 않는다, 아마도이 그것은 "슈뢰딩거의 팀 메이트"입니다.

나는 그룹이 행동, 또는 좀 더 경멸 조금 동료로 그 돼지 말을하고, 경우에 일시적으로 변경할 수있는 방법이 없습니다 자제하고있는 경우, 물어보고 싶은 그래서, 그것은 팀에 그들의 손실을 줄이기 위해를 일으키는 어떻게해야 하는가? 그럼 어떻게하는 경우, 그것을 "팀을 비행 한 남자"를 줄이기 위해 어떻게?

질문 5

단순히 버전을 통합하고 체크인하면, 실패를 컴파일 TFS로 이어질 가능성이있다. 하지만 2 단계와 3 단계를 반복하는 것과 동일 다양한 테스트를, 합병, 지방 컴파일 후, 품질을 보장하고 실행하도록 주문하는 경우. 내가 다시 (4 단계를 반복)을 작성하려면이 옵션을 선택하면 갈등의 새 버전을 발생할 가능성이있다. 이런 식으로 사이클은 끝없는 결과 ......

--11.5.4 성질의 정의가 잘못

뿐만 아니라 졸업 후, 우리는 문제의 코드를 유지하기 위해 팀을 직면해야하지만,이 소프트웨어 공학 과정에, 우리는 또한 코드를 유지하는 일반적인 문제에 직면해야합니다.

함께 학생들 전에 기억하고 대규모의 코드를 유지하고, 자식은 머리를 사용 견딜 수 있습니다.

그러나 종종 코드를 유지 프로그래머의 일을 듣고, 당신은 당신이 먼저 이상 변경 창고로 제출하는 경우, 시간에 대한 인종에 필요하고 다른 사람들에게이 다시 제출 해당 버전이 여러 번에게 총을 반복하도록 수정 느린 사람들이 내 모든 동료가 다시 수정할 수 이상 변경 한 후에 기다려야 수정합니다. 다른 수정, 문제의 마지막 발생은 합병시에 호환되지 않을 수 있기 때문에 서로 다른 서버에 내 자신의 코드가 종종 유용, 변화에 너무 너무 많은 문제를 원하십니까를 재구성 할 필요가있다. 이 버전 불일치 그래서, 더 나은 솔루션이있다?

질문 6

소프트웨어 대학 학생들은 젤리 Yishan 인턴쉽, 그는 슈퍼 질문 : 왜 소스 코드 관리가 필요? 나는 쓰기 코드는 더 다른 사람에게, 냉각 과거에 QQ 패스를 사용할뿐만 아니라 수 있습니다. 왜 예전의 코드를 보면? 내 최신 코드는 최고 품질, 최고 품질의 코드를 충분히입니까?

--11.6 실제 소스 코드 관리

우리는 더 많거나 적은이 문제가 발생합니다.

우리가 생각하는 초기 코드 프레임 워크의 완성에 매우 좋은 또한 훨씬 낮은 커플 링 가능한 다양한 기능의 포장. 원래 아름다운 코드가 극적으로 변화 한 후 그러나 오랜 시간에 대한 새로운 수요 충격에 따라, 우리는 필연적으로 그렇게 중요한 특정 지점으로, 코드 점점 부풀어 재 작성 될 것입니다. 간단하게 들어 줄의 코드 아마도 수천 재건에 의해 해결 될 수 있지만, 프로젝트에 종종 수만, 리팩토링은 분명 비현실적 코드의 양 수십만입니다.

그러나, 내가 말했듯이 책의 첫 부분에 따라, 우리는 이상 분석에 의한 문제에 많은 생각을주지해야하지만, 요구의 포괄적 인 분석없이, 다음, 더 심각한 문제로 이어질 것인가? 증분 작업의 경우, 포인트의 코드를 유지하기 위해주의를 기울이고은 어디? 여부 코드에 특정 임계 값 이후의 미학을 보장하기 위해 재구성 할 것인가?

그리고 이것은 우리가 코드의 외관 포기하고 단지 증가 증가가 (나는 또한, 이러한 방법은 많은 기업들이 이러한 작업을 처리 단지 프랑켄슈타인과 같은 코드를 생각)하는 경우 나, 생각하는 새를 제공합니다 이 신선한 혈액을 흡수하지 도움이되는 경우 모집, 코드의 가독성은 좋지? 그리고이 책은 새로운 직원이 회사의 코드가 너무 못생긴 느끼는 이야기를 언급, 그들은 그의 동료는 말했다,이 새로운 직원 리팩토링 버전의 코드입니다 재구성 할 계획입니다. 문제 같은 코드를 부풀게, 빈약 한 가독성을 위해, 우리는 다른 방법을 재구성하지 여부에 추가? 그 기능과의 가독성을 유지하기 위해 더 우아한 방법 여부?

질문 7

최근 몇 년 동안, 우리의 전체 사회는 매우 혁신에 관심이 창의적인 인재, 혁신 학교, 혁신 기업, 혁신 도시, 미디어에 혁신적인 사회 및 기타 조건의 전체 것으로 보인다.

--16.1 혁신 신화

보통 사람들의 경우, 상대적으로 엄격한 교육 책을 받아 후에는 혁신적인 힘을 잃은 것 같다.

단어 혁신의 독특한 물건 달링 여부?

협력의 과정을 자신을 위해 말하기, 학생, 나는 가끔 제품에 타격, 자신의 견해를 제시하지만 모두 거절했다. 그 존재가 말했다 그래서, 그것은 창의성 그것의 나의 부족을 의미합니까? 아마 저 각도 밖으로 생각하는 최고의 내가 바이어스와 문제에 대해 생각하는 방식이 가능하지, 우리는 효과적인 혁신을 갖고 싶어, 어떻게 육성 하는가? 어떤 측면에서 생각하는할까요?

윌은 "소프트웨어"및 "소프트웨어 공학"이 단어가 표시되는 방식입니다 - 언제, 어디서, 누구?

소프트웨어

년 8 월 1953, 리처드 R.Carhart는 랜드의 메모의 연구에서 처음으로이 용어를 소프트웨어를 작성

1958 년, 존 와일더 Tukey의 용어 소프트웨어 먼저 종이 기록에 출판 되었음은 "콘크리트 수학의 교육"이라는 제목의 논문을 발표

소프트웨어 공학

1950 년대 MIT의 강의에서 더글러스 T. 로스는 이미 공식적으로이 용어를 이름, 마가렛 해밀턴 후,이 용어라고합니다.

때문에 인간의 얼굴 "소프트웨어 위기"에 1960 년대에서, 용어 소프트웨어 공학 1968-1969 나토 주최 회의를 제안했다.

[추가 신용] : 우리는 모두 당신이 재미있는 퀴즈와 이야기가 어떻게 생각하는지 물어 소프트웨어 및 소프트웨어 공학, 소프트웨어 엔지니어링 개발 프로세스의 출처를 알아?

레나지도

도 레나는 유명한 디지털 화상 처리의 예시는, 종종 다음과 같은 기능을 포함하기 때문에, 테스트 용으로 사용된다 :

  1. 도 2의 세부 사항은 다양한 화상 처리 알고리즘으로 잘 시험 음영 및 텍스처 영역을 부드럽게 혼합 적당한.

  2. 레나는 이미지 처리 산업 연구원 (주로 남자), 아름다운지도가 효과적으로 연구를 할을 끌 수있는, 아름다움입니다.

테스트 이미지가 실제 이야기하지만 사실, 그것은 채택되었다 :

년 6 월 1973 년 조수 남부 캘리포니아 대학 영상 처리 신호의 연구소에서 교수와 그의 대학원생 중 하나는 디지털 사진을 찾기 위해 학술 대회에 대한 의도, 그리고 지루은 "지루한"사진에 대 한 손에 더미를. 그들이 필요로하는 사실 동안 몇 가지 밝은 반점, 얼굴 사진이다. 그리고 누군가가 그냥 실험실에 걸어 '플레이 보이'잡지를 손에 있던 이야기가 일어났다 ...... 그 결과는 원본 이미지를 끌어 실험실 장비 및 테스트, 레나 사진의 시간을 사진으로 제한 할 필요가 어깨하십시오.

현재 인기있는 소스 버전 관리 소프트웨어 및 프로젝트 관리 소프트웨어에 대한 인터넷 설문 조사, 당신은 어떤 장점과 단점이 무엇인지?

사용자의 수

이름 사용자의 수
Assembla 알 수 없는
동료 알 수 없는
CloudForge 알 수 없는
Gite 알 수 없는
OW2 컨소시엄 알 수 없는
로제타 코드 알 수 없는
알 수 없는
GitHub의 31000000
의 Bitbucket 5,000,000
발사대 3965288
소스 포지 (SourceForge) 3700000
GitLab 100,000
GNU 사바나 93346
OSDN 54826
Ourproject.org 6,353

장점과 단점

이름 이점 결점
마이크로 소프트 TFS 민첩, MSF, CMMI 다른 프로젝트, 프로세스 관리, 프로세스 개선을 지원합니다. 당신은 Gantt 차트보다 더 유용한 작은 팀을 위해, 작업, 프로젝트 진행 눈의 버전을 요구할 수 있습니다. 팀을 적용 할 수 있습니다, 소스 코드 제어이 부분 대부분 정품 매우 작은 회사의 수는, 이것은 매우 작은 부분 TFS 기능을 차지합니다.
GIT 서버와 너무 큰되지 않습니다 데이터의 양에 대한 대중의 압력; 개인에 대한 분산 개발, 중점 적합 빠르고 유연한, 오프라인으로 작업, 쉽게 두 명의 개발자 사이의 충돌을 해결할 수 있습니다. 비교적 긴주기를한다 학습, 비국교도의 생각을, 가난한 보안 코드를, 전체 라이브러리 클론 아래 ​​개발자가 완전하게 될 모든 코드 및 버전 정보를 열 수 있습니다 후.
수은제 쉬운 사용하기 쉬운, 배우고, 좋은 패키지 성능이 저하 크로스 플랫폼, 지점 관리가 유연하지, 조금 더 지원 커뮤니티
GitHub의 힘내 GitHub에이 웹 기반으로 서비스를 제공합니다 당신이 망할 놈의 소스 코드 관리 기능을 사용할 수 있습니다, 또는 특성 리포지토리. 힘내 GitHub에이 웹 기반으로 서비스를 제공합니다 당신이 망할 놈의 소스 코드 관리 기능을 사용할 수 있습니다, 또는 특성 리포지토리. 창작 과정과 레코드의 창의적인 아이디어를 캡처하는 가장 좋은 도구가 될 수 없습니다. 이 특별한 기능을 위해 LayerVault 아날로그, 또는 기타 유사한 도구를 선택할 수 있습니다. 이전에, 우리가 이미 강조했다 Github에서 코드를 추적 이상적이지만, 최고의 디자인 추적 도구가 아닙니다. 코드 또는 제품 만 세트로 그림의 내용, 그것은 여전히 ​​원활하지 보인다.
의 Bitbucket 사용하기 쉬운, 무료, 중국어 지원 느린; 소스 코드 폐쇄
Trac에 매우 유연하고, 임의의 제어 및 SVN 통합 될 수있다 기능은 매우 강력하지 않습니다.
버그질라 무료, 지원 중국어 버전 빠른 검색 결과가 정확하지 않습니다. 만 결함을 관리 할 수 ​​있습니다.
애플 엑스 코드 컴파일 빨리, 각 작업은 매우 빠르고 쉽습니다. 자동으로 코드를 작성하지 않고 실행 취소, 다시 실행 및 기능 저장을 제공합니다. 플러그인의 업데이트 된 버전 후 실패 할 수 있습니다.

추천

출처www.cnblogs.com/dxy1999/p/12405966.html