이번에 학교에서 하나의 소프트웨어를 만들어가기 위한 과정과 방법에 대해서 배우는 소프트웨어 공학 수업을 듣게 되었습니다.
단순히 개발을 잘 하는 것도 중요하지만, sw를 만드는 과정과 절차를 확실히 알아두고 정리하면 큰 도움이 될 거라 생각해 블로그로 작성해 두고두고 확인할 예정입니다.
그럼 1장부터 시작하겠습니다.
Software Engineering
- 단순히 개발하는 비용보다, 유지보수 하는 비용이 더 많이 든다. 이는 비용 효율적인 개발의 필요성을 의미한다.
- 시스템의 복잡성이 증가하였다. 이는 체계적인 개발의 필요성을 의미한다.
- 소프트웨어 공학에서 소개하는 다양한 기술과 방법들을 쓰지 않고 무작정 개발한다면 실패하기 쉽다.
이와 같은 이유들로 체계적으로 소프트웨어를 개발하는 소프트웨어 공학의 필요성이 강조되고 있다.
소프트웨어 공학이 뭔데 ?
소프트웨어란 컴퓨터 프로그램과, 그 와 관련된 문서들을 의미한다. 좋은 소프트웨어란 사용자가 원하는 기능들과 성능을 제공해주는 소프트웨어를 의미한다. 소프트웨어 공학이란 좋은 소프트웨어를 만들기 위한 공학분야를 의미하며 단순 개발 단계 뿐만 아니라, 하나의 제품이 나오기까지 모든 과정을 포함한다. 다음과 같은 4가지 활동으로 대표된다.
- Software specification (소프트웨어 구체화)
- Software development (소프트웨어 개발)
- Software validation (소프트웨어 검증)
- Software evolution (소프트웨어 진화)
소프트웨어의 기본적인 원칙
소프트웨어는 다음과 같은 4가지의 원칙을 지키며 개발되어야 한다.
- 시스템 이해 및 관리가 수월해야함.
- 보안 및 시스템이 믿을 수 있어야함.
- 시스템의 사양과 요구사항을 명백히 이해하고 관리해야함.
- "Reuse"를 적극적으로 사용해야함. (ex. Open Source)
소프트웨어의 윤리 및 책임
소프트웨어는 정직하고 도덕적이어야 한다.
- 개인정보 및 데이터에 대한 기밀성을 유지해야함.
- 지적 재산 사용에 대해 법을 준수해야함.
- 엔지니어와 시스템의 능력을 확실히 파악해야함.
코드는 ACM/IEEE의 윤리 법칙에 맞게 작성되어야 한다.
☀️ 모든 시스템은 각각 다르기 때문에, 공통적으로 적용되는 최고의 개발론은 없다.
본인의 시스템을 먼저 이해한 후, 그에 맞는 개발론을 찾아 적용해야한다.
'학교 수업 > 소프트웨어 공학' 카테고리의 다른 글
#2 소프트웨어 프로세스 (0) | 2021.10.16 |
---|