본문 바로가기

소프트웨어공학

(9)
[소프트웨어공학] CBD 방법론 CBD 방법론 (Component Based Development) - 컴포넌트를 조립 개발 방식 장점 재사용으로 시간 및 비용 감소 응집성 높이고 결합성 감소 소프트웨어 품질 향상
[소프트웨어공학] 분산시스템 분산시스템 하나의 시스템처럼 보이는 독립된 컴퓨터 집합 투명성 종류 1) 위치 투명성 사용자나 응용프러그램이 요구하는 데이터를 즉시 제공할 수 있는 것 사용하는 자료가 어느 사이트에 저장 되어 있는지 알 필요 없음 2) 중복 투명성 시스템이 복사본을 관리하기에 사용자는 데이터 중복 무시해도 괜찮음 중복 목적 : 시스템 성능 향상과 가용성 향상 3) 분할 투명성 데이터가 분할되어 저장되어 있는 것을 알 필요가 없다 수직 또는 수평으로 이루어짐 데이터를 많이 사용하는 지역에 분할 저장할 시 트래픽 감소 효과 4) 트랜잭션 투명성 여러 네트워크 사이트에서 트랜잭션 정상 보장 5) 성능 투명성 데이터베이스 시스템은 분산 시스템과 중앙집중식과 갚아야한다. 플렛폼 차이에 대한 성능저하는 없어야 한다 데이터 접근을 ..
[소프트웨어공학] MDA(모델 중심 구조) MDA(Modal Driven Architecture, 모델 중심 구조) - 플랫폼과 독립적인 모델을 이용하는 모델 기반 소프트웨어 개발 아키텍처 종류 MOF (Meta Object Facility) 매타 객체 설비 다른 메타 모델을 정의하기 위한 메타의 메타 모델 UML (Unified Modeling Language) 객체 및 컴포넌트 시스템을 표현하기 위한 언어 XMI (XML Metadata Interchange) UML로 기술된 모델정보와 XML 표현에 대한 표준 XML 기반 데이터 관리 위한 표준 CWM (Common Warehouse Metamodel) 데이터웨어하우스 관리에 이용되는 메타 데이터 모델 데이터 소스, 데이터 변환위한 표준 모델 제시
[소프트웨어공학] 파이프- 필터 패턴 파이트 필터(Pipe-Filter) 패턴 : 데이터 스트림 생성 및 처리하는 시스템에서 사용 서브시스템이 데이터를 입력 받고 처리하고 결과를 다른 시스템에 보내는 작업이 반복되어 이루어짐 사용하는 시스템 - 컴파일러, unix 쉘, DW ETT 구조 필터 : 서브시스템 파이프 : 서브시스템 사이 데이터의 흐름 / 데이터 버퍼링 또는 동기화 목적 사용 가능 장점 동시성 유지보수 용이 재사용 지원 이해 용이
[소프트웨어공학] SOA(서비스 지향 아키텍처) SOA (Service Oriented Architecture, 서비스 지향 아키텍처) - 기존 시스템을 최대로 활용하는 아키텍처 - 비즈니스적 용어 - 소프트웨어 기능을 서비스로 판단 - 업무처리 변화를 시스템에 빠르게 반영 웹 처리 프로세스 1) WSDL ( Web Service Description Language) - 웹 서비스 기술 언어 - XML로 기술 2) SOAP (Simple Object Access Protocol) - 메세지를 전달하기위한 XML 기반 프로토콜 - HTML, SMTP 등을 통해 메시지 교환 - 플랫폼 독립적, 언어 독립적, 확장가능 3) UDDI (Universal Description, Discovery and Integeration) - 전역 비즈니스 레지스트리 -..
[소프트웨어공학] 아키텍처 소프트웨어 아키텍처 - 시스템의 구조나 구조, 외부적으로 볼 수 있는 특성 - 요구사항의 집합으로부터 만족하기위한 설계를 생성 - 외부구조는 노출시키고 구현 세부사항 드러내지 않음 - 시스템의 청사진 및 의사소통 수단의 역할 종류 - 4+1 view 모델 - 계층화 패턴 - 파이프 필터 패턴 - P2P 패턴 - 클라이언트 - 서버 패턴 - MVC 패턴 - 이벤트 - 버스 패턴 - 브로커 패턴 - 인터프리터 패턴 - 블랙보드 패턴 - 마스터 슬래이브 패턴 1) 4+1 view 모델 관점 기능 관점 다이어그램 논리 / 설계 관점 최종 사용자에게 제공하는 기능 - Class diagram - state diagram 개발 / 구현 관점 시스템 실제로 작동하는 모습 프로그래머 관점 - Component diag..
[소프트웨어공학] 요구사항 명세 기법 정형 명세 비정형 명세 수학 , 논리학 기반 자연어, 그림 중심 명세 오류 및 모호성 쉽게 파악 장점 사용자 - 개발자 의사전달 용이 어려움 시간 소모 많음 단점 모호하다 완전한 검증 곤란 모델 기반 언어 대수 처리 기반 언어 수학적 표현 (집합, 수열) 이용 연산과 연산관계 이용 - 유한상태머신 - Z - VDM(vienna development method) - CSP - CCS - LOTOS - OBJ - Larch
[소프트웨어공학] 상속과 합성 클래스 다이어그램에서 관계 중 상속과 합성이 있다. 상속 합성 컴파일 시간에 이루어짐 런타임(실행시간)에 이루어짐 화이트박스 블랙박스 캡슐화 위배 class A { public int hi{}} class B extends A{} A p = new B(); class A1 { public int hi{} } class A2 { public int hi{} } class A3 { public int hi{} } class B { A1 p1 A2 p2 A3 p3 } => 속성으로 가짐 ( 연관 ) 이 때, 컴파일 시간과 런타임이 뭘까? 런타임 컴파일타임 컴파일 과정 마친 프로그램이 실행될 때 소스코드가 기계어 코드로 변환되는 과정 에러 : Null pointer exception 논리적으로 발생하는 에러 에..