ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 소프트웨어 공학
    소프트웨어 공학 2022. 3. 8. 16:18

    소프트웨어

    프로그램 + 문서 + 데이터(정보)

    프로그램

    컴퓨터에게 작업 수행시키기 위한 명령의 집합체

    소프트웨어의 특징

    • 비가시성
      • 전체적인 구조 파악이 어렵다
    • 복잡성
      • 정형화된 구조가 없어 이해하고 관리가 어려움
    • 순응성
      • 화녕 변화에 따라 적절한 변형 용이
    • 비제조성
      • 소프트웨어는 개발이다
    • 비마모성
      • 시간이 지나면, 품질이 저하된다.
    • 비조립성
      • 주문 제작에 의해 개발된다.

    소프트웨어의 분류

    응용 소프트웨어

    - 사용자의 작업 수행을 돕기 위한 소프트웨어

    시스템 소프트웨어

    - 응용 소프트웨어 개발자를 위한 소프트웨어

    소프트웨어 공학의 정의

    실 세계에서 사용자의 실질적인 문제 해결을 위해 소프트웨 어 개발에 과학적인 원리를 체계적으로 적용하는 학문 분야

    (체계적, 통제적, 정량적)

    소프트웨어 공학과 시스템 공학

    소프트웨어 공학 시스템 공학
    소프트웨어 개발에 중점 – 소프트웨어, 하드웨어, 네트워크, 사용자 상호작용, 주변 환경 고려
    – 시스템 전체 구조 설계, 다른 구성 요소들과의 상호작용에 의한 통합에 더욱 관심

    소프트웨어 공학 기술발전

    다른 사이트에서 보면 많이 나온다.

    소프트웨어 공학 3가지 주제

    process, method, tool

    process

    제품 생산을 위해 수행되는 일련의 순차적인 활동

    계획 -> 분석 -> 설계 -> 구현 -> 테스트 -> 유지보수

    이중에서 구현이 제일중요하다.

    process의 중요성

    일관된 구조 제공

    관리를 위한 하부 구조 제공

    개선 및 자동화 가능

    용어 표준화

    process의 주요 활동

    계획

    - 시스템 정의, 위험 분석, 일정수립

    분석

    - 사용자 요구를 수집하고, 이해

    설계

    - 사용자의 기능/비기능 how를 어떻게 제공할 것인지 고민한다.

    구현

    - 설계 문서를 바탕으로 코드로 변환

    테스트

    유지보수

    Method

    프로세스에 적용되는 기술적인 절차

    방법과 방법론

    -방법

     - 단일 활동에 적용

    -방법론=페러다임

     - 여러 활동에 적용되거나 프로세스 전반에 걸쳐 적용

    방법론

    • 구조적 방법론
      • 시스템의 데이터 흐름에 기초하여 기능 중심으로 분할하고 하향식으로 분석
    • 정보공학 방법론
      • 데이터 중심의 분석/설계에 의한 데이터 모델링을 중시한다.
    • 객체지향 방법론
      • 구조적 방법론과 다르게 데이터와 데이터 관련 기능을 하나로 묶어 객체로 정의하여 객체중심으로 분석/설계하는 방법론이다.
    • 애자일 방법론
      • 문서 작성이나 프로세스, 동구 적용에 치중하는 것과 비교하여 고객과의 상호작용에 중점을 두는 방법론이다.
    • 컴포넌트 기반 방법론
      • 독립적으로 개발되고 배포될 수 있는 단위인 컴포넌트들을 중심으로 시스템을 조립하여 짧은 시간에 구축하는 방법론이다.
    • 정형화 방법론
      • 수학적인 이론에 기초하는 방법론
      • 논리 표기법은 더욱 일관되며 정확한 명세를 이끌어 낼 수 있다.

    tool

    CASE

    개발 활동, 프로세스, 방법을 지원하는 컴퓨터 시스템

    CASE 분류

    – 프로젝트 계획 수립 도구

    분석/설계 모델링 지원 도구

    – 소프트웨어 형상 관리 도구

    – 요구사항 추적 도구

    – 변경관리 도구

    프로토타이핑 도구

    – 프로그래밍 도구

    – 테스트 도구

    – 재공학 도구

    – 프로그램 분석 도구

    – 프로젝트 관리 도구

    다양한 관점

    • 유지보수

    • 분석/설계

    • 계획

    • 테스트

    • 문서화

    유지보수 관점

    과거 프로젝트

    • 문제 단순, 단기간 개발
    • 개발 후 유지보수

    현대 프로젝트

    • 문제 복잡, 장기간 개발
    • 빈번한 사용자 요구 변경, 실 세계 변화 반영
    • 개발 중 유지보수 + 개발 후 유지 보수

    분석/설계

    유지보수 비용 절감 위해 개발 초기 결함 발견과 수정 필요

    - 개발 초기 단계의 오류 발견과 수정은 단지 문서 수정

    계획 관점

    계획 없이 프로젝트를 통제, 관리하는 것은 불가능하다.

    초기 계획 필수적, 그러나 영역 정보 부족으로 정 확한 세부 계획 수립 어려움

    테스트 관점

    개발 후반부에 수행되는 오류 검사는 개발 초기 에 수행하는 검사에 비해 비용 증가

    구현 후 수행되는 독립된 활동이 아니라 소프트웨어 개발 프로세스 전 과정에 걸 쳐 수행되는 활동

    - 문서 검토

    문서화 관점

    • 각 활동의 결과물은 문서로 작성하는 것이 필요
    • 만일 작성되지 않는다면 유지보수와 테스트 어 려움
    • 문서화 과정 역시 시스템 개발 전 과정을 통하여 수행하는 활동

     

    '소프트웨어 공학' 카테고리의 다른 글

    구조적 분석 방법  (0) 2022.05.03
    요구 공학  (0) 2022.04.19
    프로젝트 계획  (0) 2022.04.10
    프로젝트 관리  (0) 2022.04.03
    소프트웨어 개발 프로세스  (0) 2022.03.16

    댓글

Designed by Tistory.