직무 : 소프트웨어 엔지니어

작가: Laura McKinney
창조 날짜: 2 4 월 2021
업데이트 날짜: 1 칠월 2024
Anonim
소프트웨어 엔지니어가 하는 일의 모든것
동영상: 소프트웨어 엔지니어가 하는 일의 모든것

콘텐츠


출처 : Dragonimages / Dreamstime.com

테이크 아웃 :

소프트웨어 엔지니어는 소프트웨어 개발 수명주기에 깊이 관여하며 프로젝트 성공에 큰 역할을합니다.

소프트웨어 엔지니어는 무엇을합니까? 간단한 대답은 소프트웨어 제품에 엔지니어링 원칙을 적용하는 과정에서 소프트웨어 엔지니어링에 관여한다는 것입니다.

그러나 소프트웨어 엔지니어가 소프트웨어 세계에서 수행하는 작업을 설명하는 데에는 많은 세부 사항과 미묘한 차이가 있습니다. 우리는 매일 사용하는 모든 훌륭한 디지털 자료를 만들기 위해 일하는 소프트웨어 엔지니어의“삶의 하루”를 보면서 그 중 일부에 대해 알아볼 것입니다. (현장에서 누군가의 역할에 대한 자세한 내용은 저자와 소프트웨어 엔지니어 David Auerbach의 12 가지 질문을 참조하십시오.)

소프트웨어 개발 수명주기

소프트웨어 엔지니어의 역할을 이해하려면 소프트웨어 개발 수명주기 (SDLC)에 대해 알아야합니다.

소프트웨어 개발 수명주기에는 요구 사항 계획, 설계, 코딩, 테스트, 구현 및 제공 (종종 독점 프로세스에 따라 몇 가지 단계를 수행하거나 수행)으로 설명하는 다양한 주요 단계가 포함됩니다.

Value Transformation LLC의 John Quigley는“소프트웨어는 우리가 해결하려는 문제로 시작합니다.”라고 말하면서 프로세스 시작시 진행되는 작업으로 시작하여 기존 소프트웨어 개발 수명주기를 설명합니다. “이것은 어떤 형태의 문서로 표현 될 것이며, 문제를 겪고있는 고객이나 사람들과의 인터뷰의 결과입니다…이 문서는 문제가 어떻게 생겼는지 설명 할 것입니다. 이것이 우리가 이루고자하는 것을 확립하는이 작업의 목표가 될 것입니다.”

그는 요구 사항 단계에서 하드웨어 (있는 경우)와 소프트웨어 모두 제품에 대한 특정 기술 설명을 설정한다고 말합니다.


Quigley는 코딩 단계에 대해 다음과 같이 코딩합니다.“소프트웨어 엔지니어는 특정 요구 사항을 충족하는 원하는 제품을 생산할 수있는 구체적인 진술을 코드로 작성합니다.

그 후 그는 테스트를 수행 한 다음 소프트웨어를 프로덕션 환경으로 확실하게 가져 오는 또 다른 단계를 진행하고 있다고 그는 말했다. 프로세스가 끝날 무렵에는 구현 및 배포에 대한 다양한 아이디어를위한 공간이 있습니다. Quigley는 또한 SDLC를위한 새로운 "민첩한"모델이 약간 다르게 작동한다고 덧붙였습니다.

버그 없음, 스트레스 없음-인생을 파괴하지 않고 인생을 바꾸는 소프트웨어를 만드는 단계별 가이드

아무도 소프트웨어 품질에 신경 쓰지 않으면 프로그래밍 기술을 향상시킬 수 없습니다.

Quigley는“민첩한 세상에서는 상황이 많이 보이지만 반복은 더 작고 가깝습니다. "요구 사항은 사용자 스토리를 통해 처리 될 수 있으며, 기술적으로 덜 기술적이고, 응용 프로그램을 이해하기 위해 더 많이 작성되어 소프트웨어 엔지니어가 실제 사용에 따라 추론하고 필요한 주요 속성을 추론 할 수 있습니다."

소프트웨어 엔지니어의 다양한 역할

소프트웨어 개발 수명주기는 다양한 단계와 작업을 갖기 때문에 소프트웨어 엔지니어의 작업도 다양합니다.

로체스터 공과 대학 (Rochester Institute of Technology)의 교수 인 Samuel Malachowsky는“소프트웨어 엔지니어는 소프트웨어 솔루션을 만드는 데있어 가장 많은 역할을합니다. “SDLC의 각 요소에는 전문가가 있습니다 : 초기 단계에 대한 RE 및 판매, 설계 단계의 설계자, 빌드의 코더 / 프로그래머, 검증 / 테스트를위한 QA, 배포 / 유지 보수를위한 IT, 프로젝트 관리 및 이동을위한 프로젝트 관리자 각 팀원 / 단계이지만 소프트웨어 엔지니어는 전체 프로세스에 광범위하게 적용해야합니다. 이러한 관점에서 소프트웨어 엔지니어가하지 않는 일을 묻는 것이 더 좋은 질문 일 것입니다.”


Malachowsky가 IT와 소프트웨어 엔지니어링의 차이점에 대해 지적한 또 다른 흥미로운 점은 일반적인 소프트웨어 엔지니어의 직무에 대해 많은 것을 보여줍니다.

“IT는 운영적이고 반복적이며 엔지니어링은 새로운 프로젝트를 해결하여 고유 한 프로젝트로 해결해야합니다.”라고 그는 말합니다. “IT 직원은 이러한 반복으로 인해 개별 도구 기반 인증을 요구할 가능성이 훨씬 높습니다. 컴퓨터 엔지니어링과는 달리 요구 사항이 충족되는 모습 – CE는 하드웨어를 지원하는 소프트웨어를 통해 하드웨어 문제를 해결하는 데 주력하는 경향이 있습니다. SE는 소프트웨어를 통해 문제를 해결하고 하드웨어는 지원을 제공합니다.”

소프트웨어 엔지니어 및 프로젝트 팀

많은 회사에서 소프트웨어 엔지니어는 복잡한 프로세스에서 자신의 역할에 따라 역할을 그룹화하고 위임합니다.

Brennan Meagher는 Fierce Healthcare, American Emergency Physicians College, Health Data Management, Healthcare IT News 등에서 의료 혁신의 헤드 라인을 만드는 회사 인 TeleTracking의 사례를 설명합니다.

Meagher는“TeleTracking에서 소프트웨어 엔지니어는 TeleTracking 플랫폼의 일부인 모든 모듈과 응용 프로그램의 코딩 및 테스트를 담당합니다. 또한 소프트웨어 솔루션 및 프로덕션 개발을 지원합니다. 여기에는 새로운 소프트웨어의 연구, 설계, 문서화 및 개발이 포함됩니다. 요컨대, 우리의 소프트웨어 엔지니어는 TeleTrackings 기술 비전에 부합하는 소프트웨어 솔루션을 만들어 환자 접근을 개선합니다.”

기업 캠퍼스에서 이러한 전문가를 먼저 그림으로 작성하고, 모델을 수정 한 다음, 팀에서 테스트하고 프로젝트를 신중하게 수행하여 완료 할 수 있습니다.

Meaghan은“소프트웨어 엔지니어가 정기적으로 담당하는 업무의 예로는 모든 응용 프로그램 계층의 쓰기, 디버깅, 단위 테스트 및 성능 테스트 코드가 있습니다. "프론트 엔드 (웹), 중간 계층 (웹 서비스) 및 데이터 액세스 계층이 포함됩니다."

결론은 소프트웨어 엔지니어가 다양하고 전문화 된 작업을 수행한다는 것입니다. 모두 코딩의 기본 사항을 이해해야하지만 일부는 테스트의 세부 사항이나 설계 요구 사항의 투명성 또는 경우에 따라 민첩한 개발 환경을 탐구해야합니다.

그런 다음 DevOps 모델이 등장하여 기존 모델에서 매우 구체적으로 설명되고 범주화 된 많은 반복 프로세스를 병합했습니다. 소프트웨어 엔지니어의 역할이 바뀌고 있습니다. DevOps에 대한 자세한 내용은 DevOps 관리자가 수행 한 작업 설명을 참조하십시오.

따라서 소프트웨어 제작에있어 이러한 중앙 전문가의 작업에 대해 자세히 알아볼 때 조금만 더 진행하면됩니다. 소프트웨어 엔지니어는 설계 및 소프트웨어 제작의 "스위스 군용 칼"로 묘사되어 있으며 바쁜 회사에서 많은 모자를 착용 할 수 있습니다.