소프트웨어 개발

소프트웨어 개발
목표 시스템의 소프트웨어 모듈로서 알고리즘 적용

목표 시스템의 알고리즘     DOWNLOAD WHITEPAPER

알고리즘 개발 이외에도 고객들에게 소프트웨어도 개발해 드립니다. 이를 통해 우리가 개발한 알고리즘을 목표 시스템에 직접 통합하고 시작품을 구현하여 성능을 검증할 수 있습니다. 알고리즘을 개발하는 동안 소프트웨어에 대한 요구 사항도 고려될 수 있으며 그에 따라 알고리즘을 설계할 수 있습니다.

 

다양한 산업분야에서 고객의 요구 사항과 필요에 따라 정확하게 맞춤식 소프트웨어 솔루션을 개발합니다.

 

당사는 오류가 없는 높은 수준의 소프트웨어 품질을 보장하기 위해 사전에 정의된 표준과 절차에 따라 소프트웨어를 개발합니다. 요구 사항의 기록에서부터 유지 관리에 이르기까지 소프트웨어 개발의 모든 단계에서 이 같은 내용이 적용됩니다.

임베디드에서 클라우드에 이르기까지 모든 수준에서 알고리즘을 소프트웨어 모듈로 구현합니다

서비스 제품의 범위

다양한 산업분야에서 고객의 요구 사항과 필요에 따라 정확하게 맞춤식 소프트웨어 솔루션을 개발합니다. 당사의 서비스 제품은 임베디드 소프트웨어에서부터 여러 플랫폼과 개발 환경, 기술과 표준에 기반한 서버 아키텍처까지 다양합니다. 개별 소프트웨어 모듈을 지원하거나 전체 소프트웨어 제품을 개발하여 제공합니다.

Embedded Software

Standalone Software

Cloud Software

문서화된 절차와 산업 표준에 따라 소프트웨어 모듈을 개발합니다

소프트웨어의 품질

소프트웨어 품질을 보장하기 위해 다음과 같은 기술을 사용합니다:

문서화된 절차와 산업 표준(예: V-Modell XT)에 따른 소프트웨어 개발

소프트웨어 개발 도구를 이용한 개발

전체 제품 수명 주기 동안 생성된 모든 문제점을 추적 가능

정기적인 프로젝트 감사

개발 과정 전반에 걸친 요구사항 검증(참조 인덱스 교차 검증)

개발과 테스트 단계로 구분하여 개발 진행

개발 문서의 검토(네 개의 눈 원칙)

기능 안전(예: ED-153)과 고장 모드 및 영향 분석(FMEA)을 지원하는 절차

각각의 응용분야와 목표 시스템에 적합한 개발 절차를 선택합니다

개발 절차

프로젝트에 따라 개발 절차에 큰 차이가 있을 수 있지만 이 절차가 사전에 조정되고 문서화된다는 공통점이 있습니다. 당사의 소프트웨어 개발 서비스는 고객별 요구 사항 기록에서부터 소프트웨어 개발과 품질 보증을 거쳐 목표 환경에 애플리케이션을 설치하고 시운전하기까지 전체 개발 과정을 전부 포함합니다.

 

다음과 같이 고객과의 협의를 통해 최적의 개발 과정이 선택적으로 달라질 수 있습니다:

개발 프로젝트의 형태, 범위 및 기간

임베디드 또는 클라우드와 같은 소프트웨어 모듈의 대상 환경

고유 사양, 희망사항 및 아이디어

적절한 개발 과정을 사용하여 최단 시간 내에 품질 요구 사항과 고객 코딩 지침을 충족할 수 있는 소프트웨어 모듈을 개발합니다.

신속 개발 기법

소프트웨어 개발 과정의 위험을 최소화하기 위하여 투명성과 유연성을 높이고 개발된 시스템을 더 빨리 사용해 보게 하는 방법이 사용됩니다. 실행 가능한 소프트웨어를 조금씩 만들어 빠르게 고객들에게 제공하면 위험을 최소화할 수 있으며 고객 만족도가 높아집니다. 신속한 개발의 가장 중요한 특징은 팀을 구성하고 개발 주기를 짧게 하여 개발 주기마다 실제 동작할 수 있는 결과물을 고객에게 제공하는 것입니다.  가장 널리 알려져 있는 신속 소프트웨어 개발 기법은 스크럼(Scrum)과 익스트림(Extreme) 프로그래밍입니다.

장점

신속 개발 기법의 가장 중요한 이점은 프로젝트의 요구 사항이 변화할 때 이에 대응할 수 있다는 점입니다.

프로젝트 시작 단계에서 향후 결과가 어떻게 나올지에 대해 정확한 설명이 불가능한 작업에 대한 솔루션을 찾을 수 있습니다

원활한 소통을 통해 고객과 직접 대면하고 고객으로부터 지속적인 입력을 받을 수 있습니다.

도전과제

초기의 예상 결과가 계속 초과되거나 달성되지 않는 경우가 발생합니다.

신속 접근 기법을 통해 고품질의 제품을 빠르고 저렴하게 개발할 수 있느냐는 축적된 지식이 어떻게 적용되는지에 달려 있습니다

V-모델

폭포수 모델과 같은 단계 중심 프로세스 모델과 달리 V-모델에서는 활동과 결과만 정의되며 엄격한 시간 순서가 필요하지 않습니다. 소프트웨어 개발은 단순한 선형 축으로 이루어 지지 않고, 코딩 단계가 완료된 후, 단계가 다시 위쪽으로 꺾여져 V자 모양으로 진행됩니다. 이러한 개발 프로세스를 통해 소프트웨어 개발자와 시험자는 구조화된 방식으로 동시에 작업을 할 수 있습니다. 예를 들어, 초기 프로젝트 단계에서 요구된 사양의 첫번째 테스트 버전이 준비됩니다.

장점

폭포수 모델과 동일한 장점이 있습니다..

소프트웨어 시험자가 요구 사항을 만드는 단계부터 참여하게 됩니다. 이를 통해 높은 테스트 적용성을 달성할 수 있고, 소프트웨어가 높은 안정성과 품질을 갖게 됩니다

프로젝트 기간 동안 요구 사항에 대한 변경이 가능합니다.

도전과제

V-모델의 주요 문제점은 유연성이 떨어진다는 것입니다.

프로젝트 진행 중에 변경 사항이 있으면 요구 사항 문서뿐만 아니라 테스트 문서도 업데이트해야 합니다.

프로젝트 기간 동안 변경 사항이 많고 검토가 필요하기 때문에 일관된 문서화를 위해서는 많은 노력이 필요합니다.

이 절차 모델은 모든 단계에서 검토와 확인이 필요하므로 단기 프로젝트에는 적합하지 않습니다

폭포수 모델

소프트웨어 개발에서 사용되는 폭포수 모델은 연속적인 프로젝트 단계에서 전체 개발 프로세스를 구성하는 선형 프로세스 모델을 말합니다. 폭포수 모델을 사용하였을 경우, 각 단계의 결과는 항상 다음 하위 단계에 대한 결합 사양으로 사용됩니다. 예를 들어, 설계 단계가 시작되기 전에 모든 요구 사항이 설정되어야 하거나 테스트 단계에서 평가되기 전에 소프트웨어가 완전히 구현되어야 합니다. 높은 프로젝트 품질을 보장할 수 있도록 각 단계가 끝날 때 문서화가 이루어집니다.

장점

소프트웨어에 대한 모든 요구 사항은 개발이 시작되기 전에 모호하지 않게 명확히 설정되고 공식화됩니다.

각 단계는 지정된 시간 내에 완료되고 다음 단계가 진행됩니다. 이렇게 함으로써 프로젝트가 어느 정도 계획대로 진행될 수 있습니다.

선형 프로세스 모델이므로 세팅이 용이합니다.

이러한 절차 모델을 구현하는 데 필요한 자원이 최소화됩니다.

각 단계 후에 문서화가 진행되며 높은 개발 품질을 보장할 수 있습니다.

도전과제

복잡한 작업의 경우, 한 단계에서 발생한 오류나 문제는 그 단계 중에는 완전하게 해결되지 않으며 한 단계가 완료된 후에 해결됩니다. 이러한 문제는 구조화되지 않은 시스템을 초래하게 되곤 합니다.

프로젝트 기간 동안 요구 사항이 변경되면, 현재 개발 내용에 더 이상 고려될 수 없습니다.


추가 정보가 필요하십니까?
문의