2015년 4월 6일 월요일

D8 Applications & Systems Development_어플리케이션과시스템개발

ㅇ ㅂㅇ

어플리케이션과 시스템 개발

 - 업무용 개발 프로그램을 지칭함
  => 최근 소프트웨어 시장은 공장에서 찍어내는 듯 형편 없는 퀄리티에 다량으로 쏟아져 나온다. 이런 시기를 소프트웨어의 위기 시대라고 불리고 있다. 
  =>> 이러한 위기를 극복하기 위해서 품질 보증 프로세서라는 제도를 통해서 소프트웨어의 품질에 최소한의 한정을 두고 개발하도록 운영함

1. S/W 개발 프로세스 

 비즈니스의 효과적인 기능 수행을 위해 필수적인 응용 시스템개발, 구입, 유지 보
수, 폐기하는 과정을 시스템 개발 수명 주기(SDLC)라고 한다.

 IT 자원을 통제, 관리하는 프로세스도 SDLC의 일부분이다.
 개발되는 모든 비즈니스 응용 시스템은 두 개의 범주에 속한다.
 • 조직 중심의 컴퓨팅
  - SDLC 접근방법을 이용
  - 알 필요를 기반으로 사용자와 부서의 정보를 수집, 추출, 저장, 보관하여 공유 하도록 하는것
  - MIS(경영정보시스템), ERP, CRM(Customer Relationship Management) 등등
 • 최종 사용자 중심 컴퓨팅
  - 성과의 최적화를 위해 데이터를 제공
  - 대안적 개발 접근 방법이 이용
  - DSS, GIS(지리정보시스템) 등등

 개발 framework 에 대한 용어
 • Validation(비준) : 유효성 검증 – 타당성 분석, 요구사항 정의 단계
  - 목표(전략)이 준수되도록 보장한다.
  - 적합한 프로세스를 확립한다.
 • Verification(검증) : 확인, 입증 – 설계, 구현, 개발 단계
  - 사양이 준수되도록 보장한다.
  - 정의된 프로세스에 따르는 것
 • Accreditation : 시스템 승인을 선언 하는 것
 • Certification : 보안 기능을 일련의 요구사항에 비추어 평가 하는 것
 • Aggregation : 개별정보를 취합하여 더 높은 등급을 완성해 나가는 것(예. 보안)

 -- 프로젝트 계획 수립

 프로젝트가 성공하도록 지속적인 자원을 제공하기 위해서는 전체 과정에 대한 계획
이 작성되고 감시되어야 하며 이를 위해서는 여러 가지 기법이 사용된다.
 S/W 규모 산정
 • 원시코드 라인 수(SLOC : Source Lines of Code)
  - 장점
  – Basic이나 Cobol 등의 개발 도구일 경우 매우 유용
  – 정량적 측정이 가능
 - 단점
  – 최종 사용자에게 무의미
  – 새로운 개발도구에는 무의미 (C++, VB, java…) (> 오브젝트를 가져다 쓰는 툴들)

 > 소스 코드의 line 수를 셈하거나 파일의 크기를 측정 => 정량화 하기 쉬운 이점 보유

 • 기능점수분석(FPA : Function Point Ana.) [ 현재 가장 많이 씀 ]
  - 사용자가 눈으로 보고 상호작용하는 입/출력 파일, 인터페이스, 질의 등을 개수와 복잡도에 근거하여 정보시스템의 크기를 측정하는 것.
  - 비즈니스 응용 S/W에는 적합하지만 OS, Network 관련 S/W에는 적합하지 않다.


 핵심 경로 방법론 (CPM)
 • 각 테스크간에 전후 활동에 따라 만들어진 그래프에서 시간의 합이 가장 긴 경로
 • 프로젝트 완료에 필요한 최단시간
 • CPM 패키지는 자원 활용을 분석하여 자원 균일화를 지원한다.

 프로그램 평가 검토 기법(PERT : program Evaluation Review Technique)
 • 테스크 완료에 비관적, 낙관적, 가능성 높은 세가지 시나리오를 이용 네트워크 기반 도표를 작성하는 기법
 • 프로젝트 일정의 추정치를 개발하는데 적합하다.
 • 시간 견적 = (낙관치+비관치+4*가능성 높은)/6

 - t1 : 3
 - t2 : 2
 - t3 : 1
 - t4 : 5
 - t5 : 2                                         >> 각각의 시간 견적을 도출함
 - t6 : 4                                              ( 낙관치, 비관치, 기본 )
 - t7 : 2
 - t8 : 1

위 과정을 하므로 오래 걸리는 테스크를 알아내고 빨리 처리하기 위함

 간트 차트
 • 헨리 간트가 1919년 창안한 일정 계획 수립을 위한 차트
 • 각 활동의 시작 종료 및 동시 수행 사항을 보여준다.
 • 프로젝트의 진척 정도나 계획과의 일치성을 확인하는데 이용
 • 특정 단계의 완료나 프로젝트상의 중요한 달성을 추적하는데 사용된다.

 타임 박스
 • 프로젝트 계획 및 일정을 작성할 때 사용하는 경영 개념. 타임박스는 팀원이 프로덕트를 만들기 위해 작업하는 시간 량을 고정한 것이다. 타임박스 접근방법을 사용할 경우, 시간은 고정 요인이며 타임박스 내에 맞추기 위해 비용과 범위를 조정할 수도 있다.
 • 비용의 초과나 일정의 지연을 방지해 준다.
 • 품질 보증 프로세스는 필요 하다.

 > 시간이 지나면 되돌릴 수 없는 것이기에 시간이 매우 중요함, 시간은 한정적이고 제한적이지만 그 외에 것들은 제한 없이 조절 가능하여 인력, 자금 등을 과도하게 들어 갈 수 있음

 -- 폭포수 모델

 폭포수기법 [ 가장 초기에 개발된 방법론]
소프트웨어 개발생명주기(SDLC; Software Development Life Cycle)에 기반하고 있는 소프트웨어 개발 기법으로, 워터폴 모델·폭포수 모형·선형순차 모형·단계적 생명주기라고 도 한다. 한 번 떨어지면 거슬러 올라갈 수 없는 폭포수와 같이 소프트웨어 개발도 각 단계를 확실히 매듭짓고 다음 단계로 넘어간다는 의미에서 붙여진 명칭이다. 전통적인 시스템 생명 주기 모델로 소프트웨어를 개발할 때 가장 널리 사용된다.

 단점
 • 예상치 못한 사건의 발생시 처리가 어려움
 • 고객(최종사용자)(=자산관리자)로부터 명확한 요구사항 입수가 어렵다.
 • 종료 시점까지 사용자가 시스템을 확인 할 수 없다.
 • 비즈니스가 변해도 시스템을 인도하기 전에 요구사항을 변경할 수 없다.

 SDLC 단계
 • 타당성 분석 – 계획과 요구 사항 정의 – 설계(제품설계, 상세설계) 또는 선택(구매) – 개발(코딩),시스템 구성 및 통합 – 구현 – 사후 관리(운영 유지보수)

 > 계획과 요구 사항 정의에서는 BPR도 같이 해야 함
 > 구현은 개발하는 사이트를 현재 업무에서 사용 하는 사이트 사이로 적용하는 과정을 말하며, 이것은 라이브러리언(구현자)가 책임을 맡고 행동하게 됨
  >> 라이브러리언 : 프로젝트가 완성되어 시스템으로 오게 되면 이때 라이브러리언이 직접 적용 및 셋팅을 하게 됨 ( 개발자, 관리자는 이 직책은 맡을 수 없음 )

 > 업무는 자주 바뀌지만 DB의 구조는 바뀌지 않음

 -- 나선형 모델

 소프트웨어 개발의 특성상 요구분석이 처음부터 완벽하기는 힘들다. 때문에 제품의 성숙도를 높여가는 개발 방법을 갖고 있는 것이 나선형 개발 방법론이다

 나선형 개발 방법은 패키지 제품 등을 개발할 경우 유용한 방법이 된다. 처음부터 많은 기능과 거창한 제품의 스펙을 생각하고 개발하는 것이 아니기 때문에, 일정에 맞추어 제품의 사양을 조절하고, 현재 사양의 개발에 집중할 수 있다. 기능 간의 우선순위를 정할 수 있는 기회가 있기 때문에 핵심 기능을 명확히 할 수 있고, 부가적인 기능을 다음 버전으로 미룰 수 있는 지표를 마련할 수 있다



 프로토타이핑 개발 방법론
 • 마치 건축에서 실제 건축물을 만들기 전에 설계도 따른 작은 모형을 만들듯이 소프트웨어의 기본적인 기능을 알아보기 위해서 원형을 만들고 이후의 소프트웨어 완성품을 예측해보는 방법이다. 국내에서는 파일럿 프로젝트라고 부르기도 한다. 너무 많은 비용과 시간이 들지 않는다면 프로젝트 시작을 위한 좋은 기반을 제공한다.
 • 나선형 개발 방법론에 각 사이클을 구성하는 방법론이 될 수 있다.
  - 민첩개발
  - 속성 개발 …

> 설계 단계에서 위협, 취약성 들이 정의 된다. (Standard, 가이드 라인 등도 정해짐)


 -- 테스트 이슈

 목적 : 시스템 무결성 확보
 • 시스템이 올바르게 동작 한다는 보증을 위해 주기적인 테스트를 실시하는것
 응용 시스템이 설계된 바와 같이 기능하는지 검증하는 과정

 종류
 • 단위 : 개별 프로그램(모듈)별 Test, 코딩과 관련된 검증
 • 통합 : 둘 이상의 컴포넌트의 연결 상태를 평가 > 테스트 툴이 필요함
 • 시스템 : 복구, 보안, 볼륨, 성능, 스트레스와 같이 구성된 시스템이 정상 작동하는지 평가
 • 병행 : 개발 시스템이 사용자 요구에 부합하는지 평가 > 제품 2개를 가지고 동일한 값을 넣어 동일한 값이 출력되는 지 확인함
 • 최종인수
  - 품질보증Test (QAT): 기술적인 측면
  - 사용자 승인(인수) Test(UAT) : 기능적인 측면, test 라이브러리에서 수행
  - 이 테스트가 끝난 이후 실제 사용자에게 이관 구현됨
 • 화이트박스 – 원시코드의 논리적 구조가 정당한가(준거성 테스트)
 • 블랙박스 – 기능이 정상적으로 기능하는가(기능테스트), 출력값의 정확성(실증 테스트)

 -- 통제 이슈

 유지 보수 단계에서의 통제 이슈
 • 요구통제
  - 제품 변경에 대한 사용자의 요구사항을 관리
 • 변경통제
  - 문제 정의와 분석
  - 변경사항 정리와 그에 따른 테스트 개발
  - 품질 통제
  - 재인증(recertification)과 인가(accreditation)
 > 패치 된 시스템에 대한 재인증을 받음, 소프트 웨어와 관련된 것들 <- i="">
 • 릴리즈통제
  - S/W 개발버전 통제

 > 변경 통제 ⊃ 릴리즈 통제

2. 소프트웨어 기능 성숙도 모델

 ISO 9126은 SDLC를 통해 S/W 품질을 평가할 때 평가의 특성과 프로세스에 대한 정의를 제공
 • 가능성, 신뢰성, 사용성, 효율성, 유지보수성, 이식성
 S/W 역량 성숙도 모델(CMM)
 • 다섯 가지 품질 프로세스를 바탕으로 품질과 프로세스 개선에 현안을 파악하고 성숙도를 파악하여 개선 전략을 선택하는데 지침을 제공하다.
 • 초기(level 1) : 유능한 직원이나 전문가 : 프로세스가 비정형적이면 임시적이다.
 • 반복(level 2) : 프로젝트 관리 프로세스 : 프로젝트 관리 실무가 제도화
 • 정의(level 3) : 프로세스와 제도화된 지원 : 조직 전체에 표준적인 S/W 프로세스 구축 (개발 프로세스와 통합)
 • 관리(level 4) : 제품과 프로세스 개선 : 개발 프로세스에 대한 개량적인 관리 통제 수립.
 • 최적화(level 5) : 소프트웨어 프로세스에 대한 개량적이고 성공적인 통제 능력이 달성
 • 초-반-정-관-최 : initiating-repeatable-Defined-Managed-Optimizing

 > 소프트 웨어를 개발 시 정상적인 품질과 프로세스로 만드는 지에 대해 확인 하는 것
 > 확인은 전문가에 의해서 확인 과정을 거침
 > 폭포수 개발 방법론을 토대로 만들어 진 것

 통합된 역량 성숙도 모델(CMMI)
 • 다양한 CMM를 하나의 모델로 통합한 CMMI는 시스템과 소프트웨어 영역을 하나의 프로세스 개선 툴로 통합시켜 기업의 프로세스 개선 활동에 대한 광범위한 적용성을 제공한다.
 • 전통적인 폭포수 개발 방법과는 연계성이 낮고 최신의 개발방법에 더 잘 연계된다.
 • 유사한 표준안으로 ISO 15504가 있다.

3. 다양한 시스템 - 데이터베이스 시스템

 DB의 보안 이슈
 • DB에서 보안은 Need-to-know에 기초하여 사용자의 활동을 제한하는 것이다.
  - View를 통해서 구현된다.
 • Granularity
  - 보안통제를 세분화
 • 추가적인 보안 이슈
  - 집성(aggregation) : 낮은 레벨의 정보를 조합 높은 레벨의 정보를 획득하는 것
  - 추론(inference) : 접근 불가능한 레벨의 정보를 추론하는 사용자의 능력
   : Polyinstantiation(Multilevel-Secure Relational Data Model )
 • Data Warehouse
  - 기존 데이터를 기반으로 새로운 관계를 찾기 위한 주제 중심으로 분류된 데이터 저장소
  - 정보의 추출, 재구성, 재정의되어 접근과 분석이 이루어진다.
  - 상관 관계를 추출하는 것을 data mining이라고 한다. – IDS에 이용

> DataBase에서 View의 큰 장점
 - 세밀한 권한 설정 가능
 - 병렬화된 개발( DB가 완성이 되어야 개발이 가능했던 개발을 View를 통해서 DB 모델링과 App개발을 동시에 가능 하게 하는 것)

 객체 지향 시스템
 • 객체 지향 시스템은 캡슐화되고 식별성(identity)을 갖는 객체의 그룹이다.

 분산 환경
 • DCE(Distributed Computing Environment)
  - OSF에서 개발된 산업표준 S/W 기술
 • DCOM(Distributed Component Object Model)
  - MS의 프로그램 인터페이스

전문가 시스템
 • 지식베이스(Knowledge base) + 추론엔진
 • IDS에 활용

 신경망 시스템
 • 자가 학습을 통한 지식 축척과 활용
 • 문자, 음성인식등에 활용

4. 응용 통제

 목적
• 조직의 보안정책과 프로시저를 준수하여 정보의 기밀성, 무결성, 가용성을 유지하는 것
 응용 통제 유형과 카테고리


참조모니터
  . 보안커널의 핵심적인 부분
  . 객체에 대한 접근 통제 기능을 수행 : 접근 요청에 대해서 참조 모니터 DB를 이용 가부여부를 확인
  . 다른 보안매커니즘과 상호작용함

 > 유효성 체크 : 동일한 데이터를 동일한 시스템들에 넣었을 때 동일한 값이 나오는 지 확인 하는 것




댓글 없음:

댓글 쓰기