폭포수(고전적, 선형), 프로토타입(불분명한 요구사항), 나선형(계획→분석→개발→평가), 애자일
PO, SM, 개발팀
계획, 스프린트, 일일 스크럼, 검토, 회고
소규모 프로젝트에 적합, 애자일 개발 방법론
핵심가치 : 의사소통, 단순성, 용기, 존중, 피드백
리팩토링 - 소프트웨어를 쉽게 이해할 수 있고, 적은 비용으로 수정할 수 있도록 겉으로 보이는 동작의 변화 없이 내부 구조 변경
도출→분석→명세→확인
비기능적 - 기능적
도구 : UML, DFD 자료 흐름도, DD 자료 사전, 소단위 명세서, 개체 관계도 ERD, 상태 전이도 STD, 제어 명세서
case : 자동화 / SADT, SREM, PSL/PSA, TAGS
HIPO : 하향식 솦트 개발, 가시적 도표 / 총체적 도표 / 세부적 도표
의사소통 할 수 있게 해주는 언어
사물 → 구조, 행동, 그룹, 주해 사물
관계 → 연관, 집합, 포함, 일반화, 의존(dependency : 오퍼레이션 매개변수, 단기간임), 실체화(realization : 오퍼레이션 지정)
다이어그램
UML 확장 모델에서 스테레오 객체 타입 표현할 때 쓰는 기호 : << >>
유스케이스(외요소와 외부 스템 간의 관계/사용자의 관점에서) 다이어그램
→ 연관, 일반화, 포함, “특정한 조건이 만족될 때”는 확장 extend 관계!
클래스 다이어그램 → 클래스(속성, 오퍼레이션), 제약조건, 관계
접근 제어자 - public(+), protected(#), package(~), private(-)
순차 다이어그램 → 메시지 주고 받는 것(액터, 객체, 생명선, 실행박스, 메시지, 회귀 메시지, 제어 블록)
구분 : CLI(텍스트), NUI(말이나 행동)
기본 원칙 : 직관성, 유효성, 학습성, 유연성
설계 지침 : 사용자 중심, 사용성, 일관성, 단순성, 결과 예 측 가능, 가시성, 심미성, 표준화, 접근성, 명확성, 오류 발생 해결
와이어프레임, 목업, 스토리보드, 프로토타입, 유스케이스
ISO/IEC 9126 → 개발자 관점에서 본 솦트 품질의 특성
: 기능성, 신뢰성, 사용성, 효율성, 유지 보수성, 이식성
25010
: + 호환성, 보안성
체크박스, 라디오 버튼, 텍스트 박스, 콤보 상자, 목록 상자
상위 설계(아키텍처,예비 설계 / 인터페이스, 구조, DB) - 하위 설계(모듈설계, 상세 설계 / 자료구조, 알고리즘, 컴포넌트)
기본 원리
설계 과정
시스템 타입
협약 설계 : 선행 조건, 결과 조건, 불변 조건
** 아키텍처 설계에서 시스템 품질 속성 x?
→ 성능, 변경, 사, 기, 가, 확, 보
(성능 좋은 폰으로 변경해서 사기가 확보했다)
레이어 패턴
클라이언트-서버 패턴
파이프-필터 패턴
모델-뷰-컨트롤러 패턴
(보관)(표시)(변경)
마스터-슬레이브 패턴
객체, 클래스, 캡슐화, 상속, 다형성, 연관성
클래스에 속한 각각의 객체를 인스턴스.
데이터와 데이터를 처리하는 함수를 묶은 모듈 : 객체
독립성 높, 결합력 낮, 응집도 높, 크기 작
결합도 : 약할수록 품질 높다, 유지보수 구현 쉽다 / 내공외제스자
응집도
팬인 팬아웃
코드 주요 기능 : 식별, 분류, 배열, 표준화, 간소화
생성패턴
구조패턴
행위패턴
요구사항 검증 방법 - 동료검토, 워크스루, 인스펙션
미들웨어 = 미들 + 소프트웨어
클라이언트와 서버 간의 통신을 담당