Topcit/소프트웨어 개발
-
소프트웨어 제품 라인 공학Topcit/소프트웨어 개발 2018. 6. 11. 23:15
소프트웨어 제품 라인 공학 개요 정의 소프트웨어의 품질과 생산성을 높이기 위해서는 재사용 저장소의 개념을 도입하여 컴포넌트 재사용율을 높여야 한다. 여러 시스템의 공통적인 부분을 소프트웨어 핵심 자산으로 개발, 관리 및 재사용하여 소프트웨어의 개발 생산성과 품질을 극대화 하는 것을 목표로 1980년대에 만들어진 개발 방법론 소프트웨어 제품 라인 구성 요소 구분 Core Asset 개발 반복적인 수행으로 Products의 공통되는 부분을 찾아내고, 기존의 Products 개발의 생산성을 향상 시키는 개발 단계 Product 개발 개발 대상 Product의 핵심 공통 기능 개발에 Core Asset을 활용함으로써 생산 기간의 단축을 가능하게 한다. 관리 올바른 조직 구조, 자원 할당, 중재 및 감독, 교육 ..
-
클라우드 컴퓨팅Topcit/소프트웨어 개발 2018. 6. 11. 23:14
클라우드 컴퓨팅의 정의 정의 클라우드 컴퓨팅은 개별 서버마다 남는 컴퓨터 용량을 효율적으로 활용하고 불 확실한 서비스의 수요에 유연하게 대처하기 위해 만들어졌다. 클라우드 환경에서 동작하는 사용자는 자원이 필요할 때 가상화 된 형태로 인터넷을 통해 제공되는 컴퓨팅 자원을 사용한다. 클라우드의 핵심은 사용자는 복잡한 내부를 몰라도 어디에서나 자기가 원하는 컴퓨터 자원을 사용하여 작업이 가능하다. 장점 비용 : CAPEX 감소, OPEX 증가, TCO 감소 기간 : 개발 기간 단축, 제품 개발주기 단축 운영 : 운영 인력 감소, 자원 효율성 강화 제품: 제품 집중도 향상 클라우드 컴퓨팅과 다른 컴퓨팅 비교 그리드 컴퓨팅과 클라우드 컴퓨팅 구분 그리드 컴퓨팅 클라우드 컴퓨팅 컴퓨터의 위치 지리적으로 분산되어 ..
-
모바일 컴퓨팅Topcit/소프트웨어 개발 2018. 6. 11. 23:11
모바일 컴퓨팅 개요 정의 모바일의 특징 이동성 개인화 즉시성 모바일 서비스 환경의 구성 요소 단말기 휴대폰 PDA DMB 단말기 스마트폰 PMP ebook 네트워크 모바일 통신 위성 통신 무선 LAN 휴대 인터넷 플랫폼 모바일 운영체제 VM 브라우저 콘텐츠 모바일 콘텐츠의 특성 상호 작용성 즉시 연결성 지역성 개인성 모바일 콘텐츠의 유형 개요 정보 서비스 모바일 엔터테이먼트 모바일 커뮤니케이션 모바일 커머스 특징 정보 제공형 콘텐츠 오락형 콘텐츠 휴대용 기기로 메세지, 파일 등을 전송 광고, 지불, 결제, 쇼핑등 상거래 종류 뉴스, 날씨, 스포츠 게임, 벨소리, 캐릭터, 비디오, 방송 문자메시지, 멀티미디어 메시지, 인스턴트 메시지, 화상 전화, 커뮤니티 서비스, SNS 모바일 광고, 모바일 결제, 모바..
-
애자일 개발Topcit/소프트웨어 개발 2018. 6. 11. 23:10
애자일 개발 개념 애자일 배경 기존의 무겁고 규범적인 방법론에서 탈피하여 가벼운 방법론을 지향하며 등장 애자일 개념 애자일 선언문 우리는 소프트웨어를 개발하고 다른 사람의 개발을 도와주면서 소프트웨어 개발의 더 나은 방법을 찾아 나간다. 이러한 작업을 통해서 우리는 다음과 같은 가치를 추구하게 되었다. 절차나 도구 보다는 개인과 상호작용을 포괄적인 문서 보다는 작동하는 소프트웨어를 계약에 대한 협상 보다는 고객과의 협력을 계획을 고수하기 보다는 변화에 대한 대응을 더욱 가치 있게 여긴다. 애자일 선언문의 12가지 원칙 우리의 최우선 순위는, 가치 있는 소프트웨어를 일찍 그리고 지속적으로 전달해서 고객을 만족시키는 것이다. 비록 개발의 후반부일지라도 요구사항 변경을 환영하라. 애자일 프로세스들은 변화를 활..
-
소프트웨어 품질 관리Topcit/소프트웨어 개발 2018. 6. 11. 23:05
소프트웨어 품질 관리 소프트웨어 품질관리의 정의 어플리케이션 생명 주기 동안에 이루어지는 모든 활동 결과로 작성되는 산출물에 대한 품질을 통제, 보증하기 위한 활동 구성 소프트웨어 품질 보증 소프트웨어 품질 통제 소프트웨어의 품질 목표, 정책, 책임, 역할을 결정 품질관리 목적 기술 평가 적합한 추정 기준, 소프트웨어 품질 예측 자원 평가 적절한 자원, 비용 산정 프로세스 평가 어플리케이션 생명 주기 프로세스 통제 제품 확인 검수 시험, 산출물 확인, 타 제품과의 비교 소프트웨어 품질 요소 운용 정확성, 신뢰성, 효율성, 확장성, 사용 용이성, 무결성, 유지보수성 수정 유지보수성, 이식성 적응 시험성, 재사용성, 상호 운영성, 유지성 소프트웨어 품질 관점 사용자 관점 소프트웨어의 사용, 성능, 사용 효과..
-
소프트웨어 형상 관리Topcit/소프트웨어 개발 2018. 6. 11. 23:02
소프트웨어 형상관리의 개요 형상 관리의 정의 소프트웨어 개발 과정에서 소프트웨어의 변경 사항을 관리하기 위해 개발된 일련의 활동 소프트웨어 변경의 원인을 찾아 컨트롤하며 적절히 변경되고 있는지 확인하여 관련 담당자에게 통보 소프트웨어 개발의 전체 비용을 감소시키고 리스크 요인들을 최소화 하는 것을 목표로 한다. 형상 소프트웨어 개발 단계의 과정에서 만들어지는 프로그램, 프로그램을 설명하는 문서, 데이터 형상관리 필요 배경 가시성 미흡 : 소프트웨어는 무형의 산출물이므로 가시성이 없음 컨트롤 어려움 : 눈에 보이지 않는 소프트웨어 개발에 대한 컨트롤이 현실적으로 어려움 추적성 미흡 : 소프트웨어 개발 전체 과정에 대한 추적의 어려움 감시의 미비 : 가시성 미흡, 추적의 어려움으로 프로젝트 관리를 지속적으로..
-
소프트웨어의 요구사항 관리Topcit/소프트웨어 개발 2018. 6. 11. 23:00
요구사항 관리 요구사항 관리의 정의 분류 요구 사항 개발 : 무엇을 할 것인가를 정의 요구 사항 관리 : 정의된 요구 사항이 제대로 반영되어 진행되는지 확인, 최초 요구사항 변경에 대한 지속적인 관리를 수행 요구사항 관리의 중요성 적절한 요구사항 관리는 다양한 이해 관계자 간 효과적인 의사소통의 수단을 제공 요구사항 관리의 목적 고객의 관점에서 고객의 요구를 정확히 만족시키며, 제한된 기간 내에 품질 높은 소프트웨어를 생산하는 것을 목적으로 함 요구사항 관리 공정 요구사항 관리활동 요구사항 추출 비즈니스 요구사항 정의 참여자 식별 초기 요구사항 추출 요구사항 분석 후보 요구사항 모델링 요구사항 우선순위 선정 요구사항 협의 요구사항 명세 요구사항 명세 기준 정의, 명세서 작성 요구사항 추적성 관련 정보 저..
-
소프트웨어 유지보수, 역공학, 재공학Topcit/소프트웨어 개발 2018. 6. 11. 15:16
소프트웨어 유지보수 소프트웨어 유지보수 정의 SDLC의 마지막 단계 오류 수정, 원래 요구 정정, 기능, 수행력을 증진시키는 일련의 작업 소프트웨어 유지보수 목적 소프트웨어의 성능 개선, 하자보수, 새로운 환경에서 동작할 수 있도록 이식, 수정, 일련의 예방조치 소프트웨어 유지보수 종류 사유에 의한 유지보수 수정 유지보수 : 오류로 인한 유지보수, 처리, 수행, 구현, 오류 식별 적응 유지보수 : 데이터 환경과 인프라 환경 변화 적응을 위한 처리 완전화 유지보수 : 새로운 기능 추가, 변경, 품질을 위한 유지보수 시간에 의한 유지보수 계획 유지보수 : 주기적 유지보수 예방 유지보수 : 예방 차원의 유지보수 응급 유지보수 : 유지보수 사후 승인 필요 시 대상에 의한 유지보수 데이터, 프로그램 보수 : 데이..
-
소프트웨어 테스팅Topcit/소프트웨어 개발 2018. 6. 11. 15:15
테스팅 개념 및 프로세스 테스팅 개념 어플리케이션과 시스템의 동작, 성능, 안정성이 사용자가 요구하는 수준을 만족하는지 확인, 검증하기 위해 결함을 발견하는 방법 테스팅의 일반적인 원리 결함의 존재성을 밝히는 활동 : 테스팅 활동은 결함이 존재함을 밝히는 활동 완벽한 테스팅은 불가능 : 매우 간단한 프로그램이라도 모든 경우에 대해 테스트를 하는 것은 불가능 테스팅은 개발 초기에 시작 : 개발 기간을 단축하고 결함 예방이 가능하다. 살충제 패러독스 : 동일한 테스트가 반복적으로 수행된다면 해당 테스트로는 더이상 새로운 버그를 찾아낼 수 없음 테스팅은 정황에 의존적 : 각 분야마다 접근하는 방법, 우선 순위, 심각도 등이 달라짐 오류-부재의 궤변 : 개발된 시스템이 쓸모가 없다면 결함을 찾고 수정하는 과정은..
-
프로그래밍 언어, 코드 재사용, 리팩토링Topcit/소프트웨어 개발 2018. 6. 11. 15:14
프로그래밍 언어의 특성 프로그래밍 언어 개념 사용자가 보다 친숙한 언어로 프로그램을 짤 수 있게 하도록 한 것 프로그래밍 언어마다 컴파일러, 인터프리터가 있다. 인터프리터 언어 인터프리터는 중간과정 없이 원시 프로그램을 직접 저급 언어로 바꾸면서 동시에 실행한다. 인터프리터 과정 장점 실행을 위해 완전한 기계어 번역을 기다리지 않고 필요 시 마다 실행 프로그램이 실행될 때까지 원시 언어 형태를 유지하므로 메모리 절약 단점 재실행 시 매번 원시 프로그램을 디코딩 하기 위한 시간이 필요함 컴파일러 언어 컴파일러는 고급 언어로 작성된 프로그램을 기계어로 번역하여 객체 모듈을 만들고 모듈을 링크, 로드 하여 실행 컴파일 과정 장점 번역된 목적 코드 저장 기능 컴파일 한 후 바로 재실행 가능 한번 컴파일 한 후에..