본문 바로가기
반응형

소웨공15

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.
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.
객체 지향 설계 원칙 (SOLID & GRASP)과 소프트웨어 아키텍쳐 설계 가이드라인 목차1. 소프트웨어 아키텍쳐 설계 가이드라인 & 원칙2. 객체 지향(OO) 설계 원칙SOLID OO 설계 원칙GRASP OO 설계 원칙소프트웨어 아키텍쳐 설계 가이드라인소프트웨어 아키텍쳐를 설계(Design)할때 놓치기 쉬운 부분은 Analysis 먼저하고 아키텍쳐 Design 해야된다는 것입니다. 아키텍쳐 분석 -> 추상적 아키텍처 설계 -> 아키텍쳐 설계위와 같이 분석과 추상 아키텍쳐 설계를 우선 거치고 설계해야됩니다.1. 아키텍쳐 분석어떻게 할지 생각하기 전에 무엇을 할지 생각해보는게 중요합니다.아키텍쳐와 상세적인 설계전에 기능적 요구사항(FR)과 비기능적 요구사항(NFR)이 정의되고 확인(verify), 인증(Validated)되어야합니다.(요구사항의 verification은 SRS 명세서와 일치.. 2024. 10. 11.