본문 바로가기

정보과학/소프트웨어공학특론15

UML UML 소개 Visual Modeling with Rational Rose 2002 and UML 들어가며 UML은 소프트웨어를 보는 여러 관점들을 기술하기 위한 표현언어(Notation)입니다. 소프트웨어를 개발하는 당사자는 프로그래머 혹은 개발자이지만, 소프트웨어 개발에 참여하는 관련자들은 개발자 외에도 많은 사람들이 있습니다. 또한, 이들 사람들은 각자의 관심사가 다르므로, 소프트웨어를 생각하는 방법도 다릅니다. 따라서, 이러한 다양한 관점들을 여러 다이어그램 형태로 표현할 수 있도록 제안된 표준언어가 UML입니다. 1. UML의 역사 UML이 표준 언어로 정해지기 전에 많은 소프트웨어 기술 방법과 개발 방법론이 있었습니다. 대표적인 것으로는 OMT (Object Modeling Technique).. 2023. 11. 28.
온라인 경매 시스템 문제기술서 온라인 경매 시스템은 여러분들이 인터넷을 통해 흔히 접해볼 수 있는 E-Commerce 시스템 의 일종입니다. E-Commerce 시스템은 제품 및 서비스의 구매자와 공급자에게 가상 시장에 서 상행위가 이루어질 수 있도록 합니다. 개발하려는 온라인 경매 프로그램은 다음에 기술되는 사용자와 이해당사자들의 요구 를 만족시켜야 합니다.  판매자는 최대한 많은 잠재적 구매자들이 제품이나 서비스에 대해 경쟁 구매를 유 도할 수 있기를 기대한다.  구매자는 여러 다양한 물건들을 찾아볼 수 있고, 구매 시 지불 대금들을 잘 관리할 수 있길 바란다.  구매자와 판매자 모두 거래가 성사되기 전까지 익명으로 접근할 수 있기를 바란다.  경매 사이트의 오너는 구매자와 판매자들이 익명으로 자주 만날 수 있는 공간을 제.. 2023. 11. 28.
크리티컬 시스템 명세 및 개발 1. 소프트웨어 신뢰도 명세(Software reliability specification) 1) 개요 ① 하드웨어 신뢰도(Hardware reliability) □ 하드웨어 컴포넌트가 오동작할 확률은 얼마인가? □ 컴포넌트를 수리하는데 걸리는 시간은 얼마인가? ② 소프트웨어 신뢰도(Software reliability) □ 소프트웨어 컴포넌트가 얼마나 자주 잘못된 결과를 산출해 내는가? □ 소프트웨어는 닳지 않는다. 따라서 고장난 소프트웨어는 잘못된 결과를 만들어내고도 계속적으로 동작할 수 있다. ③ 오퍼레이터 신뢰도(Operator reliability) □ 오퍼레이터가 얼마나 자주 실수를 범하는가? 위의 3가지 고려사항은 서로 연관되어 있기 때문에 신뢰도는 개별 컴포넌트가 아닌 시스템 전체 수준에서.. 2023. 11. 28.
신뢰성 1. 크리티컬 시스템(Critical systems) 1) 신뢰성(Dependability) ■ 신뢰성의 4가지 주요 특성 ① 가용성(Availability): 주어진 시간에 시스템이 작동하고 유용한 서비스를 수행할 확률. ② 신뢰도(Reliability): 주어진 기간의 시간에 시스템이 사용자에 의해 기대되는 서비스를 정확히 수행할 확률. ③ 안전성(Safety): 얼마나 시스템이 사람 또는 환경에 피해를 발생시킬 수 있는지에 대한 판단. ④ 보안성(Security): 얼마나 시스템이 우발적인 또는 고의적인 침입(intrusion)에 저항할 수 있는지에 대한 판단(judgement) ■ 특징 ① 가용성 및 신뢰도: 확률이므로 양적으로 표현가능 ② 안전성 및 보안성: 판단이므로 숫자값으로 표현하기 힘드나.. 2023. 11. 28.
재사용을 통한 설계 1. 컴포넌트 기반 개발(Component based development) 1) 개요 (1) 특징 ① 컴포넌트는 객체 클래스에 비해 훨씬 추상적(abstract)이며, 독립적으로 서비스를 제공한다고 볼 수 있다. ② 시스템이 서비스가 필요한 경우 컴포넌트를 호출한다. 이때, 호출자는 컴포넌트가 어떻게 구현되었고, 어떠한 식으로 동작하는지에 대해서는 알 필요가 없다. ③ 컴포넌트는 독립적으로 실행 가능한 개체이다. 소스 코드는 제공되지 않기 때문에 재컴파일하는 것은 가능하지 않다. ④ 컴포넌트는 인터페이스를 제공한다. 모든 상호작용은 그 인터페이스를 통해서 이루어지게 된다. (2) 컴포넌트 인터페이스 (Component interfaces) ◆ 제공 인터페이스(provides interface): 컴포넌.. 2023. 11. 28.
실시간 소프트웨어 설계 1. 실시간 시스템(real-time system) 시스템에 의해 생성되는 결과(results)나 이벤트(events)에 반응해서 주어진 시간내에 올바른 기능을 수행할 수 있어야 한다. 그렇기 때문에 실시간 시스템을 자극/반응 시스템(stimulus/response system)이라고도 한다. 주어진 특정 입력 자극에 대해 관련된 반응을 보여야 하기 때문이다. 1) 실시간 시스템의 종류 ① 연성 실시간 시스템("soft" real-time system): 명시된 시간 요구사항(timing requirements)에 따라 결과가 얻어지지 못했을 경우 품질이 저하되는(degraded) 시스템 ② 경성 실시간 시스템("hard" real-time system): 명시된 시간 요구사항(timing require.. 2023. 11. 26.