목록정보처리/SE (23)
DevGang
1. CASE(Computer Aided Software Engineering)의 개념 소프트웨어 개발 과정에서 사용되는 요구 분석, 설계, 구현, 검사 및 디버깅 과정 전체 또는 일부를 컴퓨터와 전용 소프트웨어 도구를 사용하여 자동화하는 작업 소프트웨어 생명 주기의 전체 단계를 연결해 주고 자동화해 주는 통합된 도구를 제공해 주는 기술 소프트웨어 개발의 작업들을 자동화하는 것 소프트웨어 도구와 방법론의 결합 통합 CASE는 소프트웨어 개발 주기 전체 과정을 지원함 2. CASE(Computer Aided Software Engineering) 분류 CASE는 소프트웨어 생명 주기의 어느 부분을 지원하느냐에 따라 다음과 같이 분류할 수 있음 - 상위(Upper) CASE 소프트웨어 생명 주기의 전반부에서..
1. 소프트웨어 재공학 (Software Reengineering) 새로운 요구에 맞도록 기존 시스템을 이용하여 보다 나은 시스템을 구축하고, 새로운 기능을 추가하여 소프트웨어 성능을 향상하는 것 소프트웨어의 위기를 개발의 생산성이 아닌 유지보수의 생산성으로 해결하려는 방법을 의미 소프트웨어 재공학의 일반적인 개념은 데이터와 기능들의 개조 및 개선을 가해 유지보수 용이성을 향상하자는 것임 재공학은 유지보수에 대한 장기적인 전략적 고려와 많은 비용, 시간, 자원을 요구함 재공학은 유지보수성, 생산성, 품질의 향상을 목적으로 함 재공학은 형식의 변경과 재설계 과정을 포함 소프트웨어 재공학도 자동화된 도구를 사용하여 소프트웨어를 분석하고 수정하는 과정을 포함 소프트웨어 재공학의 활동은 분석, 개조(재구성), ..
1. 소프트웨어 재사용 (Software Reuse) 이미 개발된 인정받은 소프트웨어의 전체 혹은 일부분을 다른 소프트웨어 개발이나 유지에 사용하는 것 1990년대의 클래스, 객체 등의 소프트웨어 요소는 소프트웨어 재사용성을 크게 향상함 소프트웨어 재사용에 가장 많이 이용되는 것은 프로그램, 즉 소스 코드(Source Code) 임 2. 소프트웨어를 재사용의 이점 개발 시간과 비용을 단축 소프트웨어 개발의 생산성을 높임 프로젝트 실패의 위험을 줄여 줌 소프트웨어의 품질을 향상 시스템 구축 방법에 대한 지식을 공유하게 됨 시스템 명세, 설계, 코드 등 문서를 공유하게 됨 3. 재사용의 문제점 재사용 대상의 선정 문제 공통적 재사용 대상의 발견 어려움 프로그램 표준화 부족 프로그램 언어 종속적 새로운 개발 ..
1. 객체지향 설계 (OOD, Object Oriented Design) 객체지향 분석(OOA)을 사용해서 생성한 여러 가지 분석 모델을 설계 모델로 변환하는 작업으로, 시스템 설계와 객체 설계를 수행 최근 소프트웨어 제품의 전형적인 타입인 사용자 중심, 대화식 프로그램의 개발에 적합한 방식 객체의 속성과 자료구조를 표현함 구체적인 절차를 표현함 서브 클래스와 메시지 특성을 세분화하여 세부사항을 정제화함 2. 객체지향 구현 구현은 설계 단계에서 생성된 설계 모델과 명세서를 근거로 하여 코딩하는 단계임 객체지향 프로그래밍을 이용하면 용이하게 구현할 수 있음 객체는 순차적으로(Sequentially) 또는 동시적으로(Concurrently) 구현될 수 있음 - 객체지향 프로그래밍 (OOP, Object Or..
1. 객체지향 소프트웨어 개발모형의 개발 단계 계획 ⇨ 분석 ⇨ 설계 ⇨ 구현 ⇨ 테스트 및 검증 객체지향 기법을 사용하는 소프트웨어 개발 과정의 가장 큰 특징은 각 과정에서 사용되는 객체, 클래스, 메서드, 속성 등이 동일한 개념으로 사용된다는 것임 개발 전 과정에 걸쳐 동일한 방법론과 표현 기법이 적용된다는 장점을 갖고 있음 개발 과정 사이에서 같은 용어와 개념을 사용하여 분석, 설계, 구현 단계 사이의 전환이 쉬우므로 각 과정이 명확하게 순차적으로 이루어지지는 않음 분석은 객체를 형상화하는 단계(객체, 동적, 기능 모델링)이고 설계는 객체를 구체화하는 것이며 객체 프로그래밍은 객체를 클래스로 정의 또는 명시하는 단계임 2. 객체지향 분석(OOA, Object Oriented Analysis) 객체지..
1. 객체(object)란? 주체에 반대되는 말. 객관과 거의 동일한 뜻으로 1) 일반적 대상, 사상(事象), 2) 주체와 연관됨으로써 이 주체의 행위가 지향하는 것을 의미한다. 더 좁은 뜻에서 인식론적으로 보면 경험을 통해서 의식에 주어진 대상 또는 인식 주체와의 관계에서 본 실재(實在)라는 것이 된다. [네이버 지식백과] 객체 [Object, 客體] (철학사전, 2009, 중원문화) 객체 지향 프로그래밍(OOP)이나 설계에서, 데이터(실체)와 그 데이터에 관련되는 동작(절차, 방법, 기능)을 모두 포함한 개념. 예를 들어 기차역에서 승차권을 발매하는 경우, 실체인 ‘손님’과 동작인 ‘승차권 주문’은 하나의 객체이다. 실체인 ‘역무원’과 동작인 ‘승차권 발매’도 하나의 객체이다. 같은 성질(구조와 형태..
1. 유지보수(Maintenance)의 개요 개발된 소프트웨어의 품질을 항상 최상의 상태로 유지하기 위한 것으로, 소프트웨어 개발 단계 중 가장 많은 노력과 비용이 투입되는 단계 유지보수는 소프트웨어가 사용자에게 인수되어, 설치된 후 발생하는 모든 공학적 작업 소프트웨어 유지보수를 용이하게 하려면 시험 용이성, 이해성, 수정 용이성, 이식성 등이 고려되어야 함 유지보수 작업의 목적 - 하자 보수, 환경 적응, 예방 조치 소프트웨어에 가해지는 연결을 제어 관리하는 것을 형상 관리라고 함 - 유지보수 유형 수정(Corrective) 보수 (수리, 교정, 정정, 하자 보수) - 시스템을 운영하면서 검사 단계에서 발견하지 못한 오류를 찾아 수정하는 행동 적응(Adative) 보수 (환경 적응, 조정 보수) - ..
1. 검사(Test)의 개념 소프트웨어 품질을 평가하는 작업이며 분석이나 설계, 코딩 결과를 최종적으로 점검하는 과정 소프트웨어에 대한 요구사항의 만족도 및 예상 결과와 실제 결과의 차이점을 여러 방법을 사용하여 검사하고 평가하는 일련의 과정 검사의 목적은 오류를 찾아내는 데 있음 검사의 목적은 소프트웨어를 구성하는 요소들이 잘 이루며 정상적으로 동작하고 성능이 요구에 맞는 것을 보장하기 위해서임 검사 기법 종류에는 화이트 박스 테스트, 블랙박스 테스트가 있다. 2. 화이트 박스 테스트 모듈 안의 작동을 자세히 관찰할 수 있음(모듈 안의 논리적인 구조 검사) 프로그램 원시 코드의 논리적인 구조를 커버(Cover)하도록 테스트 케이스를 설계하는 프로그램 테스트 방법 원시 코드의 모든 문장을 한 번 이상 수..
1. 구현(Implementation) 설계 명세서가 컴퓨터가 할 수 있는 모습으로 변환되는 과정 시스템의 설계 명세서를 바탕으로 모듈 단위의 코딩과 디버깅 및 단위 데스트가 이루어지는 소프트웨어 개발 단계 프로그래밍 또는 코딩이라고도 함 2. 프로그래밍 언어 선정 기준 대상 업무의 성격 과거의 개발 실적 개발 담당자의 경험과 지식 3. 구조적 프로그래밍 신뢰성 있는 소프트웨어 생산과 코딩의 표준화 등을 위해 개발된 방법 Dijkstra 방법론 - 구조화 프로그래밍 방법론 중 선택과 반복 구조를 사용하는 것 - 구조적 프로그래밍의 제어 구조 순차(Sequence) 명령을 순서적으로 나열 선택(Selection) 특정 논리에 기초하여 명령을 선택함 반복(Iteration) 순환을 제공함 - 프로그래밍 규칙..
1. 데이터(자료) 설계 데이터 설계는 설계의 첫 번째 작업으로, 요구사항 분석에서 생성된 여러 모델 들을 소프트웨어를 구현하는 데 필요한 자료 구조로 변환하는 것 자료 구조가 프로그램 구조와 절차적 복잡성에 영향을 주므로 자료 설계는 소프트웨어 품질에 큰 영향을 줌 2. 아키텍처(구조) 설계 아키텍처 설계는 프로그램의 구조를 개발하고, 소프트웨어 구성 요소들 간의 관계를 정의하는 것 - 구조적(자료 흐름 중심) 설계 절차 정보 흐름의 유형을 설정 흐름의 경계를 표시 자료 흐름도를 프로그램 구조로 사상 제어 계층을 분해(Factoring)시켜서 정의 경험적 방법으로 구체화 3. 인터페이스 설계 인터페이스 설계는 소프트웨어와 상호 작용하는 시스템, 사용자 등과 어떻게 통신하는 지를 기술하는 과정임 - 사용..