요구사항분석


소프트웨어 개발 방법론


HIPO : 하향식 소프트웨어 개발 문서화 도구 

V모델 : 폭포수 모델에 시스템 검증과 테스트 작업을 강조한 모델

 

소프트웨어 재사용 : 다시 새롭게 개발 

소프트웨어 재공학 : 성능을 향상 

역공학 : 재발견하거나 다시 만들어내는 작업

 

소프트웨어 생명주기 : 시스템 요구분석 유지보수까지 절차 (SDLC)

생명주기 종류

     폭포수 모델 : 단계 마무리 후 다음 단계

     프로토타이핑 : 프로토타입으로 구현

     나선형 : 점진적으로 개발

     반복적 : 대상을 나누어 병렬적, 반복적 개발

 

소프트웨어 개발 방법론: 소프트웨어 개발의 시작부터 폐기까지 전과정 형상화

소프트웨어 개발 방법론 종류

     구조적 방법론: 기능에 따라 나누고 통합(나씨-슈나이더만(논리의기술 도형표현방법))

     정보공학 방법론: 개발에 필요한 관리 절차와 작업 기법을 체계화

     객체 지향 방법론: 객체를 기본으로 개발

     컴포넌트 기반 방법론: 컴포넌트를 조립해 응용 프로그램 개발

     애자일 방법론: 사람이 중심 신속 변화 유연

     제품 계열 방법론: 특정 제품에 적응하고 싶은 기능을 개발 , 임베디드

 

애자일 방법론

     xp: 의사소통, 즉각적 피드백 방법론

     스크럼 : 정해진 시간에 개발

     린 : 낭비를 제거 품질을 향상 (낭비제거,품질 내재화,지식창출,늦은확정,빠른인도,사람존중,전체최적화)

 

 

개발 기술 환경 분석


미들웨어 : 운영체제와 소프트웨어 애플리케이션 사이에 위치 

오픈 소스 라이선스 : 소스코드가 공개

    - GNU (유닉스 공짜) : GNU GPLv3 : 2007.6 소프트웨어 특허에 대처하는것을 정의

                                        BSD : 아무나 개작할 수 있고 수정한 것을 배포할 수 있다.

DBMS 구축 조건 : 성능 가용성 기술지원 상호호환성 구축비용

 

 

 

요구사항 확인


요구공학 : 요구가 반영된 시스템을 위한 도출 분석 명세 확인 

SWEBOK : 소프트웨어 공학 지식 체계

요구공학 프로세스 : 도출 -> 분석 -> 명세 -> 확인 및 검증

 

요구사항 도출 : 브레인스토밍 , JAD회의(결합응용설계) , 프로토타이핑 , 델파이 : 전문가

 

요구사항 분석  (기출 2021-1)

        기능적 요구사항 : 입력에대해 시스템의 반응

                         기능성 완전성 일관성

        비기능적 요구사항: 시스템 구축 품질

                           신뢰성 사용성 제약사항 유지보수성 등

 

 

요구사항 관리


CMMi : 미국 카네기 멜런 대학 단체에서 소프트웨어의 운영 성숙도 능력 확인 (초기 , 관리, 정의,  정량적 관리 , 최적화)

       요구사항 관리 프로세스 : 협상 -> 베이스라인 -> 변경관리 -> 확인 및 검증 

                                    요구사항 협상 : 정형분석 : 구문과 형식적으로 정의된 의미를 지닌 언어로 요구사항 표현

                                    요구사항  베이스라인 

                                   요구사항 변경관리 : 변경통제위원회(CCB)

                                   요구사항 확인   -> 확인 : 사용자의 시각에서 사용자의 요구사항 확인   검증 : 개발자의 시각에서 명세서대로 개발이 되었는지

 

인수테스트 : 사용자 관점에서 요구사항 충족 여부   알파 : 개발자 관점   베타 : 사용자가 테스트 

 

모델 품질 검증 : 정적분석 , 동적분석 , 요구사항 검토

 

테스트레벨 :  개발 - 설계 - 기능명세분석 - 요구사항분석                         단위테스트 - 통합 - 시스템 - 인수 

 

 

요구사항 분석 모델


구조적 분석 모델 : 하향식 , 자료흐름도 

객체 지향 분석 모델 : UML

 

요구사항 분석 모델 검증


소프트웨어 개발 자동화 도구 CASE : 요구사항을 자동 분석 및 명세서 기술 도구 

형상관리 : 소프트웨어 통제, 변경 상태를 기록하고 보관하는 일련의 작업

 

 

개념모델림


UML : 럼바우 객체 지향 분석 기법

              객체모델링 : 객체를 다이어그램으로

              동적 모델링 : 상태를 시간 흐름에따라

              기능 모델링 : 자료흐름도를 이용하여 프로세스간 자료흐름 

 

        구조적 다이어그램 : 클래스 , 패키지 , 복합체구조, 객체 , 컴포넌트 , 배치 2020 4회

        행위 다이어그램 : 유스케이스(사용자관점) , 활동(업무처리, 연산) , 콜라보레이션(순차와같으면 구조적인면) , 상태머신(객체의 생명주기) , 순차(시간 흐름에 따른 객체상호작용) , 통신(객체관계) , 상호작용개요(상호작용 제어흐름) , 타이밍(상태변화, 시간제약)

        UML : 연관 , 의존 , 일반화, 집합, 포함 ,실체화관계 

 

 

객체지향분석: 사용자의 요구사항을 모든 클래스(객체), 속성 연산 관계 정의

객체지향분석 방법론: 

    OOSE: 유사케이스를 모델의 근간으로

    OMT: 그래픽 표기법으로 소프트웨어 구성요소를 모델링 , 럼바우기법

                  객체 모델 -> 동적 모델 -> 기능 모델

            객체 모델 : 객체관계정의 ER, 객체 다이어그램

            동적 모델: 시간의 흐름에 따라 상태다이어그램

            기능 모델: 자료흐름을 중심 자료흐름도

 

 

디자인패턴


디자인 패턴

     목적  (기출)

              생성: 객체 인스턴스 생성, 클래스정의 캡슐화

              구조: 클래스나 객체의 조합

               행위: 클래스나 객체들의 상호작용

     범위

               클래스: 상속, 컴파일타임에 정적

               객체 : 런타임에 동적\

 

 

생성 디자인 패턴 

     Factory Method : 생성할 객체의 클래스를 국한하지 않고 객체를 생성, 서브클래스로 구분해 캡슐화

     Singleton (Pattern) : 한 클래스에 한 객체만 존재하도록 제한

     Prototype (Pattern) : 기존 객체를 복제함으로써 객체를 생성

     추상 팩토리(Abstract Factory) : 구제적인 클래스에 의존하지 않고 서로 연관되거나 의존적인 객체들의 조합을 만드는 인터페이스를 제공하는 패턴

     Builder : 작게 분리된 인스턴스를 조립하듯 조립하여 객체 생성 

 

 

구조 디자인 패턴      컴퍼지트(Composite) :여러 개의 객체들로 구성된 복합 객체와 단일 객체를 클라이언트에서 구별 없이 다루게 해주는 패턴
     데커레이터(Decorator) : 객체의 결합을 통해 기능을 동적으로 유연하게 확장할 수 있게 해주는 패턴

      adapter : 호환성있게 클래스를 개조

      Bridge : 기능과 구현 연결 추상과 분리

      Facade : 건물의정면 , 퍼사드 객체를 통해서만 관계

      Flyweight : 인스턴스를 가능하다면 공유 

      Proxy : 메모리 대용량 , 네트워크연결

 

행위 디자인 패턴        옵서버(Observer) : 한 객체의 상태 변화에 따라 다른 객체의 상태도 연동되도록 일대다 객체 의존 관계를 구성하는 패턴
         스테이트(State) : 객체의 상태에 따라 객체의 행위 내용을 변경해주는 패턴
         스트래티지(Strategy) : 행위를 클래스로 캡슐화해 동적으로 행위를 자유롭게 바꿀 수 있게 해주는 패턴
          템플릿 메서드(Template Method)  :어떤 작업을 처리하는 일부분을 서브 클래스로 캡슐화해 전체 일을 수행하                                                   는  구조는 바꾸지 않으면서 특정 단계에서 수행하는 내역을 바꾸는 패턴
          커맨드(Command) : 실행될 기능을 캡슐화함으로써 주어진 여러 기능을 실행할 수 있는 재사용성이 높은 클래스                                     를 설계하는 패턴

         visitor : 새로운 오퍼레이션정의

         chain of responsibility : 결합도를 없애고 객체고리를 따라 요청

         interpreter : 문법에 대한 표현 정의

        lterator : 순차적으로 접근 제공

        Mediator 상호작용을 객체로 캡슐화

         Memento 객체 내부 상태를 객체화

      

 

 

 

 

 

 

 

 

 

요구사항 확인 및 검증단계의 주요 기법

          형상관리 

           정형 기술 검토 활용

                        동료검토 : 명세서를 보고 결함

                        워크 스루 : 짧은 시간동안 회의 리뷰를 통해 검출 문서화

                        인스펙션: 다른 팀이 검사하여 오류

프로토타이핑 활용 : 프로토타입을 통해

모델검증 : 분석단계에서 모델의 품질 검증

테스트 케이스 및 테스트를 통한 확인 : 각각의 요구사항을 어떻게 할것인가

CASE도구 활용 검증 : CASE도구활용

베이스라인 검증 : 베이스라인을 통해

요구사항 추적표 : 요구사항 정의서를 기준으로

 

 

 

 

비용산정 모형 

   하향식 산정 : 전문가

               델파이 기법: 전문가의 경험을 통해

   상향식 산정: 필요한 기능에따라 비용산정

         코드 라인수: 원시코드 낙관,중관,비관 예측치

         Man Month: 한사람이 1개월동안 할수 있는 양 ( 코드수 % 개발자월평균 ) % 개발자 수   (기출)

         COCOMO 모형: 보햄, 프로그램의 규모에 따라

                              조직형 : 5만이하

                              반 분리형 : 30만이하

                              임베디드형 30만이상

         푸트남모형 : 단계별 요구할 인력의 분포 가정

          기능점수모형: 기능을 증대시키는 요인별로 가중치로 비용산정

 

비용산정 자동화 추정도구

     SLIM : Rayleigh-Norden곡선과 Putnam예측 모델을 기초로한 도구

     ESTIMACS: 다양한 프로젝트, 개인별요소 수용하도록 FP모형 기초

 

일정관리 모델: 프로젝트가 일정 기한내에 완료될수 있도록 관리모델

     주 공정법 : 여러 작업의 수행 순서가 얽혀있는 프로젝트의 일정 계산방법

                  주공정: 프로젝트 시작부터 종료까지 가장 긴 시간

     PERT : 일의 순서 계획적 정리(비관 중간 낙관)

     중요 연쇄 프로젝트 관리 : 주 공정 연쇄법으로 자원제약사항을 고려

 

 

 

 

현행 시스템 분석


 

현행 시스템 파악 : 어떤 기술을 사용하고 있는가?

현행 시스템 파악 절차 : 구성/기능/인터페이스파악 -> 아키텍처 및 소프트웨어 구성파악 -> 하드웨어 및 네트워크 구성 파악

 

소프트웨어 아키텍처 : 소프트웨어의 구성요소 특징 관계 표현하는 구조

소프트웨어 아키텍처 4+1뷰 : 고객의 요구사항을 4가지 관점에서보는 소프트웨어적인 접근방법

          유스케이스 뷰: 유스케이스, 아키텍처 도출 다른 뷰 검증

          논리 뷰 : 시스템의 기능적인 요구사항

          프로세스 뷰 : 시스템의 비기능적인 속성(자원 효율성, 병행실행, 비동기, 이벤트처리)

          구현 뷰: 정적인 소프트웨어 모듈, 컴포넌트 구조 의존성

          배포 뷰 : 컴포넌트가 물리적인 아키텍처에 어떻게 배치되는가

 

소프트웨어 아키텍처 패턴 유형

     계층화 패턴 : 시스템의 계층으로

     클라이언트 서버 패턴 : 서버와 클라이언트

     파이프 필터 패턴 : 데이터 스트림을 생성하고 처리하는 시스템에서만 사용, 재사용성 확장 용이

     브로커 패턴 : 분리된 컴포넌트들로 이루어진 분산시스템사용 , 각 컴포넌트들 원격 실행

     모델 뷰 컨트롤러 패턴 : 컴포넌트로 분리

                           모델: 핵심기능 데이터보관

                            뷰 : 사용자에게 정보표시

                            컨트롤러: 사용자로부터 요청을 받음

 

소프트웨어 아키텍처 비용 평가 모델 종류 

   SAAM : 변경 용이성, 기능성 경험이없는 조직에서 사용가능

   ATAM: 아키텍처 품질 속성을 만족시키는지

   CBAM: ATAM바탕 경제적 의사결정에 대한 요구 충족

   ADR : 응집도 평가모델

   ARID : 특정부분에 대한 품질요소

 

 

 

OSI 계층  (기출) 

          응용계층 : 사용자와 네트워크간 

          표현계층 : 데이터 형식 설정 암복호화

          세션 계층: 연결 접속 및 동기 제어

          전송 계층 : 신뢰성 통신보장 흐름제어 혼잡제어

          네트워크 계층 : 단말간 데이터 전송

          데이터링크 계층 : 인접 시스템 데이터 전송 전송오류

          물리 계층 : 0과 1 전기적 신호 변환

 

DBMS : 데이터와 관련된 응용 프로그램

미들웨어 : 분산 컴퓨팅에서 프로그램간 통신 소프트웨어

         WAS : (웹 어플리케이션 서버) 서버 계층 트랜잭션, 연동

 

 

 

 

+ Recent posts