본문 바로가기
카테고리 없음

[소프트웨어 공학]소프트웨어의 시작과 기본 그리고 개념

by 세개남 2024. 5. 20.
반응형

소프트웨어의 시작과 기본

 

소프트웨어 공학은 일상생활의 거의 모든 분야에 파고들고 있다컴퓨터로 찍힌 공과금 고지서 고속버스 예약 시스템병원 내방 기록  우리가 자주 접하는 부분 뿐만 아니라 국방부공장의 자동화 생산 시설교통 신호와 같은 여러 부분도 컴퓨터로 제어되고 있죠.
하루가 다르게 발전하는 하드웨어반도체온라인 시스템 등등 예를 들지 않아도 정보화 혁명을 기반으로 만능 기계의 엄청난 잠재력을 살려주는 것은 소프트웨어입니다.
 
컴퓨터가 세상에 나왔을 무렵의 소프트웨어는 거의 관심의 대상이 되지 못했습니다.
컴퓨터 시스템 매출은 대부분 하드웨어가 큰 비중을 차지하고 있었기 때문이죠. 소프트웨어는 단지 하드웨어의 부속품이라는 생각이 많았습니다.1970년대에 개인용 컴퓨터의 등장으로 인하여 소프트웨어는 하드웨어의 그늘을 벗어나기 시작해 컴퓨터의 기능과 시장을 결정하는 요소로 점점 부각되었습니다. 이제 소프트웨어는 통신망과 함께 정보화 시대를 이끌고  중요한 기술이 되었습니다이렇게 소프트웨어 기술이 우리의 삶에 엄청난  변화를 가지고 왔습니다.
변화되어 오늘날의 정보화 사외는 정치, 경제, 사회, 교육, 국방, 의료, 예술, 예능 등 여러 분야에 걸쳐 소프트웨어에 더욱더 기대어가고 있습니다소프트웨어의 결함이 있을 경우 인간의 생명과 재산에 심각한 손해를 입힐 만한 중요한 소프트웨어 시스템이 많아지고 있습니다그만큼 품질 좋은 소프트웨어를 만드는 기술이 우리의 생명과 재산을 보호하고 삶의 질을 높이는 것에 아주 중요한 관건이 되었습니다 .수요가 계속 증가하는 소프트웨어를 적시에 개발하여 공급해야 한다는 것과 좋은 품질의 소프트웨어를 개발하여 효율적인 사회와 안전한 생활 문화를 조성해야 한다는 두 가지 사실은 소프트웨어의 중요성의 가지를 더욱 높이고 있습니다.중요성이 높아지면 소프트웨어를 개발하는 기술도 점점 빠르게 발전해 가고 있습니다.
 
사회에 주는 영향이 커질수록 그 수요도 많아지고 있습니다. 응용 분야가 대규모화 되고 일반인들이 컴퓨터의 필요성을 더 느낄수록 소프트웨어 공급은 그에 따른 수요에 따라가지 못합니다.컴퓨터 프로그램의 생산은 기계에서 찍어내는 공산품의 생산과 달리 사람의 지적 작업에 의해 만들어지기 때문에 그 생산량은 일정하지 않습니다. 또한 소프트웨어의 개발은 단순히 컴퓨터에 대한 지식과 기술만으로 이루어지는 것이 아닌 설계 및 테스트 방법, 응용 분야에 대한 이해, 그리고 인간 공학과 프로젝트 경영 기술까지 요구되는 작업입니다. 소프트웨어 공학은 소프트웨어의 수요와 공급의 차이를 줄이려는 노력의 산출물이다. 주어진 비용과 자원 안에서 품질 좋은 소프트웨어를 기간 내에 생산하는 것이 소프트웨어 공학의 주된 목적입니다. 소프트웨어의 규모가 커질수록 프로그래밍 자체보다는 그 과정과 계획 그리고 사용된 도구들이 생산성과 품질에 큰 영향을 끼치게 됩니다. 또한 여러 사람이 협력하여 소프트웨어를 개발하는 경우에는 프로젝트의 관리와 개발 경험이 매우 중요하다. 따라서 소프트웨어 공학은 대규모 프로그램의 설계나 구현하는 방법에 대한 이론 뿐만 아니라 실제 소프트웨어 개발 프로젝트의 계획과 실행에 대한 연습이 병행되어야 합니다. 소프트웨어가 소수의 탁월한 능력을 갖춘 프로그래머에 의해 만들어지던 규모를 뛰어넘어 가면서 소프트웨어 개발의 성패는 그 집단의 소프트웨어 공학에 대한 숙련도에 크게 좌우되게 되었습니다.소프트웨어 개발 과정이 효율적으로 된다는 것은 비용과 기간에 대한 예측이 정확하고 개발에 필수 도구  방법론과 그의 실행이 숙달되어 어떤 과제가 주어지든 예측된 비용으로 정해진 기간 안에 좋은 품질의 소프트웨어를 생산하는 것을 말합니다따라서 소프트웨어 공학의 목표는 소프트웨어 개발 과정에 필요한 지식과 기술을 쌓고 연습하여 얼마는 능숙하게 활용하는 것이다.
단순한 프로그래밍의 차원을 넘어 소프트웨어 엔지니어링을 다루기 위하여 먼저 소프트웨어의 시스템 특설과 엔지니어링의 특성을 알아보고 소프트웨어 공학의 출현 배경과 정의 소프트웨어 공학을 다루는 문제문제를 해결하기 위한 접근 방법세부 지식 등을 설명하고 알아봐야  것입니다.

 

소프트웨어란

프로그램과 프로그램의 개발, 운영 보수에 필요한 관련 정보를 말합니다. 소프트웨어에 프로그램 이외의 문서와 정보를 포함시키는 이유는 이들 모두가 소프트웨어 생산 작업의 결과이기 때문입니다. 또한 프로그램은 프로그램 언어로 작성된 코드, 즉 정적인 표현을 말하지만 소프트웨어는 프로그램이 컴퓨터를 작동시킨다는 동적인 의미를 포함합니다.
 
소프트웨어는 종이나 자기 디스크와 같은 유형의 매체에 저장되지만 개념적이고 무형적입니다. 자동차나 건축은 그 생산물 구조가 코드 안에 숨겨져 있습니다. 이를 소프트웨어의 비가시성이라고 합니다. 소프트웨어의 다른 특성을 말하면 복잡성을 말할 수 있습니다. 소프트웨어는 개발 과정이 복잡할 뿐만 아니라 전산화 대상 업무, 소프트웨어 시스템 자체가 난해합니다. 소프트웨어는 수학이나 물리학에서 볼 수 있는 규칙적이고 정형적인 구조가 없습니다. 요구사항이나 환경의 변화에 따라 적절히 변형시킬 수 있는 특징도 가지고 있습니다.

소프트웨어는 적은 비용으로 복제할 수 있는 특징도 있습니다. 또한 언제나 테스트가 가능하고 변경이 가능합니다. 하드웨어나 그 밖의 공산품은 사용하면서 물리적인 변형에 의하여 못쓰게 되지만 소프트웨어는 변형에 의하여 소멸되지 않습니다.

 

참고자료 출처 : 새로쓴 소프트웨어 공학 (저자 : 최은만)

반응형