반응형

객체지향 설계 원칙

 

 

*목차

1. 객체지향 설계 원칙 정의

2. 객체지향 설계 원칙 설명

3. 디미터 원칙 설명

 

 

*내용

1. bed smell 제거, 객체지향 설계 원칙 정의

 - 소프트웨어 개발시 프로그래머가 소스코드 가독성이 및 확장성을 위해  소스코드를 리팩토링하여 코드스멜을 제거하기 위해 적용 할 수 있는 설계 원칙

2. 객체지향 설계 원칙 설명

객체지향 설계 원칙 설명 사례
SRP
(Single Responsibility) 
- 단일 책임 원칙, 클래스는 하나의 책임 - 데이터 맵퍼 패턴(DAO) 
OCP
(Open-Closed Principle) 
- 개방 폐쇄 원칙, 확장에는 열려 있고, 변경에는 닫혀 있어야 함 - 상속과 어댑터, 클래스를 통한 클라이언트 클래스 접속, 컴파일러, POSIX 표준
LSP
(Liskov Substitutation Principle) 
- 리스코프 치환 원칙, 자식 타입은 부모타입으로 교체 가능 - 부모클래스, 자식 클래스, 상속관계
ISP
(Interface Segregation Principle)
- 인터페이스 분리의 원칙, 클라이언트는 사용 인터페이스만 의존  - 파일입력은 InputInterface, 파일출력은 OutputInterface, 공유 레파지토리 패턴
DIP
(Dependency Inversion Principle) 
- 의존 관계 역전 원칙, 파생클래스가 아닌 추상클래스에 의존해야 함 - 이벤트 드리븐, 콜백, JMS, 통신 프로그래밍 모델 

- 객체지향 설계 원칙과 함께 디미터 원칙을 적용하여 소스의 품질 향상 기대

3. 디미터 원칙 설명

 - 소프트웨어 모듈 사이의 결합도를 줄여서 코드의 품질을 높이는 객체 지향 설계 시 중요한 원칙.

반응형

'IT지식 > 소프트웨어공학' 카테고리의 다른 글

컴포넌트 기반 개발방법론(Component Based Development)  (0) 2023.04.20
다형성  (0) 2023.04.20
객체지향 방법론  (0) 2023.04.14
정보 은닉(Information Hiding)  (0) 2023.04.13
구조적 개발 방법론  (0) 2023.04.12
반응형

객체지향 방법론

 

*목차

1. 객체지향 방법론 정의 및 특징

2. 객체지향 방법론 구성도 및 구성요소

3. 객체지향 방법론 절차

 

 

*내용

1. 결합도는 감소 결합도는 증가, 객체지향 방법론 정의 및 특징

정의 - 현실 세계에서 개체를 데이터와 함수를 결합시킨 형태로 표현하는 개념으로 객체간의 메시지 통신이 가능한 개발 방법론
특징 - 캡슐화(응집도 향상), 추상화, 다형성, 정보은닉(결합도 감소 효과), 상속성

2. 객체지향 방법론 구성도 및 구성요소

 가. 객체지향 방법론 구성도

객체지향 방법론 구성도

  나. 객체지향 방법론 구성요소

구분 구성요소 설명
객체 형태 측면 클래스 - 객체의 타입을 정의하는 템플릿
메소드 - 클래스로부터 생성된 객체를 사용하는 방법
객체 생성 측면 객체 - 클래스의 인스턴스
인스턴스 - 프로그램에서 클래스를 통해 만든 실제의 실행 객체, 프로그램의 실행 단계에서 나타냄

- 객체지향 개발 시 분석, 설계, 구현 순으로 수행

3. 객체지향 방법론 절차

절차 설명
객체지향 분석 - 객체모델링 > 동적 모델링 > 기능 모델링
객체지향 설계 - 시스템 설계 > 객체 설계
객체지향 구현 - 코딩과 테스트

- 소프트웨어 개발 방법론으로는 객체지향 방법론, 구조적 개발 방법론, CBD개발 방법론, 애자일 개발 방법론 존재.

반응형

'IT지식 > 소프트웨어공학' 카테고리의 다른 글

다형성  (0) 2023.04.20
객체지향 설계 원칙  (0) 2023.04.20
정보 은닉(Information Hiding)  (0) 2023.04.13
구조적 개발 방법론  (0) 2023.04.12
SVVP(Software Verification and Software Validation Plan) 모델  (0) 2023.04.11
반응형

정보 은닉(Information Hiding)

 

*목차

1. 정보은닉 정의

2. 정보은닉 구현 절차 및 구현 방법

 가. 정보은닉 구현 절차

 나. 정보은닉 구현 방법

 

 

*내용

1. 정보은닉 정의

 - 인터페이스와 구현을 명확히 분리하여 인터페이스를 통해서만 메시지를 전달함으로써 모듈의 정보를 변경하지 못하게 하고 내부 항목에 관한 정보는 감추는 기법

 - 프로그래밍 시 객체를 Private 이나 protected로 선언하여 정보를 숨김

2. 정보은닉 구현 절차 및 구현 방법

 가. 정보은닉 구현 절차

구현절차 수행내용 설명
Class 식별 - 수집된 고객의 요구사항을 근거로 Class 를 식별하여 정의 Super class, Sub class
Attribute 정의 - Class를 표현하는 속성을 정의하고 속성유형을 부여 Char, Number
Method 정의 - 객체간의 I/F를 담당하고, 속성값을 조직하는 로직을 담고 있는 함수 정의 Overloading, Overriding
Attribute 접근 권한 부여 - 속성유형에 따르 접근지시자 부여 Private, Public, Protected

  나. 정보은닉 구현 방법

구현방법 설명
접근제어 지시자 - 객체의 Type 선언을 통해 은닉 객체를 정의
인터페이스 기반 - 외부에서 해당 객체에 접근 가능한 인터페이스 구현
캡술화를 통한 정보 은닉 - 캡슐화는 기본적으로 Information Hiding 에 포함

- 객체지향 설계 원칙에서 개방 폐쇄의 원칙에서 정보 은닉 기법 이용.

반응형

'IT지식 > 소프트웨어공학' 카테고리의 다른 글

객체지향 설계 원칙  (0) 2023.04.20
객체지향 방법론  (0) 2023.04.14
구조적 개발 방법론  (0) 2023.04.12
SVVP(Software Verification and Software Validation Plan) 모델  (0) 2023.04.11
일정중심 설계 모형  (0) 2023.04.11
반응형

구조적 개발 방법론

 

*목차

1. 구조적 개발 방법론 정의 및 기본원리

2. 구조적 개발 방법론 구성도 및 구성요소

 가. 구조적 개발 방법론 구성도

 나. 구조적 개발 방법론 구성요소

3. 햐향식, 상향식 개발 설명

 

 

*내용

1. 하향식 개발, 구조적 개발 방법론 정의 및 기본원리

정의  - 전체 시스템을 기능에 따라 분할하여 개발하고, 이를 통합하는 분할과 정복 방식의 프로세스 중심의 하향식 개발 방법론
기본원리  - 추상화, 구조화, 단계적 상세화, 모듈화

2. 구조적 개발 방법론 구성도 및 구성요소

 가. 구조적 개발 방법론 구성도

구조적 개발 방법론 구성도

 나. 구조적 개발 방법론 구성요소

구성요소 산출물(툴) 기법
구조적 설계 - Structure Chart, N-S Chart
- 프로그램 명세서(절차 명세서)
- Applicaation 구조도
- Multi Level DFD
- Databse Table 기술서
- 데이터 흐름중심
- 모듈의 응집도와 결합도
- 모듈 재사용성
구조적 분석 - DFD(Data Flow Diagram)
- ERD(Entity Relationship Diagram)
- STD(State Transaition Diagram)
- Multi-Spec, DD(Data Dictionary)
- 분할과 정복
- 구조적 조직화
- 하향식 기능 분배

- 구조적 개발 방법론은 하향식 개발을 사용하여 반대 개념의 상향식 개발 방법 존재

4. 하향식 개발, 상향식 개발 방법 설명

하향식 개발(Top-Down) - 아키텍쳐 설계를 먼저 한 뒤에, 큰 모듈들의 인터페이스 혹은 추상적인 레이어를 먼저 구현한 후에, 해당 인터페이스에 알맞은 기능들을 구현
상향식 개발(Buttom-up) -시스템에서 필요한 가장 프리미티브(원초적)한 기능들을 구현하기 시작해 해당 기능들을 필요에 따라서 조합하여 시스템을 구현

- 분할과 정복은 어려운 문제를 해결할때 해결하기 쉬운 일련의 작은 문제로 나누어 해결하는 방법 임.

반응형

'IT지식 > 소프트웨어공학' 카테고리의 다른 글

객체지향 방법론  (0) 2023.04.14
정보 은닉(Information Hiding)  (0) 2023.04.13
SVVP(Software Verification and Software Validation Plan) 모델  (0) 2023.04.11
일정중심 설계 모형  (0) 2023.04.11
칸반(Kanban)  (0) 2023.04.10
반응형

SVVP(Software Verification and Software Validation Plan) 모델

 

*목차

1. SVVP 모델 정의 및 목적

 가. SVVP 모델 정의

 나. SVVP 모델 목적

2. SVVP 모델 수행절차 및 단계별 상세 설명

 가. SVVP 모델 수행절차

 나. SVVP 모델 단계별 상세 설명

 

 

*내용

1. 정적 테스트와 동적테스트의 조합, SVVP 모델 정의 및 목적

 가. SVVP 모델 정의

   - IEEE-1012 표준 기반, SW 개발자가 소프트웨어 생명주기 공정에 따라 산출된 생성물에 대한 품질을 보증하기 위한 계획

 나. SVVP 모델 목적

V&V 자원관리 - V&V 활동에 투입될 자원의 효율적인 관리 위한 체계적 계획 수립
V&V 참여자 R&R - 개발 전 과정에 참여하는 이해 당사자들의 V&V 활동에 적절한 책임과 권한 부여 및 관리
V&V 프로세스 감시/통제 - 전체 제품 개발 과정에 발생하는 Process/Activity 일관성, 완전성, 정확성, 추적성 확보하기 위한 기능 제공

2. SVVP 모델 수행절차 및 단계별 상세 설명

 가. SVVP 모델 수행절차

SVVP 모델 수행절차

 나. SVVP 모델 단계별 상세 설명

단계 산출물 내용
계획 비즈니스 요구검증 계획서, 정보화 계획서 - 프로젝트 목표 및 비전 계획
요구명세 요구명세 계획서, 인터뷰 계획서 - 사용자 대상 요구사항 분석
분석 요구사항 분석 결과 계획서, 시스템 상세화 분석 계획서 - 요구사항 명세화
디자인(설계) 시스템 디자인 검증 계획서, V&V 검증 계획서 - 화면 및 인터페이스 등 설계
구현 코드 개발 총괄 계획서, 요구사항 코드화 계획서, 보안성 만족 계획서 - 소스 코드 대상 구현 수행
단위 시험 단위 시험 계획서, 모듈별 평가기준 수립 계획서 - 프로그램 테스트 수행
통합 시험 통합 시험 계획서, 통합 요구 수준 수립 계획서 - 시나리오 기반 테스트 수행
시스템 시험 시스템 시험 계획서, 시스템 요구수준 수립 계획서 - 운영을 위한 준비 실시

- 분석, 설계 단계 부터 정적 테스트를 통한 프로젝트의 위험관리 최소화.

반응형

'IT지식 > 소프트웨어공학' 카테고리의 다른 글

정보 은닉(Information Hiding)  (0) 2023.04.13
구조적 개발 방법론  (0) 2023.04.12
일정중심 설계 모형  (0) 2023.04.11
칸반(Kanban)  (0) 2023.04.10
스크럼(SCRUM)  (0) 2023.04.10
반응형

일정중심 설계 모형

 

*목차

1. 일정중심 설계 모형 정의

2. 일정중심 설계 모형 절차도 및 세부내역

 가. 일정중심 설계 모형 절차도

 나. 일정중심 설게 모형 세부내역

 

 

*내용

1. 일정을 최 우선으로 하는, 일정중심 설계 모형 정의

 - 소프트웨어 출시 일정에 준해 요구사항 우선순위 선정하고 순차 설계, 구현하는 반복적 개발 모형

2. 일정중심 설계 모형 절차도 및 세부내역

 가. 일정중심 설계 모형 절차도

일정중심 설계 모형 구성도

 나. 일정중심 설계 모형 세부내역

단계 산출물 내용
계획 프로젝트 계획서 - 출시일 기준으로 프로젝트 계획 수립
요구 분석 요구사항 분석서 - 요구사항 도출 및 우선순위 부여
설계 시스템/아키텍처 설계서 - 전체 시스템 설계
우선 순위별 구현 모듈설계서, 테스트 결과보고서 - 우선 순위 고려 상세 설계 및 구현

- 일정 기반 우선순위를 고려하여 소프트웨어 설계 및 개발 수행

반응형

'IT지식 > 소프트웨어공학' 카테고리의 다른 글

구조적 개발 방법론  (0) 2023.04.12
SVVP(Software Verification and Software Validation Plan) 모델  (0) 2023.04.11
칸반(Kanban)  (0) 2023.04.10
스크럼(SCRUM)  (0) 2023.04.10
Pair Programming  (0) 2023.04.10
반응형

칸반(Kanban)

 

*목차

1. 칸반 정의 및 종류

 가. 칸반 정의

 나. 칸반 종류

2. 칸반 수행절차 및 구성요소

 가. 칸반 수행절차

 나. 칸반 구성요소

3. 칸반 핵심 규칙

 

 

*내용

1. 작업 공정의 가시화 전략, 칸반의 정의 및 종류

 가. 칸반의 정의

  - Workflow를 표현하는 Kanban 보드를 통해 개발 공정을 시각화하고, 작업제한, 소요시간 최적화 기법을 통해 적시개발을 지원하는 애자일 방법론

 나. 칸반의 종류

퍼스널 칸반(Personal Kanban) - 개인 또는 소규모 팀 업무에 적용하는 칸반
프로토칸반(Protokanban) - 칸반 메소드를 적용하고 있지만, 아직 성숙한 시스템의 특성을 보여주지 못하고 있는 흐름 시스템 또는 프로세스

2. 칸반 수행절차 및 구성요소

 가. 칸반 수행절차

칸반 수행절차

 나. 칸반 구성요소

구분 구성요소 설명
작업 시간 측면 터치 타임(Touch Time) - 업무 항목을 실제로 진행한 시간의 총합
택트 타임(Takt Time) - 예상 고객 요구량를 충족시키는 데 필요한 평균 단위 생산 시간
작업 수행 측면 STATIK - 칸반 도입을 위한 시스템 사고 접근법
케이던스(Cadence) - 하나 이상의 서비스에서 피드백을 제공하는 리뷰 또는 회의
확률적 예측
(Probabilistic forecasting)
- 몬테카를로 또는 유사한 방법을 과거 제공율 및 리드 타임 데이터와 조합하여 흐름 시스템으로부터 결과를 예측해내는 방법

 - 칸반 방법론을 사용할 경우에는 핵심 규칙을 실천할 수 있도록 수행

3. 칸반 핵심 규칙 설명

규칙 실천법 설명
workflow 가시화 시각화 - 카드에 기록 보드에 게시
작업 통제 WIP 제한 - 동시 진행 가능 Workflow 제한
흐름 관리 - workflow 진행 관리
정책 명시 - 업무 규칙 명시
작업 관리 피드백 루프 - 피드백을 통한 프로세스 최적화
지속적 개선 - 사이클 구조 수립, 개선
작업 시간 측정 - 다음 작업 시간 예측

- 칸반 방법론은 칸반보드를 통해 현재 공정 상태를 가시화 함.

반응형

'IT지식 > 소프트웨어공학' 카테고리의 다른 글

SVVP(Software Verification and Software Validation Plan) 모델  (0) 2023.04.11
일정중심 설계 모형  (0) 2023.04.11
스크럼(SCRUM)  (0) 2023.04.10
Pair Programming  (0) 2023.04.10
XP(extreme Programming)  (0) 2023.04.08
반응형

스크럼(SCRUM)

 

*목차

1. 스크럼 정의 및 추구하는 가치

 가. 스크럼 정의

 나. 스크럼이 추구하는 가치

2. 스크럼 수행절차 및 구성요소

 가. 스크럼 수행절차

 나. 스크럼 구성요소

3. 스크럼 회의 수행방안

 

 

*내용

1. 스프린트의 반복 수행, 스크럼 정의 및 추구하는 가치

 가. 스크럼 정의

  - Product backlog를 바탕으로 기술적으로 분할되고 재해석된 Sprint의 반복을 통한 제품완성을 구현하는 애자일 방법론

 나. 스크럼 추구하는 가치

구분 추구하는 가치
신뢰 - 확약, 전념, 정직
존중 - 존중, 용기

2. 스크럼 수행 절차 및 구성요소

 가. 스크럼 수행절차

스크럼 수행절차

 나. 스크럼 구성요소

구분 구성요소 설명
스크럼 조직
측면
Product Owner - Product backlog 정의, 우선순위 부여
Scrum Master - 팀원 멘토링, 기술전파, 장애 제거
Scrum Team - 개발자, 고객, 스크럼 마스터
산출물
측면
Product backlog - 제품 요구사항, SRS, TRS
Sprint backlog - sprint 기간에 수행할 태스크
Burndown Chart - 남은 업무 대비 시간에 대한 그래픽 표현
미팅
측면
Sprint Meeting - sprint 계획
Daily meeting - 진행 검토, 장애 확인, 문제 해결, 매일 15분
Sprint review - 증분 검증

- Product backlog 를 기반으로 Sprint backlog를 나누어 반복적인 태스트 수행하며 미팅을 통해 회고 수행

3. 스크럼 미팅 수행 방안

Daily Scrum Meeting - 짧게(15분 정도) 한다, 서서 한다, 매일 한다, 스프린트 작업 목록을 잘 개발하고 있는지 확인한다
Sprint Review - 스프린트 완료 후 고객이 요구 했던 사항에 얼마나 부합하는지 참석자 앞에서 시연
Sprint Retrospective - 스프린트에서 수행한 활동과 개발한것을 되돌아 보고, 개선점이 없는지, 팀이 정한 규칙이나 표준을 잘 준수 했는지 검토, 단점을 찾기보다는 강점을 찾아 더 극대화
Sprint Planning Meeting - 전체 backlog 중에 해당 sprint에 수행할 작업을 배정하기 위한 회의

 - 미팅은 최대한 간결하고 짧게 수행하여 업무에 지장이 발생되는 일이 없도록 사전에 방지.

반응형

'IT지식 > 소프트웨어공학' 카테고리의 다른 글

일정중심 설계 모형  (0) 2023.04.11
칸반(Kanban)  (0) 2023.04.10
Pair Programming  (0) 2023.04.10
XP(extreme Programming)  (0) 2023.04.08
애자일 방법론  (0) 2023.04.08

+ Recent posts