자격증/정보처리기사 필기

[소프트웨어개발] 2. 통합 구현

염두리안 2023. 3. 5. 19:57
728x90
반응형
민경아 만족해?

목차
043. 단위 모듈 구현 (★☆☆)
044. 단위 모듈 테스트 (★★☆)
045. 개발 지원 도구 (★★☆)

043. 단위 모듈 구현 (★☆☆)

  • 개요) SW 구현에 필요한 여러 동작 중 한 가지 동작을 수행하는 기능을 모듈로 구현한 것 / 단위모듈로 구현되는 하나의 기능 ~> 단위기능 / 구성요소 - 처리문, 명령문, 데이터 구조 등 / 독립적 컴파일 가능, 다른 모듈에 호출, 삽입되기도 함
    • 단위 기능 명세서 작성 → 입/출력 기능 구현 → 알고리즘 구현
  • 단위 기능 명세서 작성) 설계과정에서 작성하는 기능, 코드 명세서, 설계지침 같은 단위 기능을 명세화 한 문서들 / 복잡한 시스템을 단순하게 구현하기 위한 추상화 작업 필요 / 대형 시스템 분해 ~> 단위 기능별로 구분, 계층적으로 구성(구조화) / 정보은닉 고려
  • 입/출력 기능 구현) 명세서에서 정의한 데이터 형식에 따라 입출력 기능 위한 알고리즘&데이터 구현 / CLI, GUI 연동 고려 / 오픈소스 API 이용시 간편하게 구현
    • IPC) 모듈 간 통신 방식을 구현하기 위해 사용되는 대표적인 프로그래밍 인터페이스 집합 / 대표 메소드 - Shared Memory, Socket, Semaphores, Pipes&named Pipes, Message Queueing
  • 알고리즘 구현) 입출력데이터를 바탕으로 단위 기능별 요구 사항들을 구현 가능한 언어를 이용해 모듈 구현 / 단위 기능과 사용자 요구가 일치하는지 확인 / 디바이스 드라이버 모듈, 네트워크 모듈, 파일 모듈, 메모리 모듈, 프로세스 모듈 등으로 구분

044. 단위 모듈 테스트 (★★☆)

  • 개요) 프로그램의 단위 기능을 구현하는 모듈이 정해진 기능을 정확히 수행하는지 검증 / 단위테스트(Unit test)라고도 하고 화이트&블랙박스 테스트 기법 사용 / 시스템 수준의 오류는 못 잡아냄
  • 테스트 케이스(Test Case)) 구현된 SW가 사용자 요구사항을 정확히 준수했는지 확인하려고 설계된 입력값, 실행조건, 기대결과 등으로 구성된 테스트 항목에 대한 명세서... 명세 기반 테스트의 설계 산출물에 해당
    • 구성요소 - 식별자(항목식별자, 일련번호) / 테스트 항목(테스트 대상) / 입력 명세 / 출력 명세(예상되는 출력 결과) / 환경 설정(필요한 HW, SW환경) / 특수 절차 요구(특별히 요구) / 의존성 기술
  • 테스트 프로세스) 수행하는 모든 작업들이 테스트 목적, 조건을 달성케 하는 과정
    • 계획 및 제어 → 분석 및 설계(테스트 시나리오, 케이스 작성) → 구현 및 실현 → 평가 → 완료

045. 개발 지원 도구 (★★☆)

  • 통합 개발 환경(IDE, Integrated Development Enviroment)) 개발과 관련된 모든 작업을 하나의 프로그램에서 처리할 수 있도록 제공하는 SW적인 ㄱ발환경
    • 대표적인 도구 - 이클립스(IBM/크로스 플랫폼/다양한OS/자바,C++,PHP,JSP) / 비쥬얼스튜디오(MS/win34,64/윈도우즈/Basic C,C++,.Net) / 엑스코드(Apple/Mac,Iphone/맥/C++,Java,AppleScript) / 안드로이드 스튜디오(구글/안드로이드/다양한OS/자바,씨쁠쁠) / IDEA(JetBrains/크로스 플랫폼/다양한OS/Java,JSP,XML,GO,코틀린,PHP)
    • 대표적인 기능 - 코딩 / 컴파일 / 디버깅 / 배포
  • 빌드 도구) 소스 코드 파일을 컴퓨터에서 실행할 수 있는 제품 SW로 변환(전처리, 컴파일)하는 과정&결과물 / 대표적인 도구 - Ant(아파치/자바/정해진 규칙X), Maven(아파치/Ant대안/컴파일,빌드 동시 수행), Gradle(Ant, Maven 보완/한스 도커/안드로이드 스튜디오 공식 빌드 도구로 채택)
  • 기타 협업 도구) 협업SW, 그룹웨어 / 개발에 참여하는 사람들이 서로 다른 작업 환경에서 원활히 프로젝트 수행할 수 있도록 도와주는 툴
    • 프로젝트 및 일정 관리) 구글캘린더, 분더리스트, 트렐로 등
    • 정보 공유 및 커뮤니케이션) 슬랙, 잔디 태스크월드 등
    • 디자인) 스케치, 제플린
    • 기타) 에버노트(아이디어 공유) / 스웨거(API를 문서화) / 깃허브

 

728x90
반응형