메뉴 바로가기 본문 바로가기

TOP

스터디룸

Enjoy our interesting and informative contents.

소프트웨어 방법론_

  • 1887
  • 2018-02-01

 



 

 

 

안녕하세요맑음학습으로 2번째 인사를 드리게 되었습니다

매주 진행되는 맑음 학습에서는   이번주는 개발그룹에서  소프트웨어 공학에 대한 교육이 진행되었습니다.

 

 

 

 






Software engineering(소프트웨어 공학) 정의는 프로그램과 프로그램의 개발과 운영 그리고 후에 이루어지는 유지보수에 필요한 정보의 일체를 뜻합니다. 소프트웨어공학은 비가시성 구조가 외부에 노출되지 않고 코드에 내재되어 있는 특성을 가지고 있는데요. 정형적 구조가 없이 복잡하고 비규칙적이며 필요에 따라서 변경이 가능하다고 해요. 즉 수정 가능성이 있다는 것이죠!  사용자의 요구, 환경의 변화에 적절히 변형이 가능하기도 하며 복제성과 비마모성 그리고 제조가 아닌 개발로 이루어지는 것이 소프트웨어 공학이라고 정의를 내릴 수 있다고 합니다. 교육을 들었을 때는 처음 듣는 용어라 헷갈리는 부분이 있었는데 2차적으로 정리를 한 번 더 하니 복습효과가 확실히 있는 것 같아요. 



 

 

 

방법(Metgod)도구(Tool)절차(Procedures)를 소프트웨어 공학의 3요소라고 할 수 있다고 합니다.

우선, 방법은 프로젝트 계획 수립과 추정, 시스템과 소프트웨어의 분석, 자료구조, 프로그램 구조, 코딩, 테스트, 유지보수 등의 방법이구요.
도구는 소프트웨어개발을 지원하는 시스템 설정으로 소프트웨어를 개발하기 위한 도구를 뜻하죠. 예를 들면 에디터, 개발언어, 디자인 툴, UML도구 등을 들 수 있습니다. 더하여 방법과 도구를 결합하여 소프트웨어를 합리적이고 적시에 개발하도록 계획하는것이 절차(Procedures)입니다. 이 모든 요소가 잘 갖춰줘야 소프트웨어 최적화된 소프트웨어공학이 이루어진다고 볼 수 있겠죠? 




 

 

 

 

소프트웨어 공학의 과정에 대해서 알아보았습니다. 정의 과정엔 무엇을, 개발 과정에는 어떻게, 유지보수과정에서는 변경을 진행하는 것이 일반적인 과정이 된다고 하는데요. 정확한 개발발향을 제시하고, 설계된 내용을 프로그래밍 언어로 변환 그후 완성된 유지보수의 과정을 거치면 비로서 완성된 소프트웨어가 탄생한다고 합니다. 쉽게 이용하는 프로그램들속에 우리가 보지 못한 수많은 단계가 있다니 개발의 세계는 정말 무궁무진한 것 같습니다.

 

 

 

Enterprise application 정의 : 모범 사례(UX)를 반영하여 미리 정의된 수많은 비즈니스 프로세스를 근간으로 만든 소프트웨어


 

대표적인 산업어플리케이션으로는 애플,ORACLE, Microsft등의 기업이 있습니다. 초기 대규모 비즈니스 조직에서만 사용할 수 있었던 어플레키에션은 중, 소 규모의 비즈니스 조직으로 확대 재생산되면서 각 조직의 특성에 맞추어 여러가지 형태로 변형되었다고 합니다. :)


 

 

Native application 

특정 Platform이나 Device에서 사용 되도록 개발되었습니다. 운영 체제 기능 및 해당 플랫폼에 일반적으로 설치되는 기타 소프트웨어와 상호 작용하고 이를활용 할 수 있습니다. 장치별 하드웨어 및 소프트웨어를 사용할 수 있으며 이는 네이티브 앱이 GPS및 카메라와 같은 모바일 장치에서 사용할 수 있는 최신 기술을 활용 할 수 있고, 사용자에게 특화된 경험을 제공 할수 있는 것이 특징이라고 합니다.


Web application 

표준 Web 기술을 사용하여 Platform이나 Device에 상관 없이 사용 되도록 개발합니다. Client-Server 소프트웨어 어플리케이션이며 프로그램은 원격 서버에 저장되고 인터넷을 통해 웹 브라우저에서 실행합니다. 사용자에게 공통된 경험을 제공하는것이 특징이라 합니다.



Cloud application 

Native + Web application으로 클라우드 환경에서 실행되는 어플리케이션 프로그램입니다. Native application과 같이 응답 속도가 빠르고 오프라인에서도 작업이 가능하고, Web application처럼 특정 기기에 종속될 필요가 없고 온라인으로 쉽게 업데이트 가능합니다.  사용자가 통제 가능 하지만 사용자 컴퓨터나 저장장치의 저장공간을 사용할 수 없음

 

 

 

 시뮬레이션 : 계산 시뮬레이션사회 과학 시뮬레이션훈련 시뮬레이션(비행운전 등), 시뮬레이션 게임
 정보근로자 :  회계 소프트웨어프로젝트 관리데이터 관리문서 관리분석 소프트웨어그룹웨어 등
 기업관련 : 데이터베이스메일서버네트워크 관리메일서버보안관리 등
 컨텐츠액세스 : 웹브라우저미디어 플레이어프리젠테이션툴스크린 세이버 등
 컨텐츠개발 : 그래픽, 3D 그래픽애니메이션이미지 편집비디오 편집사운드 편집악보웹 제작 도구 등
 엔지니어링 : 하드웨어 엔지니어링, CAD, 해석 소프트웨어소프트웨어 공학기타 통합 개발 환경 등
교육 : 컴퓨터 지원 교육, e러닝학습 자습서 등콘텐츠관련 제작 소프트웨어를 이용해 제작편집된 이미지텍스트 



소프트웨어 개발 단계 및 개발 프로세스 모델


계획 -> 요구분석 -> 기획/설계 -> 구현 -> 테스트 -> 유지보수 등으로 소프트웨어 개발 단계 및 개발 프로세스 모델이 진행됩니다. 
계획은 클라이언트의 준비단계이며 구현단계는 개발 업체에서 진행하게 됩니다. 그 후 테스트와 유지보수는 유지보수 업체에서 진행되는 운영단계로 나뉘어지게 됩니다.



개발방법론의 역사와 발전


1. 1980년대 MIS(경영정보시스템)의 등장과 함께 발전.
2. 설계, 구현 단계에서 데이터를 우선적으로 개발, 문제 영역을 세분화하고 Top-Down 방식으로 전개, Case-Tool을사용하여 기존보다 빠른 결과물을 만듬.
3. 1990년대 유행을 시작한 객체지향을 바탕으로 함께 대두됨.
4. 분석과 설계 과정의 전 단계를 데이터 중심으로 개발함으로, 데이터의 동적 측면을 강화함.
5. 사용자의 요구사항에 대해 유연하게 대처, 프로젝트를 세분화하고 모든 단계를 유기적으로 협력시켜 전체 프로세스의 방향성을 유지하고 재사용성을 강화




 

Model View Controller


사용자가 Controller를 조작하면 Controller Model을 통해서 Data를 가져오고 그 정보를 바탕으로 시각적인 표현을 담당하는 View를 제어하여 

사용자에게 결과물을 전달하는 일련의 프로세스 제어에 바탕을 둔 방법론 입니다









 

 

 

URL 복사