2022. 3. 15. 23:21ㆍ강의 내용 정리/소프트웨어 공학
소프트웨어 공학 윤리
- 소프트웨어 공학은 단순히 기술을 넘어서 윤리적인 책임과 의무도 이야기함
- 공무원뿐만이 아니라 대부분 회사는 윤리사항은 인사 조항에 명시를 해놓음 -> 이를 지켜야함
Confidentiality
- 본인이 개발한 내용을 관련없는 다른 사람들에게 얘기하지 말기
Competence
- 본인이 할 수 있는 능력에 대해 정직하게 얘기해야함
지적 재산권
- 특허와 같은 지적재산권을 지켜야함
- 오픈소스와 관련된 라이센스를 지켜서 활용해야함
Computer misuse
- 지급받은 컴퓨터, 소프트웨어 등을 업무 이외의 목적으로 사용하지 않기
ACM/IEEE Code of Ethics
- 두 학회에서 소프트웨어를 다루는 사람부터 전기를 다루는 엔지니어가 지켜야하는 윤리 사항을 명시해놓음
- 소프트웨어공학 윤리강령 -> 국내 지부가 있기에 한글로 설명이 되어있음
- 이를 지키지 않을 때는 크나큰 문제가 발생할 수 있음
기업에서의 소프트웨어 공학 윤리 강령
- google에서 사원들에게 지켜야할 윤리를 따로 명시해놓음 (Don't be evil)
- google에서 AI를 만들 때 지켜야하는 윤리강령도 만들어놓음
- SPRI: 소프트웨어 정책 연구소에서 명시해놓은 소프트웨어 윤리강령
https://spri.kr/posts/view/22663?code=industry_trend
=> 이러한 것들은 반드시 지켜야함 / 지키지 않는 경우에는 퇴사뿐만 아니라 고소도 당할 수 있음
케이스 스터디
(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
- 소프트웨어 엔지니어링은 소프트웨어 개발과 관련된 전방위적인 모든 것과 관련됨
- 소프트웨어는 유지보수가 가능해야하고, 안전해야하고, 원하는 기능과 수준이 나와야하고, 효율적이어야하고, 보안이 되어야함
- 요구사항을 추출하고 설계 개발, 발전하며 유지보수하는 것이 중요
- 재사용가능한 이론과 도구와 방법론을 포괄한 것이 소프트웨어 공학이다.
'강의 내용 정리 > 소프트웨어 공학' 카테고리의 다른 글
소프트웨어 공학 (6) Requirement Engineering (0) | 2022.04.16 |
---|---|
소프트웨어 공학 (5), Agile software development (0) | 2022.04.14 |
소프트웨어 공학 (4), 소프트웨어 프로세스 2 (0) | 2022.04.13 |
소프트웨어 공학 (3), 소프트웨어 프로세스 1 (0) | 2022.04.06 |
소프트웨어 공학 (1) 서론 (0) | 2022.03.15 |