728x90
반응형

Software Engineering 94

소프트웨어 신뢰성 개선 전략 3가지 (3 Strategies for Software Reliability Improvement)

소프트웨어 신뢰성(Software Reliability)는 ISO/IEC 25010 (구 ISO/IEC 9126), Product Quality Model에서 정의한 품질의 주특성중 하나로 "시스템/소프트웨어가 정의된 기능을 수행함에 있어 주어진 조건과 시간 내에 결함(Fault) 또는 고장(Failure) 없이 동작/수행 할 수 있는 능력 또는 확률"로 정의할 수 있습니다. 이는 소프트웨어 신뢰성을 개선하는 것만으로 소프트웨어 품질이 높다고 단정할 수는 없지만, 반대로 고품질 소프트웨어를 개발하기 위한 필요 조건으로 반드시 소프트웨어 신뢰성 개선을 위한 전략 수립이 필요하다고 볼 수 있습니다.    참조: 소프트웨어 신뢰성 정의 관련 글소프트웨어 공학: 소프트웨어 신뢰성 정의 (Software Reli..

소프트웨어 결함 완화 및 제어 전략 시너지: 주요 접근법들간의 상호작용

소프틑웨어 결함 완화 및 전략 관련 글소프트웨어 결함 완화 및 제어 전략 (Software Fault Mitigation and Control Strategies)소프트웨어 공학: 소프트웨어 신뢰성 정의 (Software Reliability)이전 포스팅에서는 소프트웨어 결함 완화 및 전략의 주요 접근법에 대해 살펴 보았습니다. 소프트웨어 안전성과 신뢰성을 보장하기 위한 네 가지 개념인 소프트웨어 결함 탐지 (Fault Detection), 소프트웨어 결함 격리 (Fault Isolation), 소프트웨어 결함 알림 (Fault Annunciation), 그리고 소프트웨어 결함 내성 및 복구 (Fault Tolerance and Recovery)는 상호보완적으로 작동하게 되는데, 이번 포스팅에서는 이러한..

소프트웨어 결함 완화 및 제어 전략 (Software Fault Mitigation and Control Strategies)

소프트웨어 결함 완화 및 제어 전략 관련 글소프트웨어 결함 완화 및 제어 전략 시너지: 주요 접근법들간의 상호작용소프트웨어 공학: 소프트웨어 품질과 개발 생산성 - 오해에서 진실로1. 소프트웨어 결함 관리의 중요성: 시스템 안전성과의 연계소프트웨어는 현대 시스템의 핵심 요소로 자리 잡으면서, 그 안전성과 신뢰성은 우리의 삶과 직결되는 문제가 되었습니다. 특히 자동차, 항공기, 의료 기기와 같은 안전 필수 시스템에서는 소프트웨어 결함이 단순한 오류를 넘어 생명과 재산을 위협할 수 있습니다. 따라서 이러한 위험을 관리하기 위한 소프트웨어 결함 완화(Mitigation)와 제어(Control) 전략이 필수적이라 할 수 있습니다. 소프트웨어 결함 관리의 필요성: 안전성(Safety) & 신뢰성(Reliabili..

국내 소프트웨어 경쟁력 현황, 저해 요소 및 개선 방안 (정보과학회지 특별기고문, 2024.12)

한국정보과학회 www.kiise.or.kr 산업계 여러분야에서 소프트웨어의 중요성과 소프트웨어 엔지니어의 역할과 위상이 그 어느때 보다 높아진 것은 부정할 수 없는 현실입니다. 그럼에도 불구하고, 냉정하고 객관적인 시선으로 국내 소프트웨어 경쟁력을 진단한 사례는 부족한 편입니다. 이에 국내 소프트웨어 경쟁력의 현 주소와 앞으로 다가올 시대에 무엇을 준비하는 것이 필요한지에 대한 방향성에 대한 심도있는 고민과 토론할 수 있는 기회가 있었습니다. 그리고 그 결과물을 짧게나마 정리된 글이 "한국정보과학회지 12월 특별기고문" 형식으로 실렸습니다. 다음은 간략한 요약입니다.1. 국내 소프트웨어 산업의 현황국내 소프트웨어(SW) 산업은 IT 서비스, 패키지 SW, 게임 SW 등으로 다양하게 구성되어 있으며, 그 ..

명확한 요구사항 작성 (모호성 제거) - 시각적 요구사항 정의, 모델기반 요구사항 명세서 (Model-Based Requirements Specification, MBRS)

모델 기반 요구사항 명세(MBRS)는 시스템 및 소프트웨어 엔지니어링에서 자연어의 모호성을 줄이기 위해공식적이거나 반공식적인 모델링 언어를 활용하는 접근 방식입니다.통합 모델링 언어(UML) 또는 시스템 모델링 언어(SysML)와 같은 표준화된 모델링 언어를 사용하여요구사항을 명확하고 간결하게 정의하며, 이는 건축 설계 도면처럼 시스템 설계를 위한 청사진 역할을 합니다.   MBSE (Model Based System/Software Engineering) 관련 글OMG SysML 다이어그램 마스터하기::모델링 가이드MBSE Example #1: 차량 가속도 vs. 연비 - 트레이드오프 분석 (with SysML)SPL: 도메인 요구공학 (Domain Requirements Engineering)소프트웨..

소프트웨어 공학: 소프트웨어 품질과 개발 생산성 - 오해에서 진실로

소프트웨어 개발 현장에서 종종 품질 관리 활동이 개발 생산성을 저하시킨다는 오해가 있습니다.예를 들어, 테스트 자동화 도입, 코드 리뷰 강화와 같은 품질 활동이 개발 속도를 늦추고비용을 증가시킨다고 생각하는 사람들이 많습니다.그러나 이는 잘못된 생각입니다. 장기적인 관점에서 품질 관리 활동은 오히려 생산성을 향상하고,더 나아가 조직의 성공을 보장합니다.   소프트웨어 품질은 개발 생산성에 중대한 영향을 미치는 요소로, 조직과 개발자 모두에게 중요합니다. 품질은 단순히 결함이 없는 상태를 넘어, 유지보수성, 가독성, 시스템 신뢰성 등 다양한 측면에서 측정됩니다. 실제로 구글(Google)은 개발 생산성과 품질의 관계를 심층적으로 분석하며, 프로세스 품질과 코드 품질의 상호작용이 생산성에 미치는 영향을 연구..

소프트웨어공학: 소프트웨어 유지보수성 측정 - 왜 중요할까?

소프트웨어 유지보수성은 개발 프로젝트의 성공 여부를 좌우할 수 있는 중요한 요소입니다.소프트웨어를 출시한 이후 발생하는 유지보수 비용은전체 소프트웨어 소유 비용(Total Cost of Ownership, TCO)의 70-80%에 달한다고 합니다.이는 유지보수성이 높은 소프트웨어를 설계하는 것이 얼마나 중요한지 보여줍니다.이번 포스팅에서는 소프트웨어 유지보수성을 측정하는 방법과 이를 향상시키기 위한 핵심 요소를 소개합니다.   소프트웨어 유지보수 비용의 분류소프트웨어 유지보수 비용은 소프트웨어가 초기 개발 단계에서 출시된 후, 지속적으로 동작하고 효과적으로 사용되도록 하기 위해 소요되는 모든 비용을 의미합니다. 이는 소프트웨어의 수명 주기에서 가장 큰 비중을 차지하는 비용 요소로, 전체 소유 비용(TCO..

소프트웨어공학: 소프트웨어 생산성 측정과 개선 - 생산성 개선 절차

소프트웨어 개발에 있어 개발자들을 대상으로 한 생산성을 측정하고 관리하는 것은매우 어려운 주제 중 하나입니다. 생산성 측정에는 마법같은 해결책이 있는 것도 아니고요.이번 포스팅에서는 소프트웨어 생산성을 측정하고 개선하기 위한 실무적 접근법에 대해 살펴 보겠습니다.  이 포스팅은 Cristof Ebert "Measure and Improve Software Productivity" (IEEE Software, DOI Bookmark: 10.1109/MS.2023.3324466)의 내용을 기반으로 작성되었습니다. 이번 포스팅에서는 소프트웨어 생산성을 효과적으로 측정함에 있어 모호한 선언 대신 실질적인 방법론에 대해 설명하고자 합니다. 조사 결과에 따르면 팀 협업, 도구의 효율성, 프로세스 개선, 관리 관행 ..

소프트웨어공학: 소프트웨어 생산성 측정과 개선 - 생산성 측정 프로세스

소프트웨어 개발에 있어 개발자들을 대상으로 한 생산성을 측정하고 관리하는 것은매우 어려운 주제 중 하나입니다. 생산성 측정에는 마법같은 해결책이 있는 것도 아니고요.이번 포스팅에서는 소프트웨어 생산성을 측정하고 개선하기 위한 실무적 접근법에 대해 살펴 보겠습니다.  이 포스팅은 Cristof Ebert의 "Measure and Improve Software Productivity" (IEEE Software, DOI Bookmark: 10.1109/MS.2023.3324466)의 내용을 기반으로 작성되었습니다. 소프트웨어 공학 전체글 바로가기 소프트웨어 생산성 측정과 개선소프트웨어공학: 소프트웨어 생산성 측정과 개선 - 생산성 측정 프로세스소프트웨어공학: 소프트웨어 생산성 측정과 개선 - 생산성 개선 절..

자동차 제어 소프트웨어 개발에서의 나쁜 소프트웨어 엔지니어 특징과 교훈

소프트웨어 엔지니어 관련글 보기소프트웨어 엔지니어가 갖춰야 할 핵심 역량 - 소프트웨어 엔지니어는 단순 개발자가 아닙니다.프롬프트 엔지니어링: 인공지능 시대의 새로운 직업소프트웨어 개발자 생산성에 관하여자동차 산업은 기술 발전이 매우 빠르게 이루어지는 분야 중 하나로, 특히 제어 소프트웨어의 역할은 날로 중요해지고 있습니다. 차량의 성능, 안전성, 효율성을 좌우하는 중요한 요소가 바로 이 제어 소프트웨어에 달려 있기 때문에, 소프트웨어 엔지니어들의 역량은 그 어떤 분야보다도 중요한 역할을 합니다. 그러나 모든 소프트웨어 엔지니어가 동일한 가치를 발휘하는 것은 아닙니다. 오늘은 제가 자동차 제어 소프트웨어 개발 분야에서 경험한, 소위 ‘나쁜’ 소프트웨어 엔지니어의 특징에 대해 이야기해보겠습니다. 1. 지나..

728x90
반응형