Study/Computer

정보처리기사 필기 - 소프트웨어 설계 요약 (1)

고래상어9 2022. 1. 15. 22:43

 

  1. 소프트웨어 생명 주기 : 소프트웨어 개발과정을 단계별로 나눈 것

          폭포수 모델: 각 단계를 한번씩만 거침 (되돌릴 수 없음)

          단계별 철저한 검증 필요 / 메뉴얼 작성 필요

          프로토타입 모델: 기능적 인터페이스 중심으로 견본 개발 후 최종 개발 추후 발견 된 오류 방지

          나선형 모델: 계획-분석(검증)-개발-평가(오류방지)의 단계를 반복

          폭포수와 프로토타입의 장점 흡수하여 점진적 개발

          대규모 소프트웨어 개발에 용이

          애자일 모델: 요구사항 반영 및 고객과의 의사소통 빈도를 높이는 것이 목표.

          여러 개발방법을 아우르는 모델

 

    2. 스크럼 기법 <애자일 모델 중 하나>

      스크럼기법: 팀 중심, 제품 책임자, 스크럼 마스터, 개발팀으로 구성

      제품 책임자(PO): 의사 결정자, 백로그의 우선순위 지정

      스크럼 마스터: 일일 회의 주관, 개발 가이드

      개발팀: 개발자 뿐 아니라 디자이너, 테스터 등 모든 인원

      프로세스 ㅡ

            백로그: 요구사항을 우선순위에 따라 모아놓은 목록

            계획 회의: 스프린트 일정 수립, 개발자 별로 스프린트 백로그 작성

            스프린트 진행: 할 일, 진행 중, 완료

            일일 회의: 스크럼 마스터 주도, 소멸차트 활용

            검토 회의: 주별, PO주도, 백로그 업데이트

            회고: 지난 일정 되돌아보기, 개선점 찾기

 

    3. XP(eXtreme Programming) 기법 <애자일 모델이 추구하는 고객과의 소통을 극도로 끌어올렸다>

            짧고 반복적인 개발 주기, 고객의 적극적 참여를 통한 가시성 향상

            소규모 인원의 개발 프로젝트에 효과적

            핵심가치: 피드백, 존중, 용기, 단순화, 소통

            개발 프로세스ㅡ

                  사용자 스토리: 고객의 요구사항

                  릴리즈 계획 수립: 부분과 전체의 개발 일정 수립

                  스파이크: 기술 및 기능확인을 위해 간단히 만드는 프로그램

                  이터레이션: 릴리즈를 좀 더 세분화 한 단위

                  승인 검사: 부분 소프트웨어가 릴리즈 되면 고객이 직접 평가

                  소규모 릴리즈: 릴리즈 별로 고객의 피드백 확인 가능

 

    4. 현행 시스템 파악 <구기인아소하네>

       구-기간,지원, 시스템 별 기능 명시 기-계층, 세부적, 시스템 별 기능 파악 인-데이터형식

       아-동작원리 소-종류,라이선스 하-서버수량, 이중화 네-물리적, 유지보수

      시스템 파악: 시스템 개발 범위를 명확하게 설정

          시스템 구성: 기간(주요) 업무와 지원 업무의 주요 기능 파악

          시스템 기능: 주요 기능별 세부 기능들을 계층형으로 표시

          시스템 인터페이스: 주고받는 데이터의 형식, 프로토콜 파악

 

          아키텍처 구성: 주요 업무 시스템의 구성과 동작원리를 표현

          소프트웨어 구성: 종류 및 라이선스의 적용방식과 개수

              *라이선스 : 해당 저작물의 사용범위

                  일부만 가능한지, 전체 사용이 가능한지, 상업적 사용여부 및 소프트웨어 재구성 가능여부 등 여러가지가 있음

 

          하드웨어 구성: 서버의 주요 사양과 수량, 이중화 적용 여부

                  *이중화: 데이터를 하나 더 복사하는 것 (백업과 같은 개념)

          네트워크 구성: 구성도 작성. 물리적 위치, 보안 취약점, 유지 보수

 

    5. 개발 기술 환경 파악

       운영체제: 시스템 자원 관리, 하드웨어 제어를 위한 인터페이스

            고려사항: 주변 기기 지원여부

       DBMS: 데이터베이스 관리를 위한 시스템, 종속성과 중복성 해결

            DB에 대한 모든 권한과 책임이 있음

            고려사항: 상호 호환성, 데이터 이중화

       WAS: 동적 콘텐츠 처리를 위한 미들웨어, DB서버와 연동

           미들웨어: 서버와 클라이언트 중간에 위치, 클라이언트 대신 복잡한 처리를 하기 위함

           고려사항: 다양한 옵션

       공통 고려사항: 가용성, 성능, 기술지원, 오픈소스, 비용

       오픈소스: 라이선스 종류, 기술의 지속가능성, 사용자

 

    6. 요구사항 정의/분석/확인

        요구사항: 서비스에 대한 설명 및 제약조건

               -기능: 기능 자체                -비기능: 기능의 품질, 제약사항

               -사용자: 쉬운 표현 사용      -시스템: 개발자 입장, 전문용어     

        요구사항 개발 프로세스: 도출(의사소통)->분석->명세(문서화)->확인

                -분석: 타당성 조사, 특정 기준으로 분류

                     개념 모델링: 단순화, 개념적 표현, 객체간 관계와 종속성 분석

                     협상: (기능과 비기능, 필요자원, 서로)의 요구사항이 충돌되는 경우

                     정형분석: 마지막 단계, 구문의미를 갖는 언어 사용, 수학적 기호로 표현

                -확인: 검증

                     검토: 일반적, 고객대표 포함      모델 검증: 정적(논리적) 검증, 실행안함

                     프로토타이핑: 지속적인 프로토타입 작성, 사전 피드백

                          단점: 프로토타입에만 집중, 비용부담, 과대평가

                     인수 테스트: 사용자 입장에서 요구사항 체크(계획 필요)

 

 < 출처 유튜버 주간컴공 >