본문 바로가기

컴퓨터과학[4-1]/소프트공학15

소프트웨어 공학 - [제9강] 객제지향 분석과 설계 소프트웨어 공학 - [제9강] 객제지향 분석과 설계주요용어OOA/OOD: 객체 지향 분석과 설계는 상호작용하는 객체들로 시스템을 모델링하는 방법이다. 분석 과정에서는 문제 도메인을 분석하여 다루어야 하는 정보들에 관한 개념 모델을 작성하는 것에 주안점을 둔다. 설계 과정에서는 비기능적 요구사항과 아키텍처를 고려하여 개념 모델을 변환하여 구현을 위한 명세를 작성한다.유스케이스: 사용자가 의도된 작업을 위해 수행하는 시스템과의 일련의 상호 작용 또는 구체적 사용 시나리오로 기능적 요구사항을 의미한다.시스템 설계: 분석 모델을 시스템 설계 모델로 변환하는 일이다. 주요 작업은 아키텍처를 정하는 일이며 구현과 관련된 여러 제약 사항들에 관한 결정이 이루어진다. 아키텍처 설계를 객체지향 방법에서는 시스템 설계라는.. 2017. 1. 2.
소프트웨어 공학 - [제8강] 소프트웨어 유지보수 소프트웨어 공학 - [제8강] 소프트웨어 유지보수주요용어소프트웨어 유지보수: 고객에게 인도되어 사용 중에 있는 소프트웨어를 환경 적응, 오류수정, 성능 향상, 유지보수성 향상 등을 위하여 계속하여 수정, 보완하는 일이다재공학: 레가시 시스템의 이해성을 높이고 유지보수성, 재사용성 등을 개선하기 위해 소프트웨어를 변경하는 작업재구조화: 이해성과 유지보수성을 높이기 위해 프로그램의 제어 구조를 개선하는 작업역공학: 소프트웨어 요소를 분석하여 높은 추상 수준의 표현을 유도하는 작업이다. 예를 들어 시스템을 분석하여 구성 요소들과 그들의 관계를 찾는 일, 소스 코드로부터 설계문서를 유도하는 일, 목적 코드로부터 소스 코드를 유도하는 일 등코드 스멜: 소스 코드에서 문제를 일으킬 수도 있는 나쁜 부분리팩토링: 기.. 2017. 1. 2.
소프트웨어 공학 - [제7강] 소프트웨어 설계 소프트웨어 공학 - [제7강] 소프트웨어 설계 주요용어소프트웨어 아키텍처: 소프트웨어 구조를 말하며 시스템을 구성하는 요소들과 그들 간의 관계를 표현하향식/상향식 설계: 하향식 설계는 시스템의 주요 컴포넌트를 먼저 찾아 설계한 후 그 것들을 낮은 수준의 컴포넌트들로 분해하여 설계하는 것. 상향식 설계는 가장 기본적인 컴포넌트들을 설계한 후, 이것들을 사용하는 상위 수준의 컴포넌트들을 차례로 설계하는 방법아키텍처 스타일: 유사한 애플리케이션들에 적용되는 공통적인 아키텍처 패턴으로 같은 부류의 시스템을 설계할 때 초안으로 사용될 수 있는 아키텍처구조적 설계: 데이터 흐름을 분석하여 시스템을 기능적으로 분해하는 전통적 설계 방법구조도: 구조적 설계 기법에서 아키텍처를 표현하기 위해 사용되는 시스템 모델모듈화:.. 2017. 1. 2.
소프트웨어 공학 - [제6강] 사용자 요구 분석 소프트웨어 공학 - [제6강] 사용자 요구 분석주요용어FURPS+: HP에서 정의한 요구사항 분류 모델로 F는 기능적 요구사항을 의미하며 나머지는 비기능적 요구사항인 사용성, 신뢰성, 성능, 지원성을 의미한다. +는 제약조건이다.요구 공학: 시스템의 목표와 기능 및 제약 사항을 결정하는 과정으로 시스템 요구사항을 만들고 유지하기 위한 반복적 프로세스를 말한다.JAD: 애플리케이션 설계와 개발 과정에 고객과 사용자를 참여시키는 방법론이다. 고객과 개발자 간의 협력과 합의를 위해 워크숍을 진행한다.객체지향 분석: 객체와 객체 간의 관계를 바탕으로 요구 사항을 분석하는 방법이다. 클래스 다이어그램으로 표현되는 분석 객체 모델과 상태 다이어그램이나 시퀀스 다이어그램으로 표현되는 동적 모델로 분석 과정의 결과물을.. 2016. 12. 31.
소프트웨어 공학 - [제5강] 소프트웨어 테스트 소프트웨어 공학 - [제5강] 소프트웨어 테스트주요용어소프트웨어 테스트: 프로그램을 실행시켜 결함을 찾고자 하는 활동결함 테스트/검증 테스트: 결함 테스트는 소규모 코드에서 결함을 찾고자 하는 것이며 검증테스트는 고객이 원하는 것인지를 보이기 위한 고수준 테스트상향식/하향식 통합: 제어 계층 구조상의 최상위 모듈부터 시작하여 아래의 하위 모듈들을 통합시켜 가는 것을 하향식이라 하며, 최하위 수준을 먼저 만들고 위 수준의 모듈들을 차례로 통합하는 것을 상향식 통합이라 함화이트박스 테스트: 프로그램의 논리 구조에 바탕을 두어 테스트하는 것으로 구조 테스트라고도 함테스트 케이스 선정 기준: 화이트박스 테스트 방식에서 테스트 케이스들이 얼마나 적정한지를 판단하는 기준으로 문장, 분기, 조건 검증 기준 등블랙 박.. 2016. 12. 29.
소프트웨어 공학 - [제4강] 소프트웨어 품질 소프트웨어 공학 - [제4강] 소프트웨어 품질주요용어소프트웨어 품질: 소프트웨어가 가지는 수월성에 관한 특성으로 요구사항의 만족, 개발과정에서 표준의 준수 및 묵시적 좋은 특성을 가지는 것ISO/IEC 9126: 소프트웨어 제품의 품질 특성들과 메트릭을 정의한 표준CMMI: 조직의 개발 프로세스 성숙도를 평가하기 위한 통합 모델SQA(소프트웨어 품질 보증): 소프트웨어 개발 과정에서 품질 수준을 보증하기 위해 수행하는 품질 관리 활동QC(품질 제어): 제품이나 개발 프로세스가 품질 보증 절차를 따르고 품질 목표를 만족하는가를 확인하는 활동V&V(확인과 검증): 전체 생명주기에 걸쳐 소프트웨어가 명세에 맞게 작성되었는지 확인하고 고객의 요구를 충족하는지 검증하는 활동인스펙션: 설계 문서나 코드를 작성자가 .. 2016. 12. 29.