본문 바로가기

전체 글20

[소프트웨어 공학] 아키텍처의 표현 아키텍처의 표현아직 존재하지 않는 기술이나 상품을 홍보하기 위한 것으로 마키텍처(maketecture)라는 용어가 있다. 시스템의 구조나 동작을 한 페이지로 간략히 보여주기 위하여 작성된 것을 말합니다. 마키텍처는 시스템을 설계하고 구축하고 검토하는 동안 이해 당사자들이 토론할 때 유용하게 쓰이는 도구입니다. 문제를 이해하고 설명하고 더 깊은 분석에 들어가기 전에 출발점으로 이용할 수 있기 때문입니다.완벽하게 만들어진 아키텍처는 시스템의 추상적인 요약이므로 매우 유용합니다. 대부분의 아키텍처는 개발팀과 관계자들이 이해하기 쉽도록 추상화 합니다. 추상(abstract)의 의미는 불필요한 자세한 것을 생략하고 가장 중요한 문제에 관심을 집중시킨다는 것입니다. 이렇게 표현하려면 아키텍처에서 컴포넌트를 블랙박스.. 2024. 5. 25.
[소프트웨어 공학]아키텍처 설계란? 아키텍처 설계란?소프트웨어를 위한 아키텍처 설계는 빌딩의 아키텍처 설계와 유사합니다. 빌딩은 방과 여러 서브시스템, 예를 들면 난방, 에어컨, 전기, 가스, 수도 등의 배관을 포함하고 있습니다. 각 서브시스템은 나름대로의 목적과 빌딩전체의 기능 및 용도에 대하여 기여하고 있습니다. 빌딩의 아키텍처 설계는 주요 컴포넌트와 서브시스템을 강조하고 어떻게 서로 연관되어 있고 작동하는지 알려줍니다.아키텍처 설계의 정의먼저 아키텍처와 아키텍처 설계에 대한 정의는 다음과 같다. 정의 아키텍처 설계소프트웨어 아키텍처란 주요 컴포넌트 사이의 인터페이스와 인터랙션을 포함한 시스템 구조의 설계 유형을 말합니다. 아키텍처 설계는 개발 중인 시스템에 대한 아키텍처를 정하는 의사 결정 과정입니다. 아키텍처를 소프트웨어 구조의 유.. 2024. 5. 25.
[소프트웨어 공학] 개발 아키텍처 소개 개발 아키텍처 소개소프트웨어가 복잡해지면서 알고리즘과 자료 구조 수준을 넘어서 소프트웨어의 구조, 즉 아키텍처가 중요한 문제가 되었습니다. 아키텍처는 애플리케이션을 어떻게 분할하고 분할된 컴포넌트에 어떤 기능을 할당하며, 컴포넌트 사이의 커뮤니케이션 방법, 컴포넌트의 물리적 배치 등 설계안을 결정하는 작업입니다. 아키텍처는 시스템의 타입에 따라 다르며 많이 사용되는 유 형(스타일)이 있습니다. 설계 작업은 문서로 잘 정리되어야 하며 이는 구현을 위한 도면이 됩니다.요구사항 분석 작업을 통하여 무엇을 개발할 것인가를 결정한 후에는 도메인 영역의 문제에 집중하여 모델링 할 수 있습니다. 설계 단계로 넘어가면서 솔루션 영역의 과제들, 예를 들면 소프트웨어의 내부 구조를 어떻게 할 것인지, 자료와 사용자 인터페.. 2024. 5. 25.
[소프트웨어 공학] 객체와 속성, 캡슐화, 연관 객체와 속성객체(object)란 필요한 자료 구조와 이에 수행되는 함수들을 가진 하나의 독립된 존재입니다. 각 객체가 자료 구조를 갖는다는 것은 각 객체가 어떤 속성(attribute)을 가지고 있다는 것을 의미합니다. 예를 들어, 그래픽 프로그램에서 하나의 점을 객체로 본다면 수평과 수직 위치가 자료이면서 그 값이 객체의 속성을 의미합니다. 각 객체가 적용될 수 있는 연산(operation)을 갖는다는 것은 각 객체가 어떤 연산을 수행할 수 있는 능력(behavior)을 갖추고 있다는 것을 의미합니다.객체는 하나의 변수나 자료 구조와는 구별됩니다. 예를 들어, 'int X;' 라고 프로그램에서 정의된 X는 하나의 정수를 보관하는 장소를 가질 뿐, X 자체가 어떤 연산을 수행할 수는 없습니다.모델링 할 .. 2024. 5. 24.
[소프트웨어 공학] 객체 지향 개념과 장점 그리고 클래스와 객체 객체 지향 개념최근 소프트웨어 개발에 객체지향 기술이 많이 보급되어 사용되어지고 있습니다.새로 시스템을 개발하는 경우 거의 객체지향 기술과 언어가 사용되고 있는데 그 이유는 객체지향 기술이 여러 가지 장점을 가지고 있기 때문입니다.객체지향의 장점먼저 객체 모델은 문제를 더 자연스럽게 표현할 수 있기 때문에 개발자가 설계를 작성하고 이해하기가 쉽습니다. 또한 객체지향 개념은 자료와 함수를 함께 추상화하여 프로그램의 기본 단위로 묶어 줌으로써 변화에 영향을 적게 받습니다.함수 중심의 절차적 소프트웨어는 그 기본 기능이 이미 개발되어 있음에도 불구하고 처음부터 새로 작성되는 경우가 많습니다. 약간의 차이를 예를 들면 자료 구조가 같더라도 타입이 다르거나, 같은 기능을 하는 함수라도 매개 변수 타입의 차이 때문.. 2024. 5. 24.
[소프트웨어 공학] 요구사항 추출 방법 2 브레인스토밍 회의브레인스토밍은 여러 명으로부터 정보를 얻는 효과적인 방법입니다. 일반적으로는 그룹으로 테이블에 앉아 아이디어를 내는 목적으로 특정 토픽에 대하여 토론합니다. 하지만 인터뷰와 같이 브레인스토밍 과정에 체계를 더하면 더 많은 정보를 추출하는데 도움이 됩니다. 훈련된 요원이 주재하여 브레인스토밍 과정을 정돈하는 것이 성공하는 키 중의 하나입니다.브레인스토밍 과정을 구성하고 효과적으로 수행하는 방법은 다음과 같다.  관련자 모두가 참여하는 회의를 소집한다. 효과적인 브레인스토밍 작업은 5명 내지 30명이 참여하여야 한다.브레인스토밍 회의를 운영하고 리드할 수 있는 경험이 많은 사람을 회의 주재자로 선정한다. 주재자는 원할 경우 토의에 참여할 수도 있다.테이블에 참석자를 배석시키고 작업할 종이를 .. 2024. 5. 24.