• 소프트웨어 위기
    • SW개발 속도가 HW개발속도를 따라가지 못해 사용자의 요구사항을 처리할 수없는 문제가 발생
  • 소프트웨어 공학
    • 소프투에어 위기를 극복하기 위한 방안으로 SW의 품질과 생산성 향상을 목적
  • 소프트웨어 생명주기
    • 정의 단계
      • 무엇을 처리하는 SW를 개발할 것인지 정의하는 단계
    • 개발 단계
      • 실제 개발단계
    • 유지보수 단계
      • 가장 많은 시간과 비용이 투입되는 단계, 
  • 소프트웨어 생명주기
    • 프로토타입 모형
    • 나선형 모형
    • 폭포수 모형
  • 프로젝트 관리
    • 주어진 기간 내 최소의 비용으로 사용자를 만족시키는 시스템을 개발하는 활동
      • 효과적인 프로젝트 관리를 위한 3대요소(3P)
        • 사람(people)
        • 문제(problum)
        • 프로세스(proccess)
  • 프로젝트 비용 결정 요소
    • 프로젝트 요소
      • 제품의 복잡도 시스템의 크기 요구되는 신뢰도
    • 자원 요소
      • 인적 자원, HW지원, SW지원
    • 생산성 요소
      • 개발자의 능력, 경험, 주어진 개발 기간
  • 비용 산정 기법(LOC 기법)
    • SW각 기능의 우너시 코드 라인 수의 비관치, 낙관, 기대치를 측정하여 예측치를 구하고 이를 이용하여 비용 산정
  • 비용 산정 기법(COCOMO)
    • Boehm이 제안한 것으로 원시 프로그램의 규모에 의해 비용 산정
    • 조직형
      • 중 소규모의 SW로 일괄 자료 처리나 과학 기술 계산용등 5만 라인 이하
    • 반분리형
      • 조직형 내장형의 중간형으로 트랜잭션 처리 시스템이나 운영체제등 30만 라인이하
    • 내장형
      • 초대형 규모 트랜잭션 처리 시스템이나 운영체제 등 30만 라인이상의 소프트웨어 개발
    • COCOMO 모형의 종류
      • 기본형
        • SW크기와 개발 유형만을 이용하여 비용을 산정
      • 중간형
        • 기본 공식을 토대로 사용하나 제품 특성, 컴퓨터 특성 프로젝트 특성 비용 산정
      • 발전형
        • 중간형을 보완하여 만들어짐 개발공정별로 보다 자세하고 정확하게 노력산출
  • 브록스의 법칙
    • 프로젝트 진행중에 새로운 인력을 투입할 경우 더욱 지연시키고 프로젝트에 혼란을 가져오게 된다는 법칙
  • 프로젝트 팀 구성
    • 분산형 팀
      • 팀원 모두가 의사 결정에 참여하는 비이기적인 구성방식
    • 중앙 집중형 팀
      • 한 관리자가 의사결정하고 구성원들은 그 결정을 따르는 구성 방식으로 프로그래머 팀이라고도 함
    • 계층 적팀
      • 분산형 팀 구성과 중앙 집중형 팀 구성을 혼합한 형태
      • 5~7명의 초보 프로그래머를 작은 그룹으로 만들어 각 그룹을 고급 프로그래머가 관리하게 함
    • 품질 표준
      • 명확하게 정의된 SW의 특성을 의미하며 품질을 평가하는 기준 항목
      • 종류
      • 정확성, 신뢰성, 효율성, 무결성, 사용 용이성, 유지보수성, 유연성
  • 위험 관리
    •  프로젝트 개발 과정에서 각종 돌발 상황을 미리 예상하고 대책 수립
  • 형상 괸리(SCM)
    • 개발과정에서 SW의 생산물을 확인하고 SW 통제, 변경 산태를 기록하고 보관하는 일련의 관리 작업
    • SW 변경의 원인을 알아내고ㅓ 제어하며 적절히 변경되었는지 확인하여 담장자에게 통보하는 작업
    • 개발의 전 단계에 적용되는 활동으로 유지보수 단계에서 수행된다.
    • 개발의 전체 비용을 줄이고 개발 과정의 문제점을 해결하여 방해 요인을 최소하하는 것을 목적으로 한다.
  • 자료 사전 표기 기호
    • = 자료의 정의
    • + 자료의 연결
    • () 자료의 생략
    • | 자료의 선택
    • {} 자료의 반복
    • ** 자료의 설명
  • HIPO의 종류
    • 거시적 도표
      • 시스템의 전체적인 기능과 흐름을 보여주는 계층 구조도
    • 총제적 도표
      • 프로그램을 구성하는 기능을 기술한 것으로 입력, 처리, 출력, 전반적인 정보를 제공하는 도표
    • 세부적 도표
      • 총제적 도표에 표시된 기능을 구성하는 기본 요소들을 상세하게 기술한 도표
  • 결합도(낮을수록good)
    • 모듈 간에 상호 의존도를 나타낸다
  • 응집도(높을수록good)
    • 정보은닉 개념을 확장한 것으로 모듈이 독립적인 기능으로 정의되어 있는 정도를 나타냄
    • 내부요소에는 명령어, 명령어의 모임, 호출문 등이 있음.
    • 독립적인 모듈이 되기 위해서는 각 모듈의 응집도가 강해야함.
  • 화이트 박스 테스트(원시)
    • 기초경로 검사
    • 조건검사
    • 루프검사
    • 데이터 흐름 검사
  • 블랙박스 테스트
    • SW각기능이 완전히 작동되는 것을 입증하는 검사 기능검사
  • 객체지향 기법
    • 객체
      • 데이터와 함수 기능
    • 클래스
      • 객체의 집합으로 객체의 일반적인 타입의미
    • 메세지
      • 객체들 간의 상호작용을 하는데 사용되는 수단
  • 객체지향
    • 캡슐화
      • 데이터와 데이터를 처리하는 함수를 하나로 묶는 것
      • 객체들의 재사용성이 용이함
      • 인터페이스가 단순해지고 객체간의 결합도가 낮아짐
    • 정보은닉
      • 캡슐화에서 가장 중요한 개념으로 다른 객체에 자신의 정보를 숨기고 연산만을 통하여 접근을 허용
    • 상속성
      • 상위 클래스의 모든 속성과 연산을 하위로 물려받는 것
    • 다형성
      •  

 

+ Recent posts