본문 바로가기
728x90
반응형

Software Engineering13

Architecture patterns 1. Layered architecture This pattern separates a system's components into distinct layers, typically the presentation layer, business logic layer, and data access layer. For instance, we often see the Model-View-Presenter(MVP) pattern in user interface design. It is a specialized form of layered architecture. The primary goal of layered architecture is to promote separation so changes in one lay.. 2024. 4. 18.
객체 지향 vs 절차 지향 객체지향 기법이란? 기계적인 부품들을 조립하여 제품을 만들듯이 소프트웨어를 개발할 때에도 객체들을 조립해서 작성할 수 있도록 하는 기법이다. 장점으로는? 소프트웨어의 재사용 및 확장이 용이 유지보수가 쉽다. 구성요소로는? 객체(Object), 클래스(Class), 메시지(Message)가 있다. 객체란? 실제로 존재하는 구체적인 대상 또는 시스템 객체는 다른 객체와 구분되며 유일하다. 객체는 상태 (Attribute)와 행위(Method)를 가진다. 데이터와 데이터를 처리하는 함수를 묶어 놓은 하나의 소프트웨어 모듈이다. 데이터는 객체가 가지고 있는 정보로 속성이나 상태 분류 등을 나타낸다. 속성으로는 상태, 변수, 상수, 자료구조라고도 한다. 함수는 객체가 수행하는 기능으로 객체가 갖는 데이터를 처리하.. 2019. 4. 25.
객체 지향 프로그래밍의 5원칙(SOLID) 객체 지향 설계를 위해서는 5가지 원칙이 따른다. (앞글자를 따서 SOLID라고 한다) S - SRP(Single Responsibility Principle) 단일 책임 원칙 객체는 오직 하나의 책임을 가져야 한다. (객체는 오직 하나의 변경의 이유만을 가져야 한다.) 다시 말하면 클래스를 수정할 필요가 오직 하나여야한다는 뜻. 예를 들어, 사칙연산 함수를 가지고 있는 계산 클래스가 있다. 이 상태의 계산 클래스는 오직 사칙 연산 기능만을 책임진다. 만일 프로그램이 대대적으로 공사를 들어가게 되더라도 계산 클래스가 수정될만한 사유는 누가 봐도 사칙연산 함수와 관련된 문제 뿐이다. 이처럼 단일 책임 원칙은 클래스의 목적을 명확히 함으로서 구조가 난잡해지거나 수정사항이 불필요하게 넓게 퍼지는 것을 예방하고.. 2019. 4. 24.
Architectural Views 아키텍처 구조 - UP(Unified Process) 4+1뷰 아키텍처 모델 4 + 1 뷰(Philippe Kruchten) 논리뷰: 구성요소는 핵심 개념 프로세스뷰: 기능의 동시성과 분산을 표현 구현뷰: 소프트웨어 모듈, 라이브러리, 서브시스템의 구조를 표현 배포뷰: 구성 요소를 물리적인 노드로 매핑 - 논리 뷰(logical view) 시스템의 기능적인 요구사항 시스템이 최종사용자를 위해 해야만 하는 것을 나타냄 - 구현 뷰(implementation view) 개발 환경 안에서 정적인 소프트웨어 모듈의 구성을 보여줌 개발자 관점에서 소프트웨어의 구현과 관리적인 측면을 컴포넌트 다이어그램으로 표현 - 프로세스 뷰(process view) 런타임 시의 시스템의 동시적인 면 테스크, 쓰레드, 프로.. 2019. 4. 20.
Architectural Design 소프트웨어아키텍처란? 프로그램이나 컴퓨팅 시스템의 소프트웨어아키텍처는 소프트웨어 구성요소와 그들이 지니고 있는 특성 중에 외부에 드러나는 특성, 그리고 구성요소들의 관계를 표현하는 시스템의 구조나 구조체이다. 소프트웨어아키텍처는 소프트웨어 시스템의 구조(structure)를 정의하며 표현한다. 소프트웨어아키텍처는 상위 레벨의 추상화를 통해서 시스템의 전반적인 모습을 보여주는 것이다. 소프트웨어시스템은 여러 소프트웨어 요소 또는 컴포넌트로 구성된다. 소프트웨어 요소 또는 컴포넌트는 외부로 드러나는 속성 즉, 인터페이스를 갖는다. 소프트웨어아키텍처는 왜 중요한가? 1. 이해당사자 사이의 의사 소통 (이해당사자(고객)들이 동일하게 이해해야 되서 의사소통이 중요) 2. 초기 설계 결정 사항 3. 재사용할 수 있.. 2019. 4. 20.
System Modeling Context Models 시스템 명세 초기단계 - 개발되는 시스템의 내용 및 시스템의 경계를 정함 - 시스템 이해당사자들과 함께 작업 - 시스템 비용, 요구사항 및 설계를 이해하는데 필요한 시간을 제한하기 위하여 빠른 결정 필요 비즈니스 프로세스 모델 - 특정 소프트웨어 시스템이 사용되는 자동화된 프로세스들과 사람들을 설명 - Activity Diagram 프로세스의 액티비티들과 한 액티비티에서 다른 액티비티로 제어의 흐름을 보여줌 Interaction Models Use case modeling - 시스템과 외부 에이전트(사용자나 다른 시스템들)와의 상호작용을 모델링 Sequence diagram - 액터와 시스템의 객체들 간의 상호작용과 객체들 간의 상호작용을 모델링 - 외부 에이전트도 상호작용에 .. 2019. 4. 20.
Requirements Engineering 시스템 요구사항 시스템이 제공해야 하는 서비스들과 그 서비스들이 동작에 관한 제약을 기술한 것 요구공학(RE) 서비스와 제약사항들을 찾고, 분석하고, 문서화하며 점검하는 프로세스 요구사항 사용자 요구사항 시스템이 사용자에게 제공해야 할 서비스와 동작하면서 준수해야 할 제약사항들에 대해 자연어와 다이어그램으로 기록한 문장 시스템 요구사항 소프트웨어 시스템의 기능, 서비스와 동작 중 제약사항에 대한 보다 상세한 설명 Fuctional and Non-Functional Requirements 기능적 요구사항 시스템이 제공해야 하는 서비스와 특정 입력에 대해 시스템이 반응하는 방식, 그리고 특정 상황에 시스템이 동작해야 하는 방식을 기술한 것 기능적 요구사항은 시스템이 무엇을 해야 하는지를 설명 기능적 요구사항.. 2019. 4. 20.
728x90
반응형