제가 중요하다고 생각되는 것만 요약한 글이므로 자세한 내용이 없을 수 있습니다.
소프트 웨어 공학의 3R
- 역공학
: 이미 개발된 시스템을 분석 - 재공학
: 시스템의 기능을 개선하거나 재구성
ex) 건물의 문이 고장났을 때 건물 전체를 고치지 않고 문만 고치는 것과 같음 - 재사용
: 이미 개발된 소프트웨어의 전체 또는 일부를 다시 사용하는 것
소프트웨어 개발 단계
- 계획
- 요구사항 분석
- 설계
- 구현
- 테스트
- 유지보수
개발 방법론
구조적 방법론
> 절차지향적인 개발 방법론
애자일 방법론
> 빠르고 유연하게 대응하는 개발 방식
애자일 방법론 종류
> XP: 반복적이고 점진적인 개발
>> XP 의 특징: 용기, 존중, 의사소통, 피드백, 단순성 (의사선생님 약은 피 존 용기에 담아주세요)
> SCRUM: 유연하고 생산적인 프로젝트 관리방식
소프트웨어 개발 모델
- 폭포수 모델
분석>설계>개발>테스트>유지보수의 단계로 진행 - 나선형 모델
분석>위험분석>개발>평가 - V모형
개발 단계에 따른 테스트를 중점으로 진행
프로젝트 관리
프로젝트 핵심 관리대상(3P)
- 사람
- 문제
- 프로세스
PMBOK
- 프로젝트 착수
- 프로젝트계획
- 프로젝트 실행
- 프로젝트 통제
- 프로젝트 종료
개발 비용 산정
기법
- LOC
: 예측치 = 낙관치 + 4(기대치) + 비관치 - COCOMO
- 조직형 (Organic) :
- 반분리형 (Semidetached) :
- 내장형 (Embedded) :
요구 공학
요구사항 분석도구
HIPO
: 하향식 소프트웨어 개발을 위한 문서화 도구
요구사항 분석 모델링
- 기능적 모델링
> 액티비티 다이어그램 - 정적모델링
> 클래스 다이어그램 - 동적모델링
> 순서 다이어그램, 상태 다이어그램
소프트웨어 설계
소프트웨어 설계의 원리
- 분할 및 정복
- 추상화
- 분해
- 모듈화
- 정보 은닉
- 결합도와 응집도
설계 모델링
- 구조 모델링
: UML 정적 다이어그램 - 행위 모델링
: UML 동적 다이어그램
UML
구성요소
- 사물
- 관계
- 다이어그램
UI 설계
유형
- CLI : 키보드로 조작
- GUI : 그래픽으로 조작
- NUI : 인간의 움직임으로 조작
설계 도구
- 와이어프레임 : 기본 구조와 레이아웃을 나타내는 설계도구
- 스토리보드 : 시나리오 흐름을 시각적으로 나타내는 도구
형상관리 도구
버전관리 도구
- 공유폴더 방식 (RCS, SCCS)
- 클라이언트/서버 방식 (CVS, SVN)
- 분산 저장소 방식 (Git)
모듈 구현
결합도
- 자료 결합도
: 값이 전달되는 경우 - 스탬프 결합도
: 배열, 오브젝트등이 전달 - 제어 결합도
: 제어 요소가 전달되는 경우 (if같은거) - 외부 결합도
: 다른 모듈에서 선언한 변수를 다른 모듈에서 참조하는 경우 - 공통 결합도
: 전역변수를 참조하고 갱신하는 경우 - 내용 결합도
: 다른 모듈 내부에 있는 변수나 기능을 사용하는 경우
응집도
- 기능적 응집도
: 모듈 내부 기능이 단일한 목적을 위해 수행되는 경우 - 순차적 응집도
: 모듈 내에서 나온 출력값을 다른 활동이 사용할 경우 - 통신적 응집도
: 동일한 입출력을 사용하여 다른 기능을 수행하는 활동들이 모여 있을 경우 - 절차적 응집도
: 모듈 안에 구성요소들이 순차적으로 수행할 경우 <- 순차라는 말이 들어갔다고 순차적 X - 시간적 응집도
: 특정 시간에 처리되어야 하는 활동 - 논리적 응집도
: 유사한 성격을 갖거나 특정 형태로 분률되는 요소들이 한 모듈에서 처리되는 경우 - 우연적 응집도
: 모듈 내 구성요소들이 연관 없을 경우
Pan-in, Pan-out
B에서 Pan-in은 A 1개, Pan-out은 E,F 2개
인터페이스
전송 데이터
- Json : 값과 쌍으로 이루어짐, JS 기반
- XML : 마크업 언어
- YAML : 데이터 직렬화 언어
- CSV : 쉼표로 구분되는 데이터 형식, excel
인터페이스 구현
AJAX
: JS 를 사용해 서버와 브라우저가 비동기 방식으로 데이터를 교환할 수 있는 통신기능
SOAP
: XML 기반 프로토콜 (XML + 프로토콜 나오면 SOAP)
WSDL
: 웹 서비스 기술언어 (XML + 언어 나오면 WSDL)
REST
: 자원을 이름으로 구분하여 해당 자원의 상태를 주고받음
객체지향 구현
객체지향 설계원칙 (SOILD)
- 단일 책임 원칙
: 한 클래스는 하나의 책임만을 가져야 함 - 개방 폐쇄 원칙
: 확장에 대해서는 열려있어야 하고 수정에 대해서는 닫혀있어야 함 - 리스코프 치환 원칙
: 자식 클래스는 언제나 부모 클래스를 대체 할 수 있어야 함 - 인터페이스 분리 원칙
: 자신이 사용하지 않는 인터페이스는 만들지 않아야 함 - 의존성 역전 원칙
: 의존관계를 맺을 때 변화가 없는것에 의존해야 함
디자인 패턴
- 생성
더보기추상 팩토리 : 서로 연관되거나 의존적인 객체들의 조합을 만드는 인스턴스를 제공
빌더 : 동일한 생성 절차에서도 다른 표현이 가능
팩토리 메서드 : 객체 생성을 서브 클래스로 위임하여 캡슐화
싱글톤 : 클래스의 인스턴스가 하나임을 보장 - 구조
더보기어댑터 : 클래스의 인터페이스를 다른 인터페이스로 변환
브리지 : 구현부에서 추상층을 분리하여 독립적인 확장이 가능
프록시 : 객체의 대리를 제공 - 행위
더보기옵서버 : 객체의 상태변화를 관찰
테스트
테스트 오라클
- 참 오라클 : 모든 입력값에 정확한 결과를 생성하는 오라클
- 샘플링 오라클 : 제한된 입력값 들에 예상되는 결과를 제공하는 오라클
- 휴리스틱 오라클 : 특정 입력값에는 정확한 결과값을 제공하나 그 외의 값에는 근사값을 제공
- 일관성 검사 오라클 : 소프트웨어의 변경 전/후로 일관성을 검증하는 오라클
테스트 레벨
블랙박스 테스트 : 내부 코드를 보지 않고 입출력 만으로 테스트하는 기법
- 동등분할기법 : 입력자료에 초점을 맞춰검사
- 경계값 분석 : 입력값의 경계값 ex) 100까지 입력 받을 수 있는 코드에 99,100,101
- 원인-효과 그래프 : 데이터의 관계와 출력에 영향을 미치는 상황을 분석한 뒤 효용성이 높은 테스트를 선정
- 오류예측 : 테스터의 감각으로 테스트
화이트 박스 테스트 : 내부 코드를 보며 데이터의 흐름 등을 테스트하는 기법
반응형
'etc > 이것저것' 카테고리의 다른 글
[PWA] FCM 모바일 알림 구현하기 (Vue.js) (4) | 2024.09.18 |
---|---|
2024 정보처리기사 실기 (2) 데이터베이스 구축 (0) | 2024.07.24 |
2024 1회 정보처리기사 필기 합격 후기 (2) | 2024.02.17 |
팩맨 컨셉 PPT 템플릿 (2) | 2023.05.24 |
컴퓨터 활용 능력 검정시험 (1급) 실기 후기 (0) | 2023.02.01 |
댓글