전산직 컴퓨터일반 - Part 06 소프트웨어 공학 요약

⭐⭐⭐ 반드시 / ⭐⭐ 중요 / ⭐ 참고 ⚠️ = 기출 함정 포인트



Chapter 01. 개요


  • 소프트웨어 공학이란 최소의 경비로 품질 높은 소프트웨어 상품의 개발, 유지보수 및 관리를 위한 모든 방법론의 총칭
  • 소프트웨어 생명주기는 제작 공정 과정이다.
    • 폭포수 모형 : 비전문가가 사용할 시스템 개발. 순차적으로. 계획, 요구분석, 설계, 구현, 시험, 운용 및 유지보수단계로 되어있다. 단계별로 구현되어 전단계로 돌아가는 경우가 없음.
    • 프로토타이핑 : 폭포수에서 요구사항 파악의 어려움 때문에 프로토타입을 개발하는것.
    • 나선형 : 폭포수와 프로토타이핑의 장점을 모아 위험분석까지 추가한 개발 모델. 계획수립, 위험분석, 개발, 평가의 단계를 가진다.
    • V : 개발작업과 검증작업사이의 관계를 드러내놓은 폭포수 모델의 변형. 높은 신뢰성이 요구되는 분야에 적합.
    • 애자일 : 고객의 요구에 민첩하게 대응하고 그때그때 풀어나가는 방법론. 애자일에는 xp(익스트림 프로그래밍), 스크럼이 있다. 프로세스와 도구 중심이 아니라 실시간으로 빨리 제공.
      • xp는 고객의 요구사항은 변경된다는 가정으로 여러번의 릴리즈및 반복으로 피드백을 수용.
      • 스크럼은 개발보다는 팀의 개선과 프로젝트 관리를 위한 애자일 방법론
  • 프로젝트 계획 및 예측
    • 노력추정 :cocomo규모에 따른 견적서
    • 기능 점수 모델 : 기능에 대해 가중치 부여.
    • wbs
    • cpm
    • 간트차트
  • 구조적 분석 기법
    • 자료흐름도
  • 디자인패턴
    • 생성패턴, 싱글톤 빌더 패턴 추상팩토리, composite 어댑터패턴 퍼사드
    • 옵저버 패턴 메멘토패턴
  • 설계의 기본원리는 추상화 정보은닉 구조화 모듈화임
  • 설계평가에서 결합도는 모듈들이 서로 관련되거나 연결된 정도로 자료결합도는 결합도가 약함. 내용결합도는 매우강함
  • 응집도는 한 모듈 내에 있는 처리 요소들 사이의 기능적인 연관 정도를 나타내며, 응잽도가 높아야 좋은 모듈이된다. 기능적 응집도는 응집력강함. 모든 요소가 한가지 기능을 수행하기위해 구성될때.
  • 구조적 설계 도구. 구조도, hipo, n-s chart
  • 객체지향은 객체, 속성, 클래스, 메시지, 메소드, 다형성, 상속성, 캡슐화, 정보은닉,
  • 클래스 설계원칙은 SRP 단일책임원칙, OCP 개방폐쇄의 원칙, LSP 리스코프 교체의 원칙, DIP 의존관계 역전의 원칙, 인터페이스 분리의 원칙(ISP)
  • UML
  • 블랙박스 - 기능시험, 데이터위주, 입출력 위추, 외부명세서를 기준으로
  • 화이트박스- 내부의논리적 구조를 시험.
  • 단위테스트 - 화이트박스
  • 통합테스트 -
  • 시스템시험
  • 인수시험
  • 소프트웨어의 유지보수 - 리그레션 테스트 변경에 의해 영향받은 부분만 다시테스트.
  • 소프트웨어 재공학은 위기의 해결책을 개발의 생산성이 아닌 유지보수의 생산성 재고에서 찾는 새로운 시각.
    • 목적은 유지보수성 향상, 기술을 향상, 수명을 연장시킴
  • 역공학은 소스코드보다 상위 수준의 추상화에서 프로그램 표현을 위해 프로그램을 분석하는 프로세스 - 추상 추출 활동으로서 문서화가 안된 프로그램 평가.
  • cbd ?
  • case :자동화를 의미하며 하나의 작업을 자동화한 소프트웨어 패키지.