softwareengineering 5

[소프트웨어공학/Software Engineering] 형상 관리(CM: Configuration Management)란?

이번 글에서는 소프트웨어 공학에서 말하는 형상 관리에 대해 알아보고자 한다. 소프트웨어 시스템은 개발과 사용 중에 끊임없이 변경된다. 시스템 요구사항이 변경되고 시스템의 새로운 버저네서 이런 변경이 구현되어야 한다는 것이다. 하드웨어가 변경되면 소프트웨어가 변경되어야 한다. 경쟁사가 새로운 기능을 도입하면 그것에 대응해야 하는 것도 포함이다. 그렇기 때문에 대부분의 시스템은 버전들의 집합(set)으로 생각될 수 있으며, 각각의 버전들은 유지되고 관리되어야 한다.형상 관리형상 관리(CM : Configuration Management)는 변화하는 소프트웨어 시스템을 관리하기 위한 정책, 프로세스, 그리고 도구들과 관련된다. 각각의 시스템 버전에 어떤 변경들이 있고 컴포넌트 버전들이 포함되어 있는지를 놓치기..

[소프트웨어공학/Software Engineering] 애자일 소프트웨어 개발

이번 글에서는 애자일 소프트웨어 개발에 대해서 정리하고자 한다. 우선 다루는 주제는 아래와 같다.Agile development (애자일 개발)Extreme Programming (XP)Aglie vs. Plan-driven올바른 소프트웨어 프로세스 모델 선택애자일 개발배경소프트웨어 프로세스의 과도한 오버헤드에 대한 불만이 있었다.목표과도한 재작업 없이 변화하는 요구사항에 빠르게 대응하여 시스템 전달 시간을 줄이는 것을 목표로 둔다.아래는 Plan-driven과 Agile development 방식에 대한 도식화 그림이다.Agile 개발특징점진적 개발여러 버전/증분으로 개발소규모.빈번한 릴리즈반복적 접근고객 참여팀과의 지속적 협업문서화로 프로세스 오버헤드 감소적용성소규모, 한 장소에 모인 팀맞춤형 개발에..

[소프트웨어공학/Software Engineering] 소프트웨어 프로세스 (2)

이번 글에서는 지난 글에 이어서 프로세스 활동, 소프트웨어 명세, 소프트웨어 설계 및 구현 등에 대해 알아보자. 프로세스 활동기본 프로세스 활동Specification (명세)Design and implementation (설계 및 구현)Validation (Testing) (검증)Evolution (Maintenance) (진화)각 개발 프로세스마다 조작 방식이 다르다.waterfall model (폭포수 모델) : 순차적 조직incremental development (점진적 개발) : 활동이 상호 교차됨Software specification (소프트웨어 명세)시스템이 제공해야 할 서비스와 시스템 운영 및 개발의 제약 조건을 정립하는 과정이다.Requirements engineering proces..

[소프트웨어공학/Software Engineering] 소프트웨어 프로세스 (1)

지난 글에 이어서 소프트웨어 프로세스에 대해서 알아보자. The software process (소프트웨어 프로세스)소프트웨어 프로세스란 소프트웨어에서 시스템을 개발하는 데 필요한 구조화된 활동의 집합이다.다양한 소프트웨어 프로세스가 존재하지만 모두 아래의 내용을 포함하고 있다.Specification (명세)Design and Implementation (Development) (설계 및 구현)Validation (Testing) (검증)Evolution (Maintenance) (진화)소프트웨어 프로세스 모델특정 관점에서 본 프로세스의 표현으로 볼 수 있다.Plan-driven and agile processes (계획 주도 및 애자일 프로세스)Plan-driven processes모든 활동이 사전에..

[소프트웨어공학/Software Engineering] 소프트웨어란?

이번 글에서는 소프트웨어에 대해서 알아보고자 한다. 소프트웨어는 아래의 세 가지를 포함한다.computer programs (컴퓨터 프로그램)system documentation (시스템 문서)user documentation (사용자 문서)소프트웨어 제품은 다음과 같이 나뉜다.Generic (범용 소프트웨어)누구나 구매할 수 있도록 개발된 소프트웨어예) Excel, Word, CAD 소프트웨어 등Customized (맞춤형 소프트웨어)특정 고객의 요구에 맞게 개발된 소프트웨어예) 전자상거래 소프트웨어, 실시간 운송 추적 소프트웨어 등소프트웨어 명세는 범용 소프트웨어 개발자가, 맞춤형 소프트웨어는 고객이 결정한다.(Generic+Customized)예) ERP 소프트웨어그렇다면 소프트웨어 공학이란 무엇일..