호우동의 개발일지

Today :

article thumbnail

소프트웨어 공학 윤리


행동 기준

  • 비밀 유지
    → 공식적인 비밀 유지에 관한 협약이 없더라도 고객의 비밀을 유지해야 한다.

  • 능력
    → 엔지니어는 자신의 능력 밖의 일을 알면서도 맡아서는 안된다.

  • 지적 재산권
    → 엔지니어는 특허나 저작권 등의 지적 재산 사용을 관장하는 법규를 잘 알고 있어야 함
    → 고객의 지적 재산이 확실하게 보호받도록 주의해야 함

  • 컴퓨터 남용
    → 컴퓨터 남용의 목적으로 기술적 능력을 사용해선 안됨(직장 컴퓨터 게임, 바이러스 배포 등)

 


ACM/IEEE 행동강령

  • ACM과 IEEE는 공동으로 윤리와 직업적 실무에 대한 행동강령을 정함
  • 행동 강령에 대한 축약본은 높은 수준의 추상화에서의 목표를 요약한 것임
    → 목표가 어떻게 엔지니어 전문가의 행동을 변화시키는지에 대한 사례와 상세내용 제공

    → 목표와 세부내용을 함께 엮어서 강령을 구성

    → 소프트웨어 엔지니어는 소프트웨어의 분석, 명세화, 설계, 개발, 테스팅 및 유지보수를
    유익하고 높이 평가되는 작업이 되도록 전념해야 한다.

    → 엔지니어가 대중의 건강, 안전, 복지를 위해 전념하는 것에 맞추어 원칙을 준수
    • 대중 - 엔지니어는 대중의 이익에 부합하도록 행동
    • 고객과 고용주 - 대중의 이익에 부합하면서도 고객과 고용주의 이익이 최선이 되도록 행동
    • 제품 - 엔지니어는 자신의 제품과 관련된 수정사항이 가능한 높은 전문 표준을 준수하도록 해야 함
    • 판단 - 엔지니어는 전문적 판단으로 정직성과 독립성을 유지해야 함
    • 관리 - 소프트웨어 관리와 유지관리를 윤리적 접근법에 따라 진행해야 한다.
    • 직업 - 엔지니어는 직업의 고결함과 평판을 대중의 이익과 부합하도록 해야 함
    • 동료 - 엔지니어는 자신들의 동료에서 공정하고 협력적이어야 함
    • 자신 - 엔지니어는 자신의 직업 실무를 학습하는데 참여하고,
      직업 실무 지침에 대한 윤리적 접근법을 촉진시켜야 한다.

 


윤리적 딜레마

  • 서로 다른 견해와 목적을 가지고 있는 경우 발생
    (회사 상사의 정책에 동의하지 않는 경우, 프로젝트 문제 발생)
  • 대부분 쉽게 해결 가능. But 해결 실패 시 또 다른 문제에 직면할 수 있음

 


윤리적 딜레마 케이스

  • 고용주가 비윤리적으로 행동할 때
    • 안전성 중심 시스템을 개발 시 안전성 검증 기록 조작
      • 원인 : 시간 압박
      • 대응 방안 : 비밀 유지? / 대중에게 알리기?
      • 문제 : 안전성에 대한 절대적 기준 없음

  • 군사적 또는 핵 관련 시스템을 개발하는데 참여하는 경우
    • 고용인과 피고용인 모두가 사전에 서로의 생각을 공유하는 것이 중요
      → 피고용인이 원치 않으면 그 일을 강요해서는 안됨.

 

 


사례분석

— 시스템에 따라 소프트웨어 공학 실무가 달라짐

 


인슐린 펌프 제어 시스템

  • 췌장의 동작을 시뮬레이션 하는 의료 시스템
    → 센서로부터 정보를 수집, 계산량만큼 인슐린을 사용자에게 주입

  • 안정성 중심 시스템
    • 펌프 고장 및 오작동 시 사용자 건강에 치명적
      → 1. 시스템은 필요할 때마다 반드시 동작
      1. 신뢰할 수 있도록 동작, 할당량에 맞추어 정확한 양의 인슐린을 주입해야 함

 


정신 건강 관리를 위한 환자 정보 시스템(Mentcare)

  • 정신 건강 관리를 돕는 환자 정보 시스템
    → 정신 건강 문제 환자에 대한 정보와 치료 기록을 관리

  • 대부분의 환자들은 정기적으로 특수 클리닉에 다녀야 함
    → 환자의 문제에 대해 상세히 알고 있는 의사를 만나야 함

  • 환자들의 통원을 쉽게 하기 위해 여러 곳에서 운영 가능(병원, 지역 의료 사무실, 복지관 등)

 


Mentcare

  • 클리닉에서 사용하기 위한 환자 정보 시스템
  • 중앙 집중 데이터베이스를 사용하여 정보 관리
    • PC나 노트북을 고려하여 네트워크 연결 없는 장소에서도 사용 가능

  • 네트워크 연결 상태에 따라 환자 정보를 다르게 관리
    • 연결된 상태 : 데이터베이스의 환자 정보 사용
    • 연결 끊긴 상태 : 환자 기록 복사본을 로컬에서 다운로드하여 사용

  • 목적
    • 공공 의료 서비스 관리자가 지역과 정부의 성과를 평가할 수 있도록 관리 정보 제공
    • 환자 치료에 도움을 줄 수 있도록 의료진에게 적절한 정보 제공

 


Mentcare 시스템의 주요 특징

Mentcare 시스템 구성
Mentcare 시스템 구성

  • 개인별 관리

환자 기록 작성, 시스템 정보 수정, 환자 내역 조회 등 가능
→ 요약 정보도 같이 제공하여 환자를 빨리 알 수 있게 도움

  • 환자 모니터링

진료에 참여하고 있는 환자 기록을 주기적 모니터링

→ 문제점이 발견되면 경고를 띄움

  • 행정 보고

매월 관리 보고서 작성해 줌

(진료받은 환자수, 출입 환자 수, 격리 환자 수 등등)

 


Mentcare 시스템에서 고려해야 하는 점

  • 개인 정보
    • 환자 정보는 반드시 비밀 유지
    • 권한 있는 의료진과 환자 본인에게만 공개

  • 안전성
    • 일부 정신 질환은 본인 및 타인에게 위험할 수 있음
      → 관련 사항은 의료진에게 반드시 알려줘야 함

  • 시스템은 필요할 때 반드시 사용할 수 있어야 함
    → 그렇지 않으면 적절한 처방이 불가능

 


황무지의 기상 관측기

  • 넓은 황무지를 가진 국가는 멀리 떨어지는 지역에 수백 개의 기상 관측기를 설치하여 운용
  • 멀리 떨어진 지역의 기상 변화를 모니터링하고 일기 예보의 정확도를 높이기 위해 관측기 설치
    → 온도와 압력, 일조량, 강우량, 풍속 및 풍향을 측정하는 장비에서 데이터 수집

  • 기상 정보 시스템이라는 더 거대한 시스템의 일부
    → 관측기로부터 데이터를 수집하여 다른 시스템이 그 정보를 가공할 수 있게 함

 


기상 정보 시스템 구성요소 및 기능

  • 기상 관측기 시스템
    • 기상 데이터 수집 및 초기 데이터 가공
    • 데이터 가공 결과를 데이터 관리 시스템으로 전송

  • 데이터 관리 및 보관 시스템
    • 황무지의 모든 기상 관측기로부터 데이터 수집
    • 다른 시스템이 사용할 수 있는 형태로 보관

  • 관측기 유지보수 시스템
    • 위성을 통해 황무지의 모든 기상 관측기와 통신
    • 관측기의 상태 모니터링, 문제상황 보고
    • 소프트웨어 업데이트
    • 문제상황 발생 시 관측기 원격 제어

 


기상 관측기 제약조건

  • 위성 통신 사용
    • 위성 통신의 대역폭 충분하지 않음 → 접속 어려운 경우 발생

  • 외부 전력이나 네트워크 케이블 없음 → 배터리 전원 사용 및 배터리 충전 방안 필요
  • 황무지의 다양한 환경 상태
    → 발전기의 의도치 않은 고장, 야생 동물로 인한 손상 등

 


기상 관측기가 추가로 고려해야 할 점

  • 추가 필요 기능
    • 장비와 전력, 통신 하드웨어 모니터링하고 관리 시스템에 결함 보고
    • 환경상태가 나쁠지 배터리가 충전된 상태율 유지하도록 전력 관리
    • 소프트웨어를 부분적으로 새로운 버전으로 변경하고 시스템 장애 시 백업 장비로 대체할 수 있도록
      동적 재구성을 지원해야 함

  • 기상 관측기는 독립적, 방치된 상황에서 동작해야 해서 소프트웨어가 복잡할 수밖에 없다.

 


학교용 디지털 학습 환경(i-Learn)

  • 학습을 위해 범용 및 특수 목적으로 설계한 도구
  • 시스템을 사용하는 교육자의 요구를 충족시키는 어플로 구성된 일종의 프레임워크
    → 인증 서비스, 동기 및 비동기 통신 서비스와 저장 서비스

  • 각각의 학습 환경 버전에 포함하는 도구는 선생님과 학습자가 개별 목적에 맞춰 선택
    → 스프레드시트, 과제 제출 및 평가 관리, 학습관리, 게임 또는 시뮬레이션

 


I-Learn 서비스 유형

  • 유틸리티 서비스
    • 기본적인 기능 제공
      → 어플에 대한 독립적 기능
      → 시스템 내 다른 서비스 사용 가능

  • 애플리케이션 서비스
    • 특정 애플리케이션 제공(이메일, 원격회의, 사진 공유 등)
    • 특정 교육 콘텐츠도 포함(과학 동영상, 역사적 자료 등)

  • 설정 서비스
    • 특정 어플 서비스로 구성된 환경에 맞도록 설정하는 서비스

 


I-Learn 서비스 통합

  • 통합 서비스
    • 다른 서비스들이 접근할 수 있도록 API wprhd
    • 서비스 간의 직접 통신 가능(인증 서비스)

  • 독립 서비스
    • 브라우저 인터페이스를 통한 단순 접속
    • 명확한 사용자 행위를 통해서만 다른 서비스와 정보 공유 가능(복사 붙여 넣기)
    • 각각의 독립 서비스에 대해 재인증이 필요할 수 있음