본문 바로가기

CS/소프트웨어공학3

[소프트웨어공학] Chapter 3 - System Engineering 시스템이란?시스템은 목적을 달성하기 위해 서로 상호작용하는 구성요소로 구성된다. 크거나 작을 수 있고, 복잡하거나 간단할 수 있고, 실제로 존재하거나 컨셉츄얼하게 존재할 수 있다. 개미들, 우주와 같은 자연적인 시스템도 존재하고, 인간이 만든 시스템 역시 많이 존재한다. 인간이 만든 시스템은 실제로 존재하거나 개념적으로만 존재할 수 있다.Computer-based 시스템은 소프트웨어가 하위 시스템으로 포함된 인간이 만든 시스템이다. telecommunication 시스템, 이메일 시스템 등이 포함되어 있다. 몇몇 시스템은 software-only system이고, 몇몇 시스템은 소프트웨어와 하드웨어, 인간의 하위 시스템으로 구성된다.모든 시스템은 다음의 특성들을 공유한다.각 시스템은 상호관련되거나 상호작.. 2024. 3. 31.
[소프트웨어공학] Chapter 2 - Software Process and Methodology 시스템 개발의 어려움 학부에서 소프트웨어 개발하는 것과 현업에서 개발하는 것은 큰 차이를 가지고 있음. 어떤 차이가 있어야 소프트웨어 프로세스와 방법론이 필요한지 이해할 수 있음. 많은 프로젝트들은 1년에서 몇년까지 아주 긴 개발 기간을 지니고 있음. 그렇기 때문에 향후 몇년간 어떤일이 일어날 것이고, 이를 어떻게 대비할 것인지 계획해야 함. 많은 프로젝트들은 다른 부서 또는 팀과 협업을 통해 개발이 이루어지는 경우가 많음. 따라서, 어떻게 상호 의존적인 부분으로 팀에게 할당하고, 이를 원활하게 합칠 수 있을까 생각해야됨. 예를 들어, 어떤 시스템을 개발한다 치면 백엔드 부서와 프론트 엔드 부사가 각각 나누어 개발하고, 이를 나중에 합쳐서 하나의 서비스로 운용해야됨. 부서 또는 팀들이 각기 다른 개발 프.. 2024. 3. 18.
[소프트웨어공학] Chapter 1 - Introduction 소프트웨어 공학이란? 소프트웨어의 개발, 운용, 유지보수 등 생명 주기 전반을 체계적이고 서술적으로 다루는 학문. 즉, 공학을 소프트웨어에 적용하여 소프트웨어의 생산성과 질을 높이고, 비용과 시간을 절약하고자 한다. 소프트웨어 공학이 중요한 이유 소프트웨어는 우리 사회의 모든 부분으로 확장되고 있음. 소프트웨어 공학은 큰 시스템 개발 과정에서 팀워크 향상에 도움이 됨 큰 시스템은 디자인하고, 구현하고, 테스트하는데 상당한 노력이 듬 개발자들은 코드를 분석, 디자인, 구현, 통합 그리고 테스트하는데 많은 시간을 소모함 따라서 소프트웨어공학을 통해서 효율적으로 협업을 진행할 수 있게됨 소프트웨어 개발 라이프사이클 소프트웨어 개발 라이프 사이클이 필요한 이유? : 팀에서 여럿이서 개발할 때 보다 효율적이고 체.. 2024. 3. 12.