본문 바로가기

교육/Security Governance

Day 67 (Applications & Systems Development_소프트웨어 개발 보안)

반응형

<목차>

1. 소프트웨어 개발 프로세서

2. 개발되는 모든 비즈니스 응용 시스템

3. 프로젝트 계획 수립

  1) S/W규모 산정 

  2) 기능 점수 분석 (FPA : Function Point Ana.) 

  3) 프로그램 평가 검토 기법 (PERT : program Evaluation Review Technique) 

  4) 핵심 경로 방법론 (CPM)

  5) 간트 차트 

  6) 타임 박스 

4. 시스템 개발 생명주기

  1) 폭포수 기법

  2) 나선형 모델

5. 테스트이슈 

6. 통제이슈

7. Database 시스템

8. 기타 시스템

  1) 객체 지향 시스템

  2) 분산 환경

  3) 전문가 시스템

  4) 신경망 시스템


1. 소프트웨어 개발 프로세서
시스템 개발 생명주기와 소프트웨어 개발 과정은 둘다 SDLC로 단어 일치한다.
시스템 개발 생명주기는 시스템 생성부터 폐기 까지를 의미하고, 소프트웨어 개발 과정은 소프트웨어 개발 후 적용까지를 의미한다. 의미 확인은 문장을 통해 구분이 가능하다.
CRM(Customer Relationship Management)은 경영정보를 관리하는데 사용한다. 알 필요를 기반으로 사용자와 부서의 정보를 수집, 추출, 저장, 보관하여 공유 하도록 하는 용도로 사용되는 경우도 있다.

 

2. 개발되는 모든 비즈니스 응용 시스템

개발되는 모든 비즈니스 응용 시스템은 개발 가능 용도로 구분한다.

응용시스템 적용 규모 방향성 특징 UI파악시기
조직중심 컴퓨팅 대규모  하향식 작성중 업무가 많이 변경되면 적용이 어렵다.
설계가 중요하다.
APP 설계도 먼저 작성한다. 인터페이스는 프로그램 완료 시쯤 알수있다.
최종 사용자 중심 컴퓨팅 소규모  상향식

사용자의 요구조건에 맞는 프로그램 작성시 사용한다.
점진적으로 개발시 사용한다.

만들기전에 화면 디자인 부터 한다.
조직 중심 컴퓨팅에서 최종 사용자 중심 컴퓨팅으로 점차 증가하는 형식, 참조가 많이 일어난다.

IS 전략 위원회는 프로젝트를 수행 하는지 수행하지 말아야 할지를 결정한다. 반드시 보안상 식별 위해 보안관리자 투입해야 한다.
IS 운영 위원회는 자원투입 및 자원 분배 프로젝트 우선순위를 결정한다.

3. 프로젝트 계획 수립

 

1) S/W규모 산정 
원시코드 라인수는 프로그램 분량이나 프로그램 크기등 용량으로 측정한다. 
이 방식은 COBOL프로그램일때 만 가능했다. 현재는 의미 없는데 현재 사용 언어가 다르기 때문이다. 현재에는 기존 객체 불러와 사용한다. 설계 및 계획 단계에서 큰 의미를 가지며 최종 사용자에게는 무의미하다. 메뉴얼 작성전에는 실행법 조차도 알 수 없기 때문이다.

2) 기능 점수 분석 (FPA : Function Point Ana.) 
S/W사용을 가정하고 개수와 복잡도에 근거해 시스템 크기를 측정한다. 보통 인력을 가장 많이 측정한다. 업무를 인력으로 구분해 예산 측정한다. 비즈니스 응용 S/W에는 적합하지만 OS, Network 관련 S/W에는 적합하지 않다. 유틸리티 생성시 사용하지 않는다. 

3) 프로그램 평가 검토 기법 (PERT : program Evaluation Review Technique) 
테스크는 업무를 의미하며 방향성이 있게 분석된 업무 이다. 프로세스는 방향성이 없는 업무를 의미한다. 
테스크는 연속적인 업무 진행도로서 Serial(연속적)으로 이루어진다. 
낙관적/비관적/일반적인 시간을 인시로 나타내어 시간견적과 비용견적을 계산한다. 
예를 들면 시간견적 = (낙관치+비관치+4*가능성높은것)/6 가 된다.



4) 핵심 경로 방법론 (CPM)
핵심 경로 방법론은 프로그램 평가 검토 기법과 같이 사용되며 소요 시간 중 최대 소요 시간과 최소 소요 시간을 구하고 이를 비교하여 예상 경로를 유추한다.


5) 간트 차트 
각 단위의 성과분석을 이용해 상벌을 확인하기에 최적화되어있다. 달성정도 추적하는데 주로 사용한다.
예를 들면 영업직에서 사원별로 판매 건수를 확인하는 표가 간트 차트의 한 예이다.

6) 타임 박스 
시간을 고정하고 그 안에 마무리 하려는 것이다. 나머지 리소스를 투자하여 일정을 줄여 비용 절약을 야기하는 것이다.
하지만 품질 저하를 야기할 수 있기 때문에 품질 보증 프로세서가 반드시 있어야 한다. 감리사와 정보 보안 관리자의 점검이 필요하다. 


4. 시스템 개발 생명주기
1) 폭포수 기법

SDLC는 타당성 분석 –> 계획과 요구 사항 정의 –> 설계(제품설계, 상세설계) 또는 선택(구매) –> 개발( 코딩),시스템 구성 및 통합 –> 구현 –> 사후 관리(운영 유지보수)의 순서로 이루어진다.
요구사항 정의 ~ 설계까지가 전체 개발 비용의 70%정도를 차지한다. 개발이후에는 설계대로 구현만 하면 되기 때문에 숙련도가 낮아진다. 사용자가 업무프로세서 파악과 시스템 확인이 개발 종료시까지 불가하다. ERP에서 처음 구현하였다.

2) 나선형 모델 
SDLC규모 줄여 지속적으로 반복적이고 점진적으로 수행한다.
설계단계에서 프로토타입 개발론을 사용할 수 있으며 비쥬얼툴로 개발이 가능하다. 
프로토타입 개발은 디자인(UI)이 먼저 나오고 나중에 프로그램을 심는다. 
프로토 타입 개발의 장점은 결과물이 나오기 전에 UI를 미리 볼수있다. 또한 개발하는 것을 확인받고 진행하기 때문에 책임소재 확인이 가능하다.

5. 테스트이슈 
시스템이 올바르게 동작하는 것을 보증하기 위해 사용한다. 주기적 테스트 실시하며 무결성 확보를 목적으로 한다. 

- 화이트박스 테스트
  소스코드 확인하며 테스트하는 것으로 준거성 테스트를 하는것이다. 양식만 검사하는 것이기 때문에 원시코드 몰라도 테스트가 가능하다. 예방통제, 적발통제에 속한다. 

- 블랙박스 테스트
   정상작동 확인하는 기능테스트, 원하는 값을 입력했을때 올바른 값이 출력되는지에 대한 실증 테스트를 수행한다. 처리통제, 적발통제에 속한다.

- 단위테스트
  각각 모듈 효율성등을 테스트한다.

- 통합 테스트
  라이브러리를 이용해 테스트한다. 

- 시스템 테스트
  프로그램이 정상적으로 리소스 차지하는지등의 정상작동을 테스트한다. 

- 병행 테스트
  사용자(소프트웨어와 관계자) 요구 부합 정도를 확인한다. 개발사이트와 테스트 사이트에 동일 입력값 넣어 같은 결과값을 출력하는 지를 확인하여 정상작동을 테스트 한다. 주의해야 할점은 서로의 사이트에 영향주지 않게 해야 한다. 입력통제(트렌젝션통제)에 속한다.

- 최종인수
  개발사이트와 프로덕션, 테스트 사이트를 따로 생성하여 출력을 테스트 하는것이다.

6. 통제이슈

- 요구 통제는 제품 변경사항에 대한 요구사항 관리하는 것이다. 


- 변경 통제는 요구사항으로 만들어낸 시스템이 정상 작동하는지 결과값이 정상적으로 나오는지에 대한 인증과 인과를 하는것이다. 인증과 인과는 결제 받아 책임을 이전하는 행위를 통해 이루어지며 책임추적 가능해야 한다. 

 

- 릴리즈 통제는 S/W 개발 버전 통제하는 것으로 문제 발생시 혹은 다른 이유로 복원이 필요하거나 이전 데이터가 필요할때 사용하기 위해 통제가 필요하다. 

7. Database 시스템
DB시스템은  Need-to-know에 기초하여 뷰를 통해 구현한다. 테이블에 access하면 안되며 필요한 컬럼만 참조 가능하게 해야한다. 

추론 (inference) : 집성 가능한 능력을 의미한다.
집성 (aggregation) : 낮은 레벨 정보 조합하여 높은 레벨의 데이터를 추론하는 것을 의미한다. 

Data warehousing은 예전에 의미있는 데이터 추론을 의미하는 말이다. data warehousing을 사용하기 전에는 DSS라는 단어로 사용했고 현재는 빅데이터가 그 의미를 이어간다.

 

8. 기타 시스템

1) 객체 지향 시스템

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

 

2) 분산 환경

  DCE(Distributed Computing Environment)은 OSF에서 개발된 산업표준 S/W 기술을 말한다.

  DCOM(Distributed Component Object Model)는 MS의 프로그램 인터페이스이다.

 

3) 전문가 시스템

  지식베이스(Knowledge base)와 추론엔진을 결합한 시스템이다. IDS에 활용하고 증권 예측 분석등에 사용한다. 

 

4) 신경망 시스템

  자가 학습을 통한 지식 축척과 활용한 인공지능에 사용한다. 문자, 음성인식 등에도 활용한다.

 

반응형