ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [정보처리기사]기사따기13일차_4과목_소프트웨어공학_1_190207
    자격증/정보처리기사-합 2024. 12. 30. 23:12
    반응형

    # 최초 등록일 : 2024년 12월 30일 23:10

    # 최근 변경일 : 2024년 12월 30일 23:10

    # 내용 : 정보처리기사 필기 4과목 공부 후 정리한 내용 올리기

     

    이전 기사따기12일차는 아래에 링크로!!

     

    [정보처리기사]기사따기12일차_3과목_운영체제_4_190206

    # 최초 등록일 : 2024년 11월 26일 20:49# 최근 변경일 : 2024년 11월 26일 20:49# 내용 : 정보처리기사 필기 3과목 공부 후 정리한 내용 올리기 이전 기사따기11일차는 아래에 링크로!! [정보처리기사]기사

    doradorabean.tistory.com

     

    이건 많이 언급되는 단어

    이건 내가 궁금한거 쳐봐서 나온 결과

     

    ------------------------------------------------------------------------------------------------------------------------------

     

    Part 4. 소프트웨어 공학

    소프트웨어 공학 개념

     

    소프트웨어 공학의 정의

    1) 프로그램(Program)의 정의 : 산술적, 논리적인 연산을 신속하게 처리하기 위한 명령어들과 관련된 데이터 집합

    2) 소프트웨어(Software)의 정의 : 프로그램과 프로그램의 개발, 운용, 보수에 필요한 관련 정보 일체

    3) 소프트웨어(SE : Software Engineering)의 정의 : 최소의 경비로 품질 높은 소프트웨어를 개발하기 위한 모든 도구 및 방법론

     

    프로그램(Program)

    1) 프로그램 언어 : Program Language는 산술적, 논리적인 계산을 신속하게 처리하기 위한 명령어들을 기술하는 약속된 표기법

    2) 프로그램 번역기 : Program Translator는 프로그래머가 작성된 원시 코드를 입력받아 컴퓨터에서 수행될 수 있도록 기계어로 변환

     - 컴파일러 : Compiler는 고급 언어로 작성된 프로그램을 기계에 적합한 프로그램으로 번역

     - 인터프리터 : InterPreter 원시 프로그램과 기계어의 중간 코드로 생성하여 그 중간 코드를 해석 실행

     - 어셈블러 : Assembler는 저급 언어로 작성된 프로그램을 기계에 적합한 프로그램으로 번역

     

    소프트웨어(Software)

    1) 프로그램 : Program은 산술적, 논리적인 계산을 신속하게 처리하기 위한 명령어들과 관련된 데이터 집합

    2) 자료 구조 : Data Structure는 자료의 형성 과정으로 컴퓨터 기억 장치 안의 자료 표현이나 처리 방법 등을 분석, 연구하는 것의 총칭

    3) 문서(Paper)

     

    소프트웨어 공학(SE : Software Engineering)

    1) 소프트웨어 공학의 이해 : 소프트웨어의 문제점 혹은 위기를 극복하기 위해 마련된 학문

    2) 소프트웨어 공학의 대표적 정의

     - 소프트웨어의 개발, 운용, 유지보수 및 파기에 대한 체계적인 접근

     - 경제적인 비용으로 획득하기 위해 공학적 원리를 정립하고 이를 이용하는 학문

     - 소프트웨어 제품을 체계적으로 생산하고 유지보수와 관련된 기술과 경영에 관한 학문

     - 개발하고 운용, 유지보수하는데 필요한 문서화 작성 과정

     - 생산성을 높이기 위해 기술적, 인간적인 요소에 대한 방법론을 제공하는 학문

     - 신뢰도 높은 소프트웨어를 만들기 위한 방법

     

    3) 소프트웨어 공학의 목표

     - 소프트웨어 생산성과 작업 만족도를 증대시키는 것이 목적

     - 최소의 비용으로 계획된 일정보다 가능한 빠른 시일 내에 소프트웨어를 개발

     

    4) 소프트웨어 공학의 기본 원칙

     - 기술적인 방법, 도구들을 제공

     - 방법들에 대한 자동, 반자동의 자원을 제공

     - 소프트웨어를 합리적으로 개발하고 접속

     - 현대적인 구축 기술을 계속적으로 적용

     - 최상의 품질이 유지

     - 관련 사항을 문서화

     - 개발 비용을 최소화

     - 정보들을 체계적으로 데이터베이스화

     - 언어와 알고리즘의 최근 동향을 주기적으로 파악

     - 시스템의 안전

     

    시스템의 기본 요소

     - 입력(Input), 출력(Output), 처리(Processing), 피드백(Feedback). 제어(Control)

     

    소프트웨어의 기본 이론

     

    소프트웨어의 특징

     - 논리성, 개발성, 비마모성, 유연성, 유형성, 상품성, 견고성, 비정형적

     

    품질 좋은 소프트웨어의 구비 조건(특성)

    1) 사용자 요구가 정확히 반영되어야 한다.

    2) 적정한 개발 비용이 산정되어야 한다.

    3) 잠재적 오류가 최소화되어야 한다.

    4) 안전성이 있어야 한다.

    5) 효율성이 있어야 한다.

    6) 문서화가 되어 있어야 한다.

     * 문서화의 목적 : 프로젝트 관리를 효율적으로 함, 유지보수 용이, 추가 변경에 따른 혼란 방지, 병행 개발을 가능, 개발 방법과 순서

                             표준화, 신입 프로그래머에 대한 교육, 프로그램을 쉽게 확장

    7) 사용이 용이해야 한다.

    8) 객관성 있게 작성되어야 한다.

     

    소프트웨어의 위기(문제점)

     - 규모가 커지면서 복잡해지고 이로 인한 전체 개발 비용 증대

     - 기존 소프트웨어의 유지보수가 힘들기 때문에 유지보수 비용이 증대

     - 관리적인 면이 증대

     - 소프트웨어의 개발 비용이 증가

     - 하드웨어의 개발 속도를 따라가지 못해 사용자들의 요구사항을 감당할 수 없음

     - 개발자 간의 대화 단절

     - 성능 및 신뢰성이 부족

     - 품질을 평가할 수 있는 표준이 없음

     - 인건비 상승

     

    소프트웨어의 분류

    1) 정보 처리의 따른 분류

     - 일괄 처리 : Batch Process는 처리할 자료를 일정 기간 모아 두었다가 한 번에 처리

     - 온라인 처리 : On-line Process는 단말기와 원격지에 설치된 컴퓨터가 통신 회선을 통하여 자료를 처리하는 방식

     - 실시간 처리 : Real-time Process는 처리 결과를 사용자가 원하는 시간 내에 받아 볼 수 있음

     

    2) 위상의 따른 분류

     - 응용 소프트웨어 : Application Software는 누구나 쉽게 사용할 수 있도록 개발된 소프트웨어

     - 시스템 소프트웨어 : System Software는 응용 프로그램을 지원하기 위해서 개발된 소프트웨어

     

    3) 기능에 따른 분류

     - 계산 중심 기능 : 소프트웨어 기능이 수학적으로나 통계적 처리 기능을 중심

     - 정보처리 중심 : 데이터의 가공을 통하여 원하는 정보를 얻기 위하여 개발된 소프트웨어

     - 절차 중심 : 사용자의 문제 영역이 제한된 시간 내에 어떻게 처리될 수 있는가에 중점을 둠

     - 인공 지능 : 비 수치적 알고리즘을 이용

     

    4) 개발 목적에 따른 분류

     - 프로토타입 : Prototype은 개발될 소프트웨어의 일부를 미리 제작

     - 프로젝트 : Project는 주문형 소프트웨어로 단일의 사용자를 대상으로 개발된 것

     - 프로덕트 : Product는 상품형 소프트웨어

     

    소프트웨어의 생명주기

     

    소프트웨어의 일반적인 생명주기

     - 소프트웨어를 개발하는 절차 및 개발 단계의 반복 현상. 정의 단계, 개발 단계, 유지보수 단계로 구분함.

     

    생명주기의 각 단계별 특징

    1) 정의 단계 : 사용자의 요구사항을 정의하는 단계, 관리자와 사용자가 가장 많이 참여하는 단계

     - 타당성 검토 단계 : 제반 여건 및 타당성 파악

     - 프로젝트 계획 단계 : 필요한 모든 사항 준비

     - 요구분석 단계 : 개발할 소프트웨어의 문제 영역을 사용자에게 얻어내어 분석하는 단계

     

    2) 개발 단계 : 사용자의 요구사항에 따라 소프트웨어를 만드는 단계

     - 설계 단계 : 쉽게 구현할 수 있도록 준비하는 단계, 자연 언어와 프로그램 설계용 언어(PDL)를 사용, 오류가 가장 많이남

     - 구현 단계 : 프로그램 언어로 코딩하고 번역하는 단계

     - 검사 단계 : 오류를 찾아 수정하는 단계

     

    3) 유지보수 단계 : 품질을 유지시키기 위한 노력으로 소프트웨어 생명주기 단계 중에 가장 많은 시간과 비용이 투입

     

    소프트웨어 생명주기의 역할

    1) 생명주기 역할 : 사용자와 개발자 간의 공동 의식, 개발의 기본 골격, 관리하기에 용이, 용어 및 기술의 표준화 가능

     

    폭포수(Waterfall, 전통적인) 모형

    1) 폭포수 모형의 이해 : 단계별로 분명히 매듭짓고 그 다음 단계를 진행하자는 원리

     

    2) 특징 : 성공 사례가 많음, 선형 순차적 진행, 가장 오래되고 널리 사용, 단계별 산출물이 명확, 병행 수행안됨, 오류 없이 진행은 어려움,

                 새로운 요구나 경험을 설계에 반영하기가 힘들다.

     

    프로토타입(Prototype) 모형

    1) 프로토타입 모형의 이해 : 소프트웨어의 일부를 미리 제작하여 사용자의 요구를 정확히 받아들이는 방법

     

    2) 특징 : 불분명한 사용자의 요구를 받음, 변경이 용이, 요구분석 중심, 커뮤니케이션이 원할하지 못할 때 사용, 시뮬레이션, 개발된

                 프로토타입 소프트웨어를 사용, 공동의 참조 모델을 제공, 구현 공격이 될 수 있다. 실제 소프트웨어와 차이 있음, 개발 단계

                 안에서 유지보수가 이루어짐

    3) 적용 방법

     - 문서형 프로토타입 : Paper Prototype은 이미 만들어진 소프트웨어의 문서를 이용하는 방법

     - 작업 프로토타입 : Working Prototype은 실제 동작이 가능한 소프트웨어의 주요 기능을 만들어가면서 사용자의 요구를 받아들이는 작업

     - 프로그램 프로토타입 : Program Prototype은 기존의 개발되었던 프로그램과 문서를 이용

     

    4) Brooks의 이론 : 개발 일정이 지연된다고 해서 말기에 새로운 인원을 투입하면 일정이 더욱 지연된다.

     

    나선형(Spiral, 점증적) 모형

    1) 나선형 모형의 이해 : 위험 분석에 중점을 두어 프로토타입을 발전시킬 때마다 점증적으로 소프트웨어를 개발

    2) 나선형 모형의 단계별 기능

     - 계획 수립(Planning) : 개발 목적, 수정 계획, 제약조건 등을 설정

     - 위험 분석(Risk analysis) : 위험 요소 및 타당성을 분석하여 추진 여부를 결정

     - 개발(Engineering) : 한 단계의 프로토타입을 개발

     - 고객 평가(Customer evaluation) : 개발된 프로토타입을 평가

     

    3) 특징 : 완성도 높은 소프트웨어 나옴, 반복적인 작업을 수행한느 점증적 생명주기 모델, 위험 분석 중심의 개발 모형

                 대규모 프로젝트나 큰 시스템을 구축할 때 유리

     

    4세대(4GT : Fourth Generation Techniques) 모형

    1) 4세대 모형의 이해 : 4세대 언어를 이용한 기법

     

    2) 4세대 모형의 특징 : 원시 코드를 자동 생성, 설계 단계 축소가 있는 모형, 대규모 프로젝트는 시간과 비용이 많이 소비

    반응형
Designed by Tistory.