반응형 정보처리기사 준비/실기 공부15 개발 프로젝트 일정 계획 프로젝트 일정(Scheduling) 계획 프로젝트 일정 계획은 프로젝트의 프로세스를 이루는 소작업을 파악하고 예측된 노력을 각 소작업에 분배하여 소작업의 순서와 일정을 정하는 것입니다. 프로젝트 일정 계획에 사용되는 기능은 WBS, PERT/CPM, 간트 차트 등이 있습니다. WBS (Work Breakdown Structure, 업무 분류 구조) 개발 프로젝트를 여러 개의 작은 관리 단위로 분할하여 계층적으로 기술한 업무 구조입니다. 프로젝트 관리학에서 "프로젝트 팀에 의해 수행되는 작업의 분해된 분류 체계"로 정의됩니다. 프로젝트의 전체 범위를 조직화하고 정의하는 역할을 합니다. 작업 패키지로 분해됩니다. 계층 구조의 결과물 지향적 특성은 내부 및 외부 결과물을 모두 포함합니다. PERT (Progr.. 2023. 7. 9. 소프트웨어 비용 산정 기법 - 하향식, 상향식 / 수학적 산정 기법 소프트웨어 비용 산정 개발에 소요되는 인원, 자원, 기간 등으로 소프트웨어의 규모를 확인하여 개발 계획 수립에 필요한 비용을 산정하는 것입니다. 소프트웨어 비용을 너무 높게 산정할 경우 예산 낭비와 일의 효율성 저하를 초래할 수 있고, 너무 낮게 산정할 경우 개발자의 부담이 가증되고 품질 문제가 발생할 수 있습니다. 소프트웨어 비용 산정 기법에는 하향식 비용 산정 기법과 상향식 비용 산정 기법이 있습니다. 소프트웨어 비용 결정 요소 요소 내용 프로젝트 요소 - 제품 복잡도 : 소프트웨어의 종류에 따라 발생할 수 있는 문제점들의 난이도 - 시스템 크기 : 소프트웨어의 규모에 따라 개발해야 할 시스템의 크기 - 요구되는 신뢰도 : 일정 기간 내 주어진 조건하에서 프로그램이 필요한 기능을 수행하는 정도 자원 .. 2023. 7. 9. 소프트웨어 공학의 발전적 추세 - 재사용, 재공학 (Reuse, Reengineering) 소프트웨어 재사용 (Software Reuse) 소프트웨어 재사용은 이미 개발되어 인정받은 소프트웨어를 다른 소프트웨어 개발이나 유지에 사용하는 것입니다. 소프트웨어 개발의 품질과 생산성을 높이기 위한 방법입니다. 기존에 개발된 소프트웨어와 경험, 지식 등을 새로운 소프트웨어에 적용합니다. 소프트웨어 재사용의 이점 개발 시간과 자원을 절약할 수 있습니다. 기존에 개발한 소프트웨어의 일부를 재사용함으로써 새로운 소프트웨어를 빠르게 개발할 수 있습니다. 품질을 향상시킬 수 있습니다. 재사용된 소프트웨어는 이전에 검증되었으며 안정성이 입증되었기 때문에 높은 품질을 가질 가능성이 높습니다. 비용을 절감할 수 있습니다. 재사용된 소프트웨어를 활용함으로써 개발 비용을 줄일 수 있습니다. 리스크를 감소시킬 수 있습니.. 2023. 7. 9. 소프트웨어 개발 방법론의 정의와 종류 (구조적, 정보공학, 객체지향 등) 소프트웨어 개발 방법론 소프트웨어 개발, 유지보수 등에 필요한 여러 가지 일들의 수행 방법과 이러한 일들을 효율적으로 수행하려는 과정에서 필요한 각종 기법 및 도구를 체계적으로 정리하여 표준화한 것입니다. 소프트웨어 개발 방법론의 목적은 소프트웨어 생산성과 품질 향상에 있습니다. 주요 소프트웨어 개발 방법론의 종류 구조적 방법론 정보공학 방법론 객체지향 방법론 컴포넌트 기반 방법론 제품 계열 방법론 애자일 방법론 * 아래부터는 각종 개발 방법론에 대해 알아보겠습니다. 구조적 방법론 구조적 방법론은 정형화된 분석 절차에 따라 사용자 요구사항을 파악하여 문서화하는 처리 중심의 방법론입니다. 1960년대까지 가장 많이 적용되었던 소프트웨어 개발 방법론 입니다. 쉬운 이해 및 검증이 가능한 프로그램 코드를 생성.. 2023. 7. 9. 패키지 다이어그램 (Package Diagram) 패키지 다이어그램이란? 유스케이스나 클래스 등의 요소들을 그룹화한 패키지 간의 의존 관계를 표현한 것입니다. 패키지는 또 다른 패키지의 요소가 될 수 있습니다. 대규모 시스템에서 주요 요소 간의 종속성을 파악하는 데 사용합니다. 클래스 다이어그램과 같은 정적 모델링의 하나로, 관련있는 객체들을 하나로 묶어 클래스보다 상위 개념인 패키지로 추상화한 것입니다. 시스템의 구조를 간략하게 표현할 수 있고 각 패키지 간의 의존 관계를 명확하게 파악할 수 있어서 불필요한 의존 관계를 제시하거나 간략화함으로써 시스템의 복잡도를 낮추는데 사용할 수 있습니다. 구성요소 구성 요소 표현 방법 의미 패키지 (Package) - 객체를 그룹화한 것 - 단순 표기법 : 패키지 안에 패키지 이름만 표현한 것 - 확장 표기법 : .. 2023. 7. 9. 시퀀스(Sequence), 커뮤니케이션(Communication), 상태(State) 다이어그램 동적 모델링 시스템의 내부 구성 요소들의 상태 변화 과정과 과정에서 발생하는 상호 작용을 표현한 것입니다. 시스템 내부 구성 요소들 간에 이루어지는 동작이라는 관점에서 표현합니다. 시스템이 실행될 때 구성 요소들 간의 메시지 호출, 즉 오퍼레이션을 통한 상호 작용에 초점을 둡니다. 동적 모델링의 종류에는 시퀀스, 커뮤니케이션, 상태 다이어그램이 있습니다. 시퀀스 (Sequence) 다이어그램 시스템이나 객체들이 메시지를 주고받으며 상호 작용하는 과정을 그림으로 표현한 것입니다. 시스템이나 객체들의 상호 작용 과정에서 주고받는 메시지를 표현합니다. 각 동작에 참여하는 시스템이나 객체들의 수행 기간을 확인할 수 있습니다. 클래스 내부에 있는 객체들을 기본 단위로 하여 그들의 상호 작용을 표현합니다. 시퀀스 .. 2023. 7. 2. 클래스 (Class) 다이어그램 정적 모델링 사용자가 요구한 기능을 구현하는데 필요한 자료들의 논리적인 구조를 표현한 것 시스템에 의해 처리되거나 생성될 객체들 사이에 어떤 관련이 있는지를 구조적인 관점(View)에서 표현 객체(Object)들을 클래스로 추상화하여 표현 UML을 이용한 정적 모델링의 대표적인 것이 클래스 다이어그램입니다. 클래스 다이어그램 클래스와 클래스가 가지는 속성, 클래스 사이의 관계를 표현한 것 시스템을 구성하는 요소에 대해 이해할 수 있는 구조적 다이어그램 시스템 구성 요소를 문서화하는 데 사용 클래스 다이어그램의 구성 요소 구성 요소 표현 방법 내용 클래스 - 각각의 객체들이 갖는 속성과 오퍼레이션(동작)을 표현한 것 - 일반적으로 3개의 구획(Compartment)으로 나눠 클래스의 이름, 속성, 오퍼레이.. 2023. 7. 2. 활동 (Activity) 다이어그램 활동 (Activity) 다이어그램 사용자의 관점에서 시스템이 수행하는 기능을 처리 흐름에 따라 순서대로 표현한 것입니다. 하나의 유스케이스 안에서 혹은 유스케이스 사이에 발생하는 복잡한 처리의 흐름을 명확하게 표현할 수 있습니다. 자료 흐름도와 유사합니다. 구성 요소 구성 요소 표현 방법 내용 액션 (Action) / 액티비티 (Activity) - 액션 - 액티비티 - 액션: 더 이상 분해할 수 없는 단일 작업 - 액티비티: 몇 개의 액션으로 분리될 수 있는 작업 시작 노드 액션이나 액티비티가 시작됨을 표현한 것 종료 노드 액티비티 안의 모든 흐름이 종료됨을 표현한 것 조건 (판단) 노드 - 조건에 따라 제어의 흐름이 분리됨을 표현한 것 - 들어오는 제어 흐름은 한 개이고 나가는 제어흐름은 여러 개임.. 2023. 7. 2. 유스케이스 (Use Case) 다이어그램 기능 모델링 사용자의 요구사항을 분석하여 개발된 시스템이 갖춰야 할 기능을 정리한 후 사용자와 함께 정리된 내용을 공유하기 위해 그림으로 표현하는 것 개발될 시스템의 전반적인 형태를 기능에 초점을 맞춰 표현합니다. 기능 모델링의 종류 유스케이스 (Use Case) 다이어그램 액티비티 (Activity) 다이어그램 유스케이스 (Use Case) 다이어그램 사용자와 다른 외부 시스템들이 개발될 시스템을 이용해 수행할 수 있는 기능을 사용자의 관점에서 표현한 것 외부 요소와 시스템 간의 상호 작용을 확인할 수 있습니다. 사용자의 요구사항을 분석하기 위한 도구로 사용됩니다. 시스템의 범위를 파악할 수 있습니다. 유스케이스 다이어그램의 구성 요소 구성 요소 표현 방법 내용 시스템 (System) / 시스템 범위 .. 2023. 7. 2. UML 이란? - 관계와 다이어그램 UML (Unified Modeling Language) UML은 시스템 분석, 설계, 구현 등 시스템 개발 과정에서 개발자와 고객 또는 개발자 상호 간에 의사소통이 원활하게 이루어지도록 표준화한 대표적인 객체지향 모델링 언어입니다. Rumbaugh(OMT), Booch, Jacobson 등의 객체지향 방법론의 장점을 통합하였으며 OMG (Object Management Group)에서 표준으로 지정하였습니다. UML의 구성요소 - 사물, 관계, 다이어그램 사물 (Things) 사물은 다이어그램 안에서 관계가 형성될 수 있는 대상들을 의마합니다. 모델을 구성하는 가장 중요한 기본 요소 입니다. * 사물의 종류 사물 내용 구조 사물 (Structural Things) - 시스템의 개념적, 물리적 요소를 표.. 2023. 7. 2. 요구사항 분석 CASE-자동화 도구와 HIPO 요구사항 분석용 CASE (자동화 도구) 요구사항을 자동으로 분석하고, 명세서를 기술하도록 개발된 도구입니다. SADT - 시스템 정의, 소프트웨어 요구사항 분석, 시스템/소프트웨어 설계를 위한 도구 - SoftTech 사에서 개발 - 구조적 요구 분석을 하기 위해 블록 다이어그램을 채택한 자동화 도구 SREM = RSL/REVS - TRW 사가 실시간 처리 소프트웨어 시스템에서 요구사항을 명확히 기술하도록 할 목적으로 개발한 도구 - RSL과 REVS를 사용하는 자동화 도구 * RSL: 요소, 속성, 관계, 구조들을 기술하는 언어 * REVS: RSL로 기술된 요구사항들을 자동으로 분석하여 명세서를 출력하는 분석기 PSL/PSA - PSL과 PSA를 사용하는 자동화 도구 - 미시간 대학에서 개발 * P.. 2023. 7. 2. 요구사항 분석 기법, 자료흐름도(DFD)와 기호, 자료사전(DD) 요구사항 분석을 소프트웨어 개발의 실제적인 첫 단계로, 개발 대상에 대한 사용자의 요구사항을 이해하고 문서화(명세화)하는 활동을 의미합니다. 사용자 요구의 타당성을 조사하고 비용과 일정에 대한 제약을 설정합니다. 사용자의 요구를 정확하게 추출하여 목표를 정합니다. 구조적 분석 기법 자료의 흐름과 처리를 중심으로 하는 요구사항 분석 방법입니다. 도형 중심의 분석용 도구와 분석 절차를 이용하여 사용자의 요구사항을 파악하고 문서화합니다. 하향식 방법(위에서 아래로 단계별로 모델링)을 사용하여 시스템을 세분화할 수 있습니다. 분석의 중복을 배제할 수 있습니다. 주요 구조적 분석 기법 도구 자료 흐름도 (DFD) 자료 사전 (DD) 소단위 명세서 (Mini-Spec.) 개체 관계도 (ERD) 상태 전이도 (STD.. 2023. 7. 2. 이전 1 2 다음 반응형