본문 바로가기
반응형

전체 글144

시스템 모델링(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.
요구사항 공학(Requirements Engineering) 프로세스 요구사항 공학 프로세스 (Requirements Engineering Processes)  소프트웨어 개발에서 요구사항 공학(Requirements Engineering, RE)은 시스템이 제공해야 할 서비스와 그 운영 및 개발에 대한 제약 조건을 정의하고 관리하는 중요한 과정입니다. RE 프로세스는 애플리케이션 도메인, 적용되는 소프트웨어 개발 프로세스, 요구사항을 개발하는 사람이나 조직에 따라 다양하게 변형될 수 있습니다. 그러나 모든 RE 프로세스에는 공통적으로 네 가지 주요 활동이 포함됩니다:요구사항 도출 및 분석 (Requirements Elicitation and Analysis)요구사항 명세 (Requirements Specification)요구사항 검증 (Requirements Valida.. 2024. 10. 11.
요구사항 공학(Requirements Engineering) 특성과 유형 요구사항 공학 (Requirements Engineering)요구사항 공학은 고객이 시스템에서 필요로 하는 서비스와 시스템이 작동하거나 개발되는 과정에서의 제약을 정의하는 과정입니다. 이 과정에서 생성된 시스템 요구사항은 시스템 서비스와 제약 사항에 대한 설명입니다.요구사항(Requirements):서비스나 시스템 제약에 대한 추상적인 고수준 설명부터 수학적으로 정밀한 기능 명세까지 다양할 수 있습니다.서비스의 설명은 기능적 요구사항(Functional Requirements, FR)으로 나타나고, 시스템 제약은 비기능적 요구사항(Non-Functional Requirements, NFR)으로 표현됩니다. ex) 카메라 셔터 소리, 보안문제 등등요구사항의 유형사용자 요구사항(User Requirement.. 2024. 10. 8.
애자일 소프트웨어 개발 (Agile Software Development) 방법론(2) - PM, 스크럼(Scrum) 애자일 방법론 (Agile Methods) 애자일 방법론의 특징코드에 중점: 애자일 방법론은 설계(Design)보다는 실제 코드에 중점을 둡니다. 이는 실질적으로 작동하는 소프트웨어를 빠르게 개발하는 데 초점을 맞추기 위함입니다.반복적 접근 (Iterative Approach): 소프트웨어 개발을 여러 번의 반복 주기로 나누어 진행합니다. 각 반복 주기마다 소프트웨어의 일부 기능을 개발하고, 이를 점진적으로 완성해 나갑니다.신속한 작동 소프트웨어 전달 및 진화: 작동하는 소프트웨어를 빠르게 제공하고, 이를 바탕으로 변화하는 요구사항에 맞춰 지속적으로 발전시킵니다.애자일 방법론의 두 가지 유형애자일 개발 기법 (Agile Development Techniques): 실제 소프트웨어 개발 과정에서 사용하는 .. 2024. 10. 8.
애자일 소프트웨어 개발 (Agile Software Development) 방법론(1) - 기법 애자일 소프트웨어 개발 (Agile Software Development)신속한 소프트웨어 개발 (Rapid Software Development)신속한 개발과 전달의 중요성: 현재 소프트웨어 시스템에서 가장 중요한 요구사항 중 하나는 빠른 개발과 신속한 전달입니다. 이는 소프트웨어가 변화하는 비즈니스 요구사항을 신속하게 반영해야 하기 때문입니다.비즈니스 요구사항의 변화 반영: 비즈니스 환경은 빠르게 변할 수 있으며, 소프트웨어는 이러한 변화를 즉각적으로 반영할 수 있어야 합니다.계획 중심 개발의 한계: 전통적인 계획 중심 개발 방법론(예: 워터폴 모델)은 이러한 빠른 변화에 효과적으로 대응하지 못합니다. 계획을 세우고 그에 따라 개발을 진행하는 방식은 유연성이 부족하여 비즈니스 요구사항의 변화에 적응하.. 2024. 10. 8.
소프트웨어 개발 프로세스 개선 활동 (The SEI CMMi) Process Improvement (프로세스 개선)는 소프트웨어 개발 프로세스를 이해하고 개발 프로세스를 변경하여 제품의 품질을 높이거나 비용과 개발 시간을 줄이는 과정을 의미합니다. 이 과정은 조직이 소프트웨어의 품질을 향상시키고 비용을 절감하기 위해 매우 중요한 역할을 합니다.1. 프로세스 개선의 목표품질 향상: 소프트웨어의 품질을 높이는 것은 고객의 요구를 충족하고 신뢰성을 증가시키는 데 중요한 요소입니다.비용 절감: 효율적인 프로세스 개선을 통해 불필요한 비용을 줄이고, 개발 기간을 단축할 수 있습니다.2. 프로세스 개선의 활동프로세스 개선은 다음과 같은 주요 활동으로 구성됩니다: 1. Analysis (분석)기존 프로세스의 상태를 평가하고, 개선이 필요한 부분을 식별하는 과정입니다.데이터 수집.. 2024. 10. 7.
소프트웨어 개발 프로세스 4가지 기본 활동 소프트웨어 프로세스들의 4가지 활동 (Process Activities)Process Activities는 소프트웨어 개발에서 필수적으로 수행해야 하는 4가지 기본 활동으로 구성됩니다. 이 활동들은 소프트웨어 개발 생명 주기(SDLC) 전반에 걸쳐 필수적인 단계이며, 각 개발 프로세스에 따라 다르게 조직되고 관리됩니다.1. 명세 (Specification)정의: 시스템이 수행해야 할 기능과 요구사항을 명확히 정의하는 단계로 요구 공학이 포함됩니다.목적: 고객의 요구를 정확히 이해하고, 개발할 시스템이 어떤 기능을 제공해야 하는지 명확히 합니다.활동 예시: 요구사항 수집, 요구사항 분석, 요구사항 문서화 2. 설계 및 구현 (Design & Implementation)정의: 시스템의 구조를 설계하고, 실제.. 2024. 10. 7.
소프트웨어 개발 프로세스 모델의 종류와 단계 소프트웨어 프로세스는 소프트웨어 시스템을 개발하기 위해 필요한 일련의 구조화된 활동들을 의미합니다. 이러한 프로세스는 소프트웨어 개발의 효율성과 품질을 높이기 위해 체계적으로 관리되고 수행됩니다. 아래에서 소프트웨어 프로세스의 주요 구성 요소와 다양한 소프트웨어 프로세스 모델에 대해 자세히 설명하겠습니다. 소프트웨어 프로세스들의 기본 4가지 활동 1. 명세 (Specification)정의: 시스템이 수행해야 할 기능과 요구사항을 명확히 정의하는 단계입니다.목적: 고객의 요구를 정확히 이해하고, 개발할 시스템이 어떤 기능을 제공해야 하는지 명확히 합니다.활동 예시: 요구사항 수집, 요구사항 분석, 요구사항 문서화 2. 설계 및 구현 (Design & Implementation)정의: 시스템의 구조를 설계하.. 2024. 10. 6.
OOAD 객체지향 분석 및 설계 프로세스 객체 지향 프로그래밍 (OOP)Object-Oriented Programming (OOP), 다른 말로 객체 지향 프로그래밍은 데이터랑 코드를 담을 수 있는 객체(Objects)라는 개념을 기반으로한 프로그래밍의 패러다임의 일종입니다. 객체 지향 개발은 문제 해결 domain에서 객체(Objects)들의 상호작용(interaction)을 통해서 해결하는것을 말합니다.OOP는 구조적이고 재사용성이 좋고 수정과 유지보수가 편리한 소프트웨어 프로그램을 만드는데 좋습니다.OOP의 특성OOP의 특성은 아래와 같습니다Encapsulation : 캡슐화로 내부 필드와 동작을 접근하지 못하도록해서 프로그램의 무결성을 보장합니다Abstraction : 개념을 추출해서 정의해서 추상화를 합니다.Polymorphism : .. 2024. 10. 4.