본문 바로가기
기타/소프트웨어분석설계

chapter01. 시스템 개발 과정의 이해

by hyun-am 2019. 4. 19.

1장

Index

01. 소프트웨어공학

02. 시스템과 시스템 개발자

03. SDLC 모형

04. 프로토타입 모형

05. 프로젝트 관리


01. 소프트웨어공학

소프트웨어 공학은 소프트웨어위기를 겪으면서 출연하였습니다. 예를들면 개발기간의 지연을 해결해 보려고 인력을 더 투입했지만 개발비용만 늘어났습니다. 따라서 이러한 문제를 해결하기 위해 출현하였습니다.

소프트웨어 공학이란 소프트웨어의 개발, 운용, 유지보수 및 파기에 대한 체계적인 접근 방식 입니다.

소프트웨어 공학의 계층 구조는 다음과 같습니다.

1-1

도구란 프로그램 개발 과정에서 사용되는 여러가지 방법을 자동화 한 것입니다.

  • 예를 들면 CASE라는 것이 있는데 이것은 개발 전 단계를 지원하는 대표적 도구입니다.
  • CASE는 전반부를 지원하는 계획, 분석, 설계와같은 상위CASE
  • 코딩, 테스팅, 유지보수와 같은 하위CASE가 있습니다.
  • 이것들을 통해서 설계자, 프로그래머, 테스터 계획수립자, 관리자들이 공통의 시각으로 개발합니다.

 

1-2

방법론이란 소프트웨어 개발에 사용되는 기술적인 방법을 정형화시켜 제시하는 것을 말합니다.

방법론은 3가지가 있는데 크게 프로세스 중심 방법론, 자료중심 방법론, 객체지향 방법론이 있습니다.

  • 프로세스 중심 방법론이란 자료의 변환과정관 프로세스를 강조하여 프로그램을 개발하는 방법입니다. 또한 자료의 흐름과 변환등이 중심 개념입니다. 하지만 절차적 방법론은 새로운 문제를 해결하기 위해 또 다른 파일과 프로세스가 필요하기 때문에 재사용성이 낮고 복잡해지는 단점이 있습니다.
  • 자료 중심 방법론 이란 프로그램을 개발할 때 사용할 자료를 규명하고 자료 간의 관계를 분석한 후 자료구조를 정의하고 이를 토대로 프로세스 구조를 고안하는 방법입니다. 예를 들면 데이터베이스 기반의 쿼리 중심 언어가 있습니다.
  • 객체지향 방법론 이란 자료와 프로세스를 묶어서 생각하는 방법입니다. 객체지향 방법론의 핵심 요소는 캡슐화, 모듈화, 정보 은닉, 코드 재사용의 효율성이 있습니다. 따라서 개발자들은 클래스나 컴포넌트들을 조합하는 것만으로도 훌륭한 응용 프로그램을 손쉽게 개발할 수 있습니다.

1-3

프로세스란 소프트웨어를 개발할 때 사용하는 방법과 도구를 적용할 순서를 정의한 것이다. 예를들면 소프트웨어 개발에 필요한 작업 이름, 작업 내용, 결과물, 절차나 지시사항 등이 있습니다.

 

 

1-4

품질이란 소프트웨어 공학에서 가장 중요한 목표는 양질의 소프트웨어를 생산하는 것입니다. 소프트웨어는 품질검사할때 봐야 할 것이 많지만 정확성, 유지보수성, 무결성, 사용성이 중요한 지표가 됩니다.

  • 정확성이란?
    소프트웨어가 요구하는 기능을 수행하는 정도를 말합니다.
  • 유지보수성이란?
    소프트웨어에서 오류가 발견되면 이것을 수리하기 쉬워야 하고 고객의 요구사항을 바로바로 받을수 있어야 합니다.
  • 무결성이란?
    소프트웨어가 시스템 보안을 위해 공격에 저항하는 시스템의 능력을 말합니다.
  • 사용성이란?
    소프트웨어를 사용할 때는 편리해야 합니다.

02. 시스템과 시스템 개발자

시스템의 개념

시스템이란 아래 그림과 같은 구조로 설명할 수 있습니다.

시스템 개발에 참여하는 사람들

시스템 개발에 참여하는 사람은 조직전문가 또는 전문 컨설턴트, 시스템관리자, 시스템 분석가 및 시스템 설계자, 프로젝트 관리자, 프로그램 개발자가 있습니다.

먼저 조직 전문가 또는 전문 컨설턴트가 하는 일은 업무를 처리하면서 정보화가 가능한 것이 무엇인지를 식별하고 이를 현행 시스템의 운영 담당자에게 제시하는 절차를 진행하면서 재설계등을 하여 비효울적인 업무절차를 개선하고 정보화 함으로써 업무 효율을 높힙니다.

시스템 관리자가 하는일은 풍부한 현업 경험을 가지고 있어 오랫동안 업무처리를 해서 시스템 개발의 중요한 역할을 감당합니다.

시스템 분석가 및 시스템 설계자가 하는일은 오랜 시스템 개발 경험을 갖춘 고도로 숙련된 전문가로 시스템 개발의 중심적인 역할을 담당합니다.

프로젝트 관리자가 하는일은 대부분 프로젝트 관리를 총괄하는 역할을 맡으며 여러개의 파트로 나누어 진행할 경우 리더를 둘 수 있습니다.

프로그램 개발자는 설계 문서를 바탕으로 시스템을 구현하는 사람입니다.

03. SDLC 모형

SLDC 모형은 5단계로 표시할 수 있습니다. 분석, 설계 구현, 테스트, 유지보수 순으로 모형 5단계의 그림은 아래와 같습니다.

 

1. 분석단계

  • 시스템이 갖추어야할 기능이 무엇인가를 정의하는 단계이다.
  • 추상적이고 모호한 대상을 구체적이고 명확하게 정의하는 일이다.

 

2. 설계단계

  • 산출된 분석 문서를 바탕으로 어떻게 구현할 것인가 설계하는 단계
  • DB설계, 각종 코드 설계, 처리에 대한 절차, 구조설계 등 구현에 필요한 기술적 대안 만든다

 

3. 구현 단계

  • 설계 문서를 바탕으로 직접 프로그램을 작성하는 단계입니다.

 

4. 테스트 단계

  • 단위 모듈 테스트를 비롯하여 모듈 간의 인터페이스를 테스트하기 위한 통합 테스트 입니다.
  • 테스트 단계에서는 다른 단계와는 달리 상향식 접근을 합니다.

 

5. 유지보수 단계

  • 실제 현업에서 문제가 발생시 생기는 문제점을 보완하는 단계입니다.
  • 이 단계가 많이 반복되면 많은 인력과 비용이 소모됩니다.

댓글