본문 바로가기
반응형

CS 지식/소프트웨어 공학16

Implementation Issues(소프트웨어 구현 주요 이슈들)과 오픈 소스 Implementation IssuesImplementation 과정에서 자주 다뤄지지 않는 문제들에 대해 설명합니다.Reuse (재사용)대부분의 현대 소프트웨어는 기존의 구성 요소나 시스템을 재사용하여 만들어집니다. 소프트웨어를 개발할 때는 가능한 한 기존의 코드를 활용해야 합니다. 이는 개발 속도와 비용 절감을 위한 중요한 전략입니다.Configuration Management (구성 관리)소프트웨어 개발 중 여러 버전의 소프트웨어 구성 요소를 관리해야 하며, 이를 통해 버전 관리 시스템에서 각 구성 요소의 다양한 버전을 추적합니다. 또한 여러 프로그래머들이 동시에 개발하는 경우 이들을 조정하고 관리해야 합니다.Host-Target Development (호스트-타겟 개발)생산 소프트웨어는 보통 개발.. 2024. 12. 2.
Software Evolution(진화)와 유지보수, 리팩토링, 리엔지니어링 Software ChangeSoftware change is inevitable: 소프트웨어는 계속해서 변화를 겪어야 한다. 소프트웨어 사용 중에 새로운 요구사항이 생기고, 비즈니스 환경이 변하며, 에러를 수정해야 하고, 새로운 컴퓨터나 장비가 시스템에 추가될 수 있다. 또한 시스템의 성능이나 신뢰성을 개선할 필요가 있을 수 있다.Key problem for organizations: 모든 조직에서 중요한 문제는 기존 소프트웨어 시스템에 변경을 구현하고 관리하는 것이다. 대기업의 경우, 소프트웨어 예산의 대부분은 새로운 소프트웨어 개발보다는 기존 소프트웨어의 변경과 발전에 사용된다.A Spiral Model of Development and EvolutionSpiral model은 소프트웨어 개발 및 진.. 2024. 12. 1.
Software Testing(소프트웨어 테스팅)과 개발 테스팅 Program Testing구현 -> unit test -> low level design 이렇게 cycle이 반복된다.목적: 프로그램이 의도한 대로 동작하는지 확인하고, 프로그램을 실제로 사용하기 전에 결함을 발견하는 과정입니다.소프트웨어 테스트는 가상 데이터를 사용하여 프로그램을 실행하고, 테스트 실행 결과에서 오류, 이상 현상, 또는 비기능적 특성에 대한 정보를 확인합니다.테스트는 오류의 존재는 밝혀낼 수 있지만, 부재는 증명할 수 없습니다.위 뜻은 테스팅으론 아무리 열심히 해도 100% 에러를 찾지 못합니다. 오류가 없다고 '증명'하는것이 절대 아닙니다.테스트는 검증 및 검토 (V&V) 과정의 일부입니다. V&V 기법중 30%가 Testing이라고 볼수 있습니다.Two Types of Progra.. 2024. 12. 1.
Architectural Pattern(아키텍처 패턴)과 스타일 종류 Architectural Pattern/Style다양한 환경에서 시험되고 검증된 좋은 디자인 관행을 설명하는 스타일화된 설명사용될 때와 사용되지 않을 때에 대한 정보 포함예시: POSA 시리즈MVC (Model-View-Controller)LayeredRepositoryClient-ServerPipe & FilterA Taxonomy(분류) of Architecture StylesThe Model-View-Controller (MVC) Pattern시스템 데이터를 기준으로 프리젠테이션과 상호작용을 분리함시스템은 상호작용하는 세 가지 논리적 구성 요소로 구조화됨Model: 시스템 데이터와 그에 대한 연산 관리View: 데이터를 사용자에게 어떻게 표시할지 정의하고 관리Controller: 사용자 상호작용(예.. 2024. 12. 1.
Architectural Design (아키텍처 설계) 결정과 4+1 View Architectural Design (아키텍처 설계)정의 (Definition)Architectural Design은 소프트웨어 시스템을 어떻게 구성할지 이해하고, 시스템의 전체 구조를 설계하는 것을 목적으로 한다.요구사항 공학(Requirements Engineering)과 설계(Design) 사이의 중요한 연결 고리.시스템의 주요 구조적 구성 요소와 이들 간의 관계를 식별.아키텍처 모델(Architecture Model)은 시스템을 상호작용하는 컴포넌트 집합으로 조직화하는 방법을 설명.The Architecture of Packing Robot Control System아키텍처 overview Diagram(Top-down 정의)색칠된 박스는 시스템의 범위(Boundery)이다.Architectur.. 2024. 12. 1.
Model-Driven Engineering (모델 기반 엔지니어링, MDE, MDA) 의 개념과 활용 Model-Driven Engineering (모델 기반 엔지니어링, MDE)정의 (Definition)Model-Driven Engineering (MDE): 소프트웨어 개발 과정에서 모델을 개발의 주요 산출물로 간주하는 접근법.프로그램 코드는 모델을 기반으로 하드웨어/소프트웨어 플랫폼에서 자동으로 생성됨.특징 (Characteristics)프로그래밍 언어 및 플랫폼 세부사항에서 벗어남소프트웨어 엔지니어는 프로그래밍 언어나 실행 플랫폼의 세부사항에 신경 쓰지 않아도 됨.모델에 집중하여 더 높은 수준의 추상화를 지원.초기 개발 단계현재 MDE는 발전 초기 단계에 있으며, 광범위한 채택을 위해 개선이 필요.장점 (Advantages)추상화 수준 증가:시스템을 더 높은 수준의 추상적으로 다룰 수 있음.적응 .. 2024. 12. 1.
시스템 모델링(System Modeling)과 관점에 따른 모델 종류 시스템 모델링 (System Modeling)시스템 모델링은 시스템의 추상적인 모델을 개발하는 과정으로, 각 모델은 시스템의 다양한 관점이나 시각을 제시합니다. 이는 분석가들이 시스템의 기능을 이해하고, 고객과 효과적으로 소통하는 데 도움을 주며, 주로 통합 모델링 언어(UML, Unified Modeling Language)의 표기법을 기반으로 합니다.시스템 관점 (System Perspectives)시스템 모델링은 여러 가지 관점(View)을 통해 시스템을 다각도로 분석하고 설계합니다. 주요 관점은 다음과 같습니다:외부 관점 (External Perspective) - 블랙박스(밖에서 본다)정의: 시스템의 맥락이나 환경을 모델링합니다.목적: 시스템 외부에 있는 요소들과 시스템 간의 상호작용을 이해하고.. 2024. 10. 16.