소프트웨어 공학 (2) 소프트웨어 공학의 윤리 와 케이스 스터디

2022. 3. 15. 23:21강의 내용 정리/소프트웨어 공학

728x90
반응형

소프트웨어 공학 윤리

- 소프트웨어 공학은 단순히 기술을 넘어서 윤리적인 책임과 의무도 이야기함

- 공무원뿐만이 아니라 대부분 회사는 윤리사항은 인사 조항에 명시를 해놓음 -> 이를 지켜야함

 

Confidentiality

- 본인이 개발한 내용을 관련없는 다른 사람들에게 얘기하지 말기

Competence

- 본인이 할 수 있는 능력에 대해 정직하게 얘기해야함

지적 재산권

- 특허와 같은 지적재산권을 지켜야함

- 오픈소스와 관련된 라이센스를 지켜서 활용해야함

Computer misuse

- 지급받은 컴퓨터, 소프트웨어 등을 업무 이외의 목적으로 사용하지 않기

 

ACM/IEEE Code of Ethics

- 두 학회에서 소프트웨어를 다루는 사람부터 전기를 다루는 엔지니어가 지켜야하는 윤리 사항을 명시해놓음

- 소프트웨어공학 윤리강령 -> 국내 지부가 있기에 한글로 설명이 되어있음

http://sigsoft.or.kr/%EC%86%8C%EC%82%AC%EC%9D%B4%EC%96%B4%ED%8B%B0-%EC%86%8C%EA%B0%9C/%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4%EA%B3%B5%ED%95%99-%EC%9C%A4%EB%A6%AC%EA%B0%95%EB%A0%B9/

 

소프트웨어공학 윤리강령 – 소프트웨어공학 소사이어티

2016년 5월 16일 제정 출처: ACM/IEEE-CS Software Engineering Code of Ethics and Professional Practice http://www.acm.org/about/se-code#short 소프트웨어 엔지니어는 소프트웨어의 분석, 명세, 설계, 개발, 테스트, 유지보수

sigsoft.or.kr

- 이를 지키지 않을 때는 크나큰 문제가 발생할 수 있음

 

기업에서의 소프트웨어 공학 윤리 강령

- google에서 사원들에게 지켜야할 윤리를 따로 명시해놓음 (Don't be evil)

- google에서 AI를 만들 때 지켜야하는 윤리강령도 만들어놓음

- SPRI: 소프트웨어 정책 연구소에서 명시해놓은 소프트웨어 윤리강령

https://spri.kr/posts/view/22663?code=industry_trend 

 

컴퓨팅 전문가 윤리 강령의 최신 개정과 주요 변화 - SPRi

ACM이 2018년 6월 공표한 컴퓨팅 전문가 윤리 강령은 강령이 처음 공표된 이래 26년 만의 개정이다. 개정 내용은 데이터 권한, 오픈소스, 기계 학습, 보안, 레거시 시스템 대책 등 최신 컴퓨팅 환경

spri.kr

=> 이러한 것들은 반드시 지켜야함 / 지키지 않는 경우에는 퇴사뿐만 아니라 고소도 당할 수 있음

 

 

케이스 스터디

(1) 인슐린 펌프

- Embeded control system

- 인슐린 펌프를 컨트롤해서 인슐린을 주입

- 센서를 통해 당뇨 수치를 수집하고, 인슐린이 부족한지 아닌지 판단하여 계산, 몸 안에 인슐린 투입

- 이를 위해서는 주기적으로 당뇨에 대한 정보 수집(모니터링)

- 인슐린의 양을 토대로 부족한지 아닌지 확인(계산)

- 펌프를 구동해서 인슐린을 투입(주입)

- 안정성이 매우 중요함 -> 잘못 판단하거나 조금 넣으면 뇌가 손상될 수 있음

- 적기에 적정량을 투여함으로서 저당, 과당을 방지해야함 (정해진 시간에 반드시 나와야하는 것들 )

- 피에 대한 정보를 가져옴 -> 센서가 분석 -> 인슐린 계산 -> 투입이 필요하면 투입 -> 언제 투입했는지 인슐린 로그 추적 -> 인슐린 투입을 한 뒤, 펌프에 명령 -> 피에 인슐린이 반영

 

주요한 사항

- 모니터링

- 실시간 반영

 

 

(2) 정신 건강에 대해 관련된 사람들이 상담하고 정보를 저장

- 데이터베이스 아키텍쳐

- 전형적인 데이터베이스 시스템

- 환자에 대한 정보를 저장, 관리하여 필요한 사람들에게 제공

- 의사가 다르더라도 꾸준히 동일한 정보를 얻을 수 있어야함

- 정신질환을 가진 분들을 치료하는 것이 목적

- 중앙정보 시스템이 존재

- 온라인과 오프라인을 병행으로 사용하기에 다운로드 받아서 사용할 수 있도록 함

- 온/오프라인 모두 보안 사안이 매우 중요함

 

주요한 사항

- 개인정보에 대한 보호 및 방어가 매우 중요한 문제임

- 사용자가 편집/사용 등을 하기 위한 것들이 편리하게 되어야함

- 환자 모니터링

- 총괄하여 관리하는 사람에게 레포트가 되어야함

- 보안

- safety: 환자가 극단적인 행동을 취하기 전에 발견하여 이를 방지하기 위한 것 등

 

 

(3) 날씨 station

- 센서데이터를 수집하여 예측

- Iot

- 정부 기관이 센서를 전국에 깔아놓음

- 해, 비, 바람 등의 정보를 실시간으로 24시간동안 수집해야함

 

장치 유형

- 데이터를 읽는 장치(날씨 데이터 수집 및 사소한 전처리) -> 수백개

- 데이터 저장 및 관리하는 장치 -> 하나

- 데이터를 전송하기 위한 장치 -> 하나 등

=>> system of systems

 

- 장치들이 자가 발전할 수 있도록하는 기능이 필요

- 예상되는 장애가 발생할 때마다 backup하는 것이 필요함

- 서비스가 업데이트되더라도 끊기지 않도록하는 기능을 가져야함

=> 임베디드 시스템에서 필요한 기능이기도 하기에 iot와 비슷하다는 것을 알 수 있음

 

 

(4) 원격 러닝 시스템

- 교수, 학생 등에게 필요한 서비스를 따로 구현함(set of applications)

- 개별적인 서비스들을 묶어서 제공함

- 독립적인 서비스를 수정하더라도 전체 서비스에 영향을 미치지 않음

- Email, Messaging, Video conferencing ... 여러 기능들이 독립적으로 만들어지고 각각 다른 것으로 만들어도 상관 없음

- 제반 서비스는 Authentication, Logging and monitoring Application이 필요함

- Configuration services는 그룹별로 구분하여 제공

- 구글, 네이버, 아마존과 같은 서버 베이스 서비스가 이에 해당

- Independent service: 사용자가 와서 사용함

- Integrated service: 서비스들간의 사용, 서버 to 서버

 

 

Key Points

- 소프트웨어 엔지니어링은 소프트웨어 개발과 관련된 전방위적인 모든 것과 관련됨

- 소프트웨어는 유지보수가 가능해야하고, 안전해야하고, 원하는 기능과 수준이 나와야하고, 효율적이어야하고, 보안이 되어야함

- 요구사항을 추출하고 설계 개발, 발전하며 유지보수하는 것이 중요

- 재사용가능한 이론과 도구와 방법론을 포괄한 것이 소프트웨어 공학이다.

728x90
반응형