본문 바로가기
728x90

Software Engineering13

소프트웨어 모듈 결합도와 응집도 결합도와 응집도는 소프트웨어 설계의 핵심 원칙으로, 소프트웨어의 품질, 유지 보수성, 확장성 및 재사용성에 중요한 영향을 미칩니다. 이 두 가지 요소가 올바르게 관리되면 소프트웨어 시스템은 더 효율적이고 신뢰성 있게 작동할 수 있습니다. 결합도의 영향: 낮은 결합도: 낮은 결합도를 가진 모듈은 다른 모듈과의 상호 의존성이 낮기 때문에 독립적으로 개발, 테스트 및 유지 보수할 수 있습니다. 이는 소프트웨어 시스템을 변경하기 쉽게 만들어 새로운 요구 사항을 쉽게 수용할 수 있게 합니다. 높은 결합도: 높은 결합도는 모듈 간의 강한 의존성을 나타내며, 하나의 모듈을 변경할 때 다른 모듈에도 영향을 미칩니다. 이로 인해 버그를 수정하거나 새로운 기능을 추가하는 것이 어렵고 위험해집니다. 응집도의 영향: 높은 응.. 2023. 10. 20.
소프트웨어 공학(Software Engineering) 소프트웨어 공학은 소프트웨어의 개발, 운영, 유지 관리에 관한 체계적인 접근방법을 연구하는 학문입니다. 이는 공학의 원칙을 소프트웨어의 생명주기 전반에 적용하는 것을 포함하며, 필요한 소프트웨어를 구축하는 데 필요한 표준화된 방법을 제공합니다. 소프트웨어 공학은 아래와 같은 주요 분야를 포함합니다: 요구사항 분석: 소프트웨어가 해결해야 하는 문제와 요구사항을 명확히 이해하는 것입니다. 설계: 소프트웨어의 구조와 동작을 계획하고 설계하는 것입니다. 구현: 설계된 소프트웨어를 실제로 코딩하여 개발하는 것입니다. 테스팅: 소프트웨어가 올바르게 작동하고 요구사항을 충족하는지 확인하는 것입니다. 유지 관리: 개발된 소프트웨어를 지속적으로 업데이트하고 개선하는 것입니다. 프로젝트 관리: 프로젝트의 일정, 비용, 품.. 2023. 5. 19.
AOP(Aspect Oriented Programming) AOP(Aspect Oriented Programming)은 컴퓨터 프로그래밍의 한 패러다임으로, 광범위한 모듈(Aspect)을 캡슐화하고 프로그램의 다른 부분으로부터 분리하는 데 사용됩니다. 이는 프로그램이 직면하는 관심사의 분리(Separation of Concerns)를 실현하며, 코드의 모듈성을 증가시킵니다. "Aspect"는 여러 클래스나 함수를 거치는 공통 기능 또는 관심사를 나타냅니다. 로깅, 트랜잭션 관리, 보안 등이 그 예시로, 이들은 시스템의 여러 부분에서 반복적으로 등장하는데, 이러한 코드의 중복을 줄이고, 각 부분의 책임을 명확하게 하기 위해 AOP가 사용됩니다. AOP는 다음과 같은 주요 개념을 포함합니다: Aspect: 프로그램의 여러 부분에서 걸쳐 공통으로 사용되는 기능을 캡슐.. 2023. 5. 11.
RUP(Rational Unified Process) RUP(Rational Unified Process)는 반복적이고 진행형(incremental)인 소프트웨어 개발 프로세스로, 요구 사항, 분석, 설계, 구현, 테스트 및 배포와 같은 전체 소프트웨어 개발 생명주기를 관리합니다. IBM에서 개발한 RUP은 객체 지향적인 접근 방식을 사용하며, UML(Unified Modeling Language)을 모델링 언어로 사용합니다. 특징: 1. 반복적이고 진행형 프로세스: RUP은 프로젝트를 여러 반복(iteration)으로 나누어 수행하며, 각 반복에서는 개발 과정 전체를 작은 단위로 수행합니다. 이로 인해 프로젝트 초기에 발견되지 않은 문제나 요구 사항 변경에 더 쉽게 대응할 수 있습니다. 2. 위험 중심 접근: RUP은 프로젝트의 초기 단계에서 가장 중요한.. 2023. 5. 9.
UML(Unified Modeling Language) Unified Modeling Language (UML)은 소프트웨어 공학에서 시스템의 구조와 동작을 시각적으로 표현하기 위한 표준화된 모델링 언어입니다. UML은 시스템의 다양한 측면을 나타내기 위해 다양한 다이어그램 유형을 제공하며, 이를 통해 소프트웨어 개발자들이 소프트웨어 설계, 분석 및 문서화에 도움을 받습니다. UML은 1997년 Object Management Group (OMG)에 의해 표준화되었습니다. 역사 UML은 1990년대 중반부터 발전하였습니다. 다양한 시스템 모델링 언어와 방법론들이 사용되었지만, 통합된 표준이 없어 효율성과 상호 운용성의 문제가 있었습니다. 이러한 배경에서, 그래디 부치(Grady Booch), 제임스 럼바(James Rumbaugh), 이바코브 제이콥슨(Iva.. 2023. 5. 9.
Daily Scrum과 Standup Meeting: Agile에서의 차이점, 유사점 Daily Scrum과 Standup Meeting은 애자일 개발 프로세스에서 자주 사용되는 두 가지 미팅 방식입니다. 이 두 방식의 차이점, 유사점, 비교, 규칙, 의제, 그리고 질문들에 대해 알아봅니다. - Daily Scrum: Scrum 프레임워크에서 사용되는 이 미팅은 매일 진행되며, 팀원들이 프로젝트의 현재 상황, 진행 중인 작업, 그리고 잠재적인 문제를 빠르게 공유합니다. 이 미팅은 일반적으로 15분 이내로 진행되어야 하며, Scrum Master가 주도합니다. - Standup Meeting: 애자일 개발 프로세스에서 사용되는 이 미팅은 팀원들이 서서 진행하여 빠르게 상태를 공유하고, 미팅 시간을 짧게 유지합니다. 이 미팅은 일반적으로 매일 아침에 진행되며, 각 팀원은 진행 중인 작업, 완.. 2023. 4. 25.
728x90