'소프트웨어 엔지니어링'에 해당되는 글 5건

  1. 2014.07.18 [용어] Payload란?
  2. 2014.01.11 [terminology] reap
  3. 2012.04.12 아파치 라이센스 2.0 사용법
  4. 2011.11.09 루틴: 루틴이름, 루틴길이,
  5. 2011.11.09 루틴: 설계

Payload란 데이터 전송에서 실제로 전송하고자 하는 목적인 데이터 자체를 의미한다.  데이터 전송을 위하여 포함되는 부가적인 check sum이라던가, header등을 제외한 실제 데이터를 말한다.

'소프트웨어 엔지니어링' 카테고리의 다른 글

[terminology] reap  (0) 2014.01.11
아파치 라이센스 2.0 사용법  (0) 2012.04.12
루틴: 루틴이름, 루틴길이,  (0) 2011.11.09
루틴: 설계  (0) 2011.11.09
Posted by code cat

reap (third-person singular simple present reaps, present participle reaping, simple past and past participle reaped or reapt)

  1. To cut with a sickle, scythe, or reaping machine, as grain; to gather, as a harvest, by cutting.
  2. To gather; to obtain; to receive as a reward or harvest, or as the fruit of labor or of works, in a good or a bad sense.
    to reap a benefit from exertions
  3. (computer science) To terminate a child process that has previously exited, thereby removing it from the process table.
    Until a child process is reaped, it may be listed in the process table as a zombie or defunct process.
  4. (obsolete) To deprive of the beard; to shave.
    (Can we find and add a quotation of Shakespeare to this entry?)


'소프트웨어 엔지니어링' 카테고리의 다른 글

[용어] Payload란?  (0) 2014.07.18
아파치 라이센스 2.0 사용법  (0) 2012.04.12
루틴: 루틴이름, 루틴길이,  (0) 2011.11.09
루틴: 설계  (0) 2011.11.09
Posted by code cat

1. Apache 2.0 라이센스를 다운 받는다. ()


2. NOTICE 에서 [] 안의 부분을 고친다.


Copyright [yyyy] [저작권자]


Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

 

3. 오리지널 copyright은 건들지 말고 냅두고, 코드에서 수정 부분이 있다면, 수정했다고 언급한다.(예 modified by CodeCat) 


4. 위의 NOTICE 를 아파치 라이센스가 적용되는 모든 파일에 커맨트형태로 넣는다.  


5. LICENSE 파일(1에서 다운받은) 과 NOTICE 파일(2에서 바꾼)을 프로젝트의 맨 위(root 폴더)에 넣는다.

 




'소프트웨어 엔지니어링' 카테고리의 다른 글

[용어] Payload란?  (0) 2014.07.18
[terminology] reap  (0) 2014.01.11
루틴: 루틴이름, 루틴길이,  (0) 2011.11.09
루틴: 설계  (0) 2011.11.09
Posted by code cat

출처: Code Complete 2, 김도균 감수, 정보 문화사


좋은 루틴 이름:

루틴이 하는 모든 것을 표현하라

의미가 없거나 모호하거나 뚜렷한 특징이 없는 동사들을 피하라

루틴 이름을 숫자만으로 구분하지 마라

필요한 길이만큼 루틴의 이름을 만들라 : 9~ 15자 사이가 좋다.

함수의 이름을 지을 때, 리턴 값에 대해서 설명하라 : cos(), customerId.Next() 등

프로시저의 이름을 지을 때, 확실한 의미를 가지는 동사 다음에 객체를 사용하라. : 동사+객체 PrintDocument()

반의어를 정확하게 사용하라 : FileOpen(), FileClose()

공통적인 연산을 위한 규약을 만들라 : employee.Get.Id(), emploee.Get.Age()


루틴의 길이:

루틴의 길이는 200줄을 넘기지 않도록 노력한다.


루틴의 매개변수 사용법:

매개변수를 입력-수정-출력 순서로 입력한다.

 매개변수를 무작위로, 또는 알파벳 순으로 정렬하는 것보다는, 입력만 가능한 것을 첫번째로, 입출력이 가능한 것을 두 번째로, 출력만 가능한 것을 세 번째로 나열하라.  이것은 C라이브러리의 규약과 충돌된다. (수정되는 매개변수를 처음에 입력한다)

고유한 in과 out키워드 생성을 고려해 보라

여러 루틴이 유사한 매개변수를 사용한다면, 유사한 매개변수들을 일관된 순서로 입력하라

모든 매개변수를 사용하라 : 사용하지 않으면 제거하라. 이것은 잠재적인 error의 요인이 된다.

상태나 오류 변수를 마지막에 입력한다.

루틴의 매개변수를 작업용 변수로 사용하지 마라.

매개변수에 대한 인터페이스 가정을 문서화하라.

매개변수에 사용할 입력, 수정, 출력 이름 규약을 고려하라.


'소프트웨어 엔지니어링' 카테고리의 다른 글

[용어] Payload란?  (0) 2014.07.18
[terminology] reap  (0) 2014.01.11
아파치 라이센스 2.0 사용법  (0) 2012.04.12
루틴: 설계  (0) 2011.11.09
Posted by code cat

출처: Code Complete 2, 김도균 감수, 정보 문화

응집성을 높여라

: cosine()하면 오로지 하나, 코사인 계산을 위한 것이다. 그러나 만일 cosineAndTan()하면 한가지 이상의 작업을 하므로 응집성이 떨어진다. 목표는 한가지 일을 잘하도록 하는 것이다.  

우리는 기능성 응집성이 강한 루틴을 작성하도록 해야 한다.

루틴을 작성할 때, 주의 할 점이라면,

  • 순차적 응집성을 피하라.  이것은 루틴이 특정한 순서대로 수행되어야 하고 단계별로 데이터를 공유하여 동시에 수행될 때, 그리고 완전한 기능을 제공하지 못하는 연산ㅇ을 포함할때 존재한다.  예를 들어, 출생일을 입력값으로  받아, 나이와 퇴직일을 계산하는 루틴이 있다고 하자.  만일 이 루틴이 나이를 계산하고 그 결과 값을 토대로 퇴직일을 계산한다면 이 루틴은 순차적 응집성을 지닌다.  반면에 만약에 루틴이 나이를 계산하고 동일한 출생일 데이터를 사용하는 완전히 독립적인 계산 방법으로 퇴직일을 계산한다면 이 루틴은 통신적 응집성만 갖는다.  그러므로 우리는 나이계산 루틴과 퇴직일 계산 루틴을 생성해, 퇴직일 루틴이 나이 루틴을 호출하도록 한다. 그러면 이 두 루틴은 기능성 응집을 갖는다.

  • 통신적 응집성은 루틴에 있는 연산들이 동일한 데이터를 사용하지만 서로 아무런 연관이 없을 때 발생한다.  만약 어떤 루틴이 요약 보고서를 출력하고, 루틴으로 넘어온 요약 데이터를 다시 초기화한다면, 이 루틴은 통신적 응집을 갖는다. 이 루틴에 보다 나은 응집성을 제공하기 위해서는 요약 데이터가 생성된 곳 근처에서 다시 초기화되어야 하며, 보고서 출력 루틴 안에 있어서는 안된다.  이 연산들을 개별적 루틴으로 나누어라.

  • 일시적 응집성은 연산들이 동시에 수행하기 때문에 한 루틴안에 결합되어 있는 경우다.  예를 들면, startUp()이나 showDown()들이겠다.  이 루틴을 효율적으로 만들기 위해서는 응집된 루틴이 연산들을 직접적으로 하기보다는, 다른 루틴을 호출하는 것으로 만드는게 좋다.

다음은 수용하기 어려운 응집성의 종류이다.

  • 절차적 응집성은 루틴에 있는 연산들이 특정한 순서대로 수행될 때 발생한다.  예를 들어 데이터를 순차적으로 입력 받을때, GetFirstName(), GetLastName()같이 부르고, 이 루틴은 연산들을 특정한 순서대로 사용하지만, 연산들이 결합 할 필요는 없기 때문에 절차적 응집성을 갖는다.  다시 말하면,GetFirstPartOfEmployeeData() 대신, GetEmployee()같은 루틴을 작성하라.

  • 논리적 응집성은 여러가지 연산들이 한 루틴에 채워져 있고, 연산 중 하나가 루틴에 전달되는 제어 플래그에 의해서 선택될 때 발생한다. 만일 이벤트 핸들러의 역활로 사용된다면 좋은 설계로 볼 수 도 있으니 주의하자.

  • 우연성 응집은 루틴에 있는 연산들이 서로를 인식할 만한 관계를 가지고 있지 않을 때 발생한다.



'소프트웨어 엔지니어링' 카테고리의 다른 글

[용어] Payload란?  (0) 2014.07.18
[terminology] reap  (0) 2014.01.11
아파치 라이센스 2.0 사용법  (0) 2012.04.12
루틴: 루틴이름, 루틴길이,  (0) 2011.11.09
Posted by code cat