728x90 반응형 SMALL 전공공부/소프트웨어공학20 CASE와 정보저장소 1. CASE : Computer Aided Software Engineering 소프트웨어 개발 과정에서 사용되는 요구 분석, 설계, 구현, 검사 및 디버깅 과정 전체 또는 일부를 컴퓨터와 전용 소프트웨어 도구를 사용하여 자동화하는 것 소프트웨어 생명 주기의 전체 단계를 연결해 주고, 자동화해 주는 통합된 도구를 제공하는 기술 소프트웨어 개발 도구와 방법론이 결합된 것으로, 정형화된 구조 및 방법을 소프트웨어 개발에 적용하여 생산성 향상을 구현하는 공학 기법 소프트웨어 개발의 모든 단계에 걸쳐 일관된 방법론을 제공하는 자동화 도구(CASE tool)들을 지원하고, 개발자들은 이 도구를 사용하여 소프트웨어 개발의 표준화를 지향하며, 자동화의 이점을 얻을 수 있게 해줌 사용의 이점 소프트웨어 개발 기간을 .. 2021. 11. 22. 소프트웨어공학의 발전적 추이 1. 소프트웨어 재사용(Software reuse) 이미 개발되어 인정받은 소프트웨어의 전체 혹은 일부분을 다른 소프트웨어 개발이나 유지에 사용하는것. 소프트웨어 개발의 품질과 생산성을 높이기 위한 방법으로, 기존에 개발된 소프트웨어와 경험, 지식을 소프트웨어에 적용한다. 클래스, 객체 등의 소프트웨어 요소는 소프트웨어 재사용성을 크게 향상시켰음 소프트웨어 부품(모듈)의 크기가 작고, 일반적일수록 재사용률이 높음 재사용이 가능한 요소 전체 프로그램 부분코드 프로세스 시험계획 응용분야에 관한 지식 설계에 관한 결정 논리적 데이터 모형 시스템 구조에 관한 지식 등 장- 단점 장점 개발 시간과 비용을 단축시킴 소프트웨어 품질을 향상시킴 소프트웨어 개발의 생산성을 향상시킴 프로젝트 실패의 위험을 감소시킴 시스템.. 2021. 11. 22. 소프트웨어 유지보수 유지보수(Maintenance) 개발된 소프트웨어의 품질을 항상 최상의 상태로 유지하기 위한 것으로, 소프트웨어 개발 단계 중 가장 많은 노력과 비용이 투입되는 단계 소프트웨어가 사용자에게 인수되어 설치된 후 발생하는 모든 공학적 작업 소프트웨어 유지보수를 용이하게 하려면 시험 용이성, 이해성, 수정용이성, 이식성 등이 고려되어야 함 소프트웨어의 수명을 연장시키는 작업 분류 수정보수 (Corrective) 적응보수 (Adaptive) 완전화 보수 (Perfective) 예방보수 (Preventive) 수정보수란? 시스템을 운영하면서 검사 단계에서 발견하지 못한 잠재적인 오류를 찾아 수정하는 활동으로 오류의 수정과 진단을 포함함 적응보수 소프트웨어의 수정기간 중에 발생하는 환경의 변화(하드웨어, 운영체제 .. 2021. 11. 16. 소프트웨어 위험 관리 위험의 범주 프로젝트 과정에서 발생할 수 있는 위험의 분류 프로젝트 위험 (Project risk) 프로젝트 계획을 위협하는 것 일정이 지연되고, 비용이 증가하게 됨 기술 위험 (Technical risk) 소프트웨어의 품질이나 시기를 위협하는 것 구현이 어려워 지거나 불가능하게 됨 비즈니스 위험 (Business risk) 소프트웨어의 생존 가능성을 위협하는 것 원치 않는 제품이나 전략에 맞지 않는 제품등을 개발하게 함 소프트웨어 개발 시 일반적인 위험 요소 인력부족, 예산 관리, 일정 관리, 사용자 요구 사항 변경 등 가장 대표적인 위험 요소 : 사용자 요구 사항 변경 Charette 가 제안한 위험의 종류 알려진 위험 (Known risk) 프로젝트 계획서, 기술적 환경, 정보 등에 의해 발견될 수.. 2021. 11. 16. 소프트웨어 품질 보증 소프트웨어 품질 소프트웨어 품질(Quality) 주어진 요구 사항을 만족시키는 능력을 갖추고 있는 소프트웨어의 측정 가능한 기능 및 특성 소프트웨어 품질 설계 품질 설계자가 한 품목을 위해 규정한 특성 일치 품질 설계 내용들이 개발 과정에서 지켜지는 정도 품질 관리(Quality Control) 주어진 요구 사항에 맞는 소프트웨어를 개발하기 위해 소프트웨어 개발의 전 과정 동안에 이루어지는 모든 활동과 그 활동의 결과로 생산되는 산출물에 대한 품질을 통제하고, 보증하기 위한 작업 품질 표준(목표) 명확하게 정의된 소프트웨어의 특성을 의미하며, 소프트웨어의 품질을 평가하는 기준 항목으로 사용됨 품질 표준의 분류 품질 표준 의미 정확성 (Correctness) 사용자의 요구 기능을 충족시키는 정도 신뢰성 (.. 2021. 11. 15. 검사 검사 소프트웨어 품질 보증 활동의 하나로, 소프트웨어에 대한 요구사항의 만족도 및 예상 결과와 실제 결과의 차이점을 여러 방법을 사용하여 검사하고, 평가하는 일련으; 과정을 의미한다. 소프트웨어 품질을 평가하는 작업이며, 분석이나 설계, 코딩 결과를 최종적으로 점검하는 과정이다. 오류를 발견하기 위해 프로그램이나 시스템을 수행하는 과정이다. 검사의 목적은 소프트웨어를 구성하는 요소들이 잘 조화를 이루며 정상적으로 동작하고 성능이 요구에 맞다는 것을 보장하기 위해서이다. 검사의 목적을 달성하기 위한 규칙 Glen Myers은 검사의 목적을 달성하기 위해 다음과 같은 규칙을 제시하였다. 오류를 찾기 위해 프로그램을 실행시키는 절차를 검사하고한다. 오류 발견 확률을 높이기 위해 휼륭한 검사 사례(test ca.. 2021. 11. 9. 형상 관리 형상관리(SCM : Software Configuration Management) 소프트웨어의 개발과정에서 소프트웨어 변경 사항을 관리하기 위해 개발된 일련의 활동 소프트웨어 변경의 원인을 알아내고 제어하며, 적절히 변경되고 있는지 확인하여 해당 담당자에게 통보하는 작업 소프트웨어 개발의 전 단계에 적용되는 활동으로, 유지보수 단계에서 수행됨 소프트웨어 개발의 전체 비용을 줄이고, 개발 과정의 여러 방해 요인이 최소화되도록 보증하는 것을 목적으로 함 형상 : 소프트웨어 개발단계의 과정에서 만들어지는 프로그램, 프로그램을 설명하는 문서, 데이터 등을 통칭하는 말 소프트웨어 형상 항목 시스템 명세서 소프트웨어 프로젝트 계획서 소프트웨어 요구 사항 명세와 실행 가능한 프로토타입 예비 사용자 메뉴얼 설계 설명서.. 2021. 11. 9. 구현 단계 구현단계 설계단계에서 생성된 명세서를 컴퓨터가 알 수 있는 모습으로 변환하는 과정 프로그래밍 또는 코딩 단계라고도 함 각 모듈을 특정 프로그래밍 언어를 이용하여 원시 코드로 작성하고, 문서화하는 작업 설계를 철저히 반영시키고, 원시 코드를 간단하게 작성하며, 디버깅 및 변경, 검사가 용이하도록 해야함 사용할 프로그래밍 언어와 코딩 스타일 등을 결정해야 함 프로그래밍 언어 컴퓨터 시스템을 작동시키는 SW를 작성하기 위한 언어 저급 언어 고급 언어 하드웨어가 관련된 직접 제어가 가능한 언어 - 어셈블리어 하드웨어 관련 지식없이도 프로그램 작성이 가능한 언어 - 파이썬, html 등 중간에는 c언어가 있을 수 있다! c언어는 하드웨어를 제어할 수 있기 때문이다. 제 1세대 언어(저급언어) 기계어, 어셈블리어 .. 2021. 11. 9. 객체지향 구현 객체지향 구현 설계단계에서 생성된 설계모델과 명세서를 근거로 하여 코딩하는 단계 객체지향 프로그래밍을 이용하면 용이하게 구현할 수 있음 객체는 순차적(sequentially)으로 또는 동시적(concurrently)으로 구현될수 있음 객체지향 프로그래밍(OOP : Object Oriented Programming) 새로운 개념의 모듈 단위, 즉 객체라는 단위를 중심으로 하여 프로그램을 개발하는 기법 객체라는 단쉬를 이용하여 현실세계와 가까운 방식으로 프로그래밍함 현실 세계에 가까운 방식이므로, 이해하기 쉽고, 조작하기 쉬운 프로그램을 개발할 수 있음 유지보수가 쉽고, 재사용 가능한 프로그램을 만들 수 있음 이미 개발된 프로그램을 이용해 빠르게 확장된 프로그램을 개발할 수 있음 개표적인 객체지향 프로그래밍.. 2021. 11. 8. 객체지향 설계 객체지향 분석(OOA)을 사용하서 생성한 여러 가지 분석 모델을 설계 모델로 변환하는 작업으로, 시스템 설계와 객체 설계를 수행함. 최근 소프트웨어 제품의 전형적인 타입인 사용자 중심, 대화식 프로그램의 개발에 적합함 가장 중요한 문제 : 시스템을 구성하는 객체와 속성, 연산의 인식 설계 개념 추상화 정보은닉 기능 독립성 모듈화 - 가장 중요한 개념!! 상속성 일반적인 객체지향 설계단계의 순서 문제 정의 요구 명세화 객체 연산자 정의 객체 인터페이스 결정 객체 구현 1. 럼바우의 객체지향 설계 시스템 설계 전체적인 시스템 구조를 설계하는 것으로, 분석단계의 분석 모델을 서브시스템으로 분할하고, 시스템의 계층을 정의하며 분할 과정 중에서 성능의 최적 방안, 문제 해결 전략, 자원 분해 등을 확정하는 것 상.. 2021. 11. 8. 객체지향 기법의 생명주기 객체지향 분석의 개념을 설명 객체지향 설계, 구현, 테스트에 대해 설명 UML의 개념과 특징을 설명 SW구현 및 프로그래밍 언어에 대해 설명 SW형상 관리에 대해 설명 객체지향 기법을 사용하는 SW개발 과정의 가장 큰 특징 각 과정에서 사용되는 객체, 클래스, 메소드, 속성 등이 동일한 개념으로 사용됨 장점 개발 전 과정에 걸챠 동일한 방법론과 표현 기법이 적용됨 - 개발 과정 사이에서 같은 용어와 개념을 사용하여 분석, 설계, 구현 단계 사이의 전환이 쉬우므로 각 과정이 명확하게 순차적으로 이루어져 있지는 않다. 객체지향 기법의 생명주기 1. 객체지향 분석의 개념 객체지향 분석(OOA : Object Oriented Analysis) 사용자의 요구사항을 분석하여 요구된 문제와 관련된 모든 클래스(객체).. 2021. 11. 8. 객체지향의 원리 1. 캡슐화 캡슐화 (encapsulation) 캡슐화된 객체의 세부 내용이 외부에 은폐되어 변경이 발생해도 오류의 파급효과가 적음 캡슐퐈된 객체들은 재사용이 용이함 인터페이스가 단순해지고, 객체간의 결합도가 낮아짐 객체를 캡슐화하여 what만 보여주고, how는 감춤 객체를 작성할 때 숨겨야하는 정보외 정보를 구분하여 작성함 객체의 사용자는 기능만 알고 사용하여, 어떻게 처리되는지는 은폐된다. (Infomation hiding) 장점 객체에 포함된 정보의 손상과 오용을 막을 수 있다. 객체 조작 방법이 바뀌어도 사용방법은 바뀌지 않는다 데이터가 바뀌어도 다른 객체에 영향을 주지않아 독립성이 유지된다. 처리된 결과만 사용하므로 객체의 이식성이 좋다. 객체의 부품화 할 수 있어 새로운 시스템의 구성에 부품.. 2021. 11. 1. 이전 1 2 다음 728x90 반응형 LIST