· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
Development Embeded Software

1. Embeded Software개발 방법에 대한 논의

Embeded Software개발이라하면 상당히 큰 범주이기 때문에 자칫 논란의 소지가 있습니다. Software개발방법론은 여러가지가 있습니다만, 여기에서 주로 다루고 싶은 분야는 컴포넌트 개발 방법론입니다.

Software 개발자의 상당수는 자신의 코드를 재사용하고 싶어하고 개발한 Software에 대한 문서도 갖추어 완벽한 Package를 만들기를 희망합니다만, 현실은 개발자의 생각을 외면할 때가 많습니다.

Win32 또는 Linux프로그래밍(PC용 OS기반위에 Application을 개발하는 경우)이라면 코드의 재사용을 위해 dll, so와 같은 라이브러리를 제작하겠지만, Embeded Software개발은 MCU에 의존적이 될 수 밖에 없기 때문에 일부 소스코드를 재사용하는 것 이상은 기대하기 힘든 것이 현실입니다.

그렇다할지라도 체계화된 개발방법론을 따른다면 Software개발시, 많은 부분(개발문서와 소스코드) 재사용의 효과가 있을 것이라 생각합니다.

좀 더 빠른 기간안에 좀 더 완벽한 Software를 개발하는 그 날을 꿈꾸며 이 페이지를 생성합니다.

1.1. 요구사양분석

요구사양이라 명기하였습니다만, 여기서 요구사양의 의미는 고객이 원하는 기능입니다. Software개발에 있어서 고객의 요구사양을 제대로 이해하는 것만큼 중요한 것은 없습니다.

1.2. 개발 견적 산출

개발견적을 산출한다는 것은 그동안의 경험을 바탕으로 추산하는 것이므로 상당히 어렵다. 많은 개발 견적 산출방법이 있지만, 여기에서는 프로젝트 기간 산정 방법과 Software개발비용 산출 방법에 대해 논의하고자 한다.

1.2.1. Software개발 Schedule작성

Software개발 Schedule을 작성하기 위해서는 경험이 필요한 것이 일반적이다. 경험하지 않은 부분에 대한 개발 Schedule은 어떻게 작성할 것인가? 기존 개발경험을 토대로 산정해야 할 것이나 쉬운 일은 아니다.

개발 방법에는 V process등 여러 방법론이 있으나 대체로 설계->코딩->검사의 절차를 밟는다.

먼저, 다음과 같은 항목을 생각해볼 필요가 있다.
  • 전체 기능(사양) 세분화

    요구사양 분석 단계에서 최소기능목록을 만들었다면, 최소기능목록에 예상 코드의 Line수를 작성한다. 총 Line수를 집계한다.

  • 코드 재사용 가능 범위

    기존 Library 또는 표준Library 또는 구매한 Library를 이용할 경우, Library에서 사용하는 메소드 또는 컴포넌트를 목록으로 만든다. 총 메소드 또는 컴포넌트 수를 집계한다.


  • 개발 인원

    개발 인원의 1명당 목표 코드생산성을 목록으로 작성한다. 고급 1000Line/Month, 중급 500Line/Month, 초급 100Line/Month


  • 검사항목


위와 같이 산출한 내역을 기반으로 목표개발기간 = ((총Line수 + (총 메소드,컴포넌트 수)*1.2)/총개발인원 1달 코드생산성)*개발난이도 + (검사항목*검사)

위의 수식에서 1.2는 라이브러리 습득시간을 가산한 것이고, 개발난이도는

1.2.2. Software개발 비용 산출


1.3. 소프트웨어 모델링

1.3.1. 유스케이스 작성

1.3.2. 소프트웨어 아키텍쳐 설계

1.3.3. 모듈(객체)간 Interface설계

1.3.3.1. 프로토콜 작성

1.3.4. 모듈(객체) 개략설계(input/output/기능)

1.3.5. 모듈간 검증


1.4. PWBA구성 선택

1.4.1. MCU선택 및 H/W특성(외부Memory사용여부 등) 선택

1.4.2. PORT맵 작성 및 MCU환경 설정


1.5. 에러 검출 모델링

1.5.1. 에러 분류 코드 작성

1.5.2. 에러 코드에 대한 소프트웨어 동작 작성


1.6. 소프트웨어 개발 언어(C/C++/Java 등) 선택


1.7. 소프트웨어 상세 설계

1.7.1. 클래스(모듈) 다이어그램 작성

1.7.1.1. 멤버변수, 멤버함수 리스트 작성

1.7.1.2. 멤버변수, 멤버함수 호출 규약(input/output parameter정의) 명시

1.7.2. 시퀀셜 다이어그램 작성

1.7.3. 컴포넌트 다이어그램 작성

1.7.4. 전역변수 또는 전역플래그 리스트 작성

1.7.5. 모듈(객체)간 프로토콜에서 사용하는 커멘드와 parameter 작성


1.8. 코드 작성

1.8.1. 멤버변수, 멤버함수 내부 설계서 작성


1.9. 소프트웨어 검증

1.9.1. 검사 스케쥴 작성

1.9.2. 검사 항목 작성

1.9.3. 검사 스크립트 작성


1.10. 소프트웨어 배포

1.10.1. 릴리즈 노트 작성


1.11. 문서 변경사항

  • 처음 만듦: neosanghu


See also:






sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2009-09-09 13:25:36
Processing time 0.0086 sec