목록소프트웨어공학 (28)
투케이2K
[학습 구분] 과목 : 소프트웨어 공학 [설 명] 1. 소프트웨어 공학 모듈화 란 ? 소프트웨어를 각 기능 별로 분할 하는 것을 의미합니다 2. 소프트웨어 공학 모듈 이란 ? 각 기능 별로 분할한 것을 모듈 이라고 합니다 3. 모듈화를 수행하면 소프트웨어의 복잡도가 감소하고, 변경이 쉬우며, 프로그램 구현에 용이 합니다 4. 모듈의 속성 : - 입/출력 요소 : 자료를 받아들이고, 자료를 내보내는 요소 - 기능 요소 : 입력을 출력으로 바꾸는 요소 - 기관 요소 : 기능을 수행하기 위한 절차상의 코드 또는 논리 - 내부 자료 요소 : 모듈 자체의 작업장 , 모듈이 스스로 참조하는 자료 5. 모듈의 구성 : - 호출 모듈 : 다른 모듈을 호출하는 모듈 - 피호출 모듈 : 다른 모듈에 의해 호출되는 ..
[학습 구분] 과목 : 소프트웨어 공학 [설 명] 1. 소프트웨어 공학 검사 란 ? 소프트웨어 품질 보증 활동 중 하나로, 소프트웨어에 대한 요구 사항의 만족도 및 예상 결과와 실제 결과의 차이점을 여러 방법을 사용해 검사하고 평가하는 일련의 과정을 의미합니다 2. 소프트웨어 공학 검사의 목적은 소프트웨어를 구성하는 요소들이 조화를 잘 이루며, 정상적으로 동작하고 성능이 요구에 맞는지 확인하기 위해 실행합니다 3. 소프트웨어 공학 검사의 목적을 달성하기 위한 규칙 (Glen Myers) : - 오류를 찾기 위해 프로그램을 실행시키는 절차를 검사라 한다 - 오류 발견 확률을 높이기 위해 훌륭한 검사 사례 (Test Case) 를 이용한다 - 성공적인 검사는 아직 발견되지 않은 오류를 찾아내는 것이다..
[학습 구분] 과목 : 소프트웨어 공학 [설 명] 1. 소프트웨어 공학 검사 전략 이란 ? 설계된 검사 사례 대로 테스트를 수행하는 것으로 프로그램 안정성 향상 및 빠른 이슈 대처를 하기 위해 사용 됩니다 2. 소프트웨어 검사 순서 : - 단위 검사 (코드) : 프로그램 기본 단위인 모듈 수준에서 검사 시작 - 통합 검사 (설계) : 단위 검사 후 모듈을 결합해 전체 시스템에 대해 검사 - 검증 검사 (요구 사항) : 사용자의 요구사항을 충족시키는가를 검사 - 시스템 검사 : 개발된 소프트웨어가 시스템에서 완벽하게 수행되는지 검사 3. 단위 검사 : - 코딩이 완료 된 후 소프트웨어 설계의 최소 단위인 모듈에 초점을 맞춰서 검사 - 인터페이스 , 외부적 I/O , 자료 구조 , 독립적 기초 경로 ..
[학습 구분] 과목 : 소프트웨어 공학 [설 명] 1. 소프트웨어 재공학 이란 ? 새로운 요구에 맞게 기존 시스템을 이용하여, 보다 나은 시스템을 구축하고 새로운 기능을 추가해 소프트웨어 성능을 향상 시키는 것 입니다 2. 소프트웨어 재공학은 자동화된 도구를 사용해 소프트웨어를 분석하고 수정하는 과정을 포함합니다 3. 소프트웨어 재공학은 유지보수 생산성 향상을 통해 소프트웨어 위기를 해결하는 방법입니다 4. 소프트웨어 재공학 등장 : - 기존 소프트웨어가 노후되어 새로운 소프트웨어로 대체 해야할 경우 현재 시스템보다 좋은 시스템을 만들 것이란 보장이 없다 - 새로운 소프트웨어를 개발해도 기존 시스템과 100 퍼센트 호환이 이루어 진다는 보장이 없다 5. 소프트웨어 재공학 목표 : - 소프트웨어 재..
[학습 구분] 과목 : 소프트웨어 공학 [설 명] 1. 소프트웨어 재사용 이란 ? 이미 개발되어 있는 소프트웨어 전체 및 일부분을 다른 소프트웨어 개발, 유지 보수에 사용하는 것 입니다 2. 소프트웨어 재사용은 개발의 품질과 생산성을 높이기 위한 방법으로, 기존에 개발된 소프트웨, 경험, 지식 등을 새로운 소프트웨어에 적용합니다 >> 자바 예시 : 클래스화, 모듈화 등으로 코드 재사용성을 높임 3. 소프트웨어 재사용은 모듈의 크기가 작고 일반적인 설계일수록 재사용률이 높습니다 4. 소프트웨어 재사용 장점 : - 개발 시간과 비용을 단축 시킨다 - 소프트웨어 품질을 향상 시킨다 - 소프트웨어 개발 생산성을 향상 시킨다 - 프로젝트 실패 위험을 감소 시킨다 - 시스템 구축 방법에 대한 지식을 공유 및..
[학습 구분] 과목 : 소프트웨어공학 [설 명] 1. 스트레스 테스트 란 시스템이나 시스템 구성 요소 (component) 또는 소프트웨어 프로그램에 다양한 스트레스를 가할 때에도 안정적으로 작동하는지를 확인하는 시험입니다 2. 스트레스 테스트 는 짧은 시간 동안에 많은 사용자가 동시에 접속(access)하는 것과 같은 스트레스에 시스템이 안정적으로 작동하는지를 확인하는 과정입니다 [참고 사이트] https://terms.naver.com/entry.naver?docId=859662&cid=50371&categoryId=50371 스트레스 시험 시스템이나 시스템 구성 요소 (component) 또는 소프트웨어 프로그램에 다양한 스트레스를 가할 때에도 안정적으로 작동하는지를 확인하는 ..
[학습 구분] 과목 : 소프트웨어공학 [설 명] 1. 스토리보드 란 서비스 개발을 위한 협업 도구로 다양한 변수를 고려해 화면을 구성하고, 각 화면의 동작과 전환을 작성하는 기획문서입니다 2. 스토리보드 작성 구성 요소 : - 작업 이력 : 스토리보드 맨 앞장에 업데이트한 내용과 반영 페이지, 날짜, 수정한 사람에 대해 서술합니다 - 목차 : 목차에 해당 슬라이드를 하이퍼링크로 연결해 쉽게 페이지에 접근하도록 설정 - 개요 : 개발하려는 시스템 혹은 서비스에 대해 간락히 명시 - 화면 ID : 각 UI 화면 정의와 동작 흐름도를 보여주는 페이지에 해당 스토리보드의 ID 를 붙입니다 - 메뉴구조도 : 서비스가 제공하는 메뉴 혹은 기능을 한장 정도로 간략히 정리해 스토리보..
[학습 구분] 과목 : 소프트웨어공학 [설 명] 1. PERT 란 계획(혹은 사업) 평가 및 재검토 기술이라고 불리며, 프로젝트 관리를 분석하거나, 주어진 완성 프로젝트를 포함한 일을 묘사하는 데 쓰이는 모델입니다 2. PERT 는 주어진 프로젝트가 얼마나 완성되었는지 분석하는 방법으로, 특히 각각의 작업에 필요한 시간을 계산함으로써 모든 프로젝트를 끝내는 최소시간이 어느 정도인지 알 수 있습니다 3. PERT 는 모델은 1958년 부즈 엘렌 해밀턴과 은밀히 계약한 펜타곤의 특수프로그램인 폴라리스 잠수함 발사 탄도미사일 프로젝트의 한 부문으로 개발되었습니다 4. PERT 는 1950년대에 발전되어, 일정의 단순화와 커다랗고 복잡한 문제에 사용되었습니다 5. PERT..
[학습 구분] 과목 : 소프트웨어공학 [설 명] 1. 간트차트 란 프로젝트 일정관리를 위한 바(bar)형태의 도구로서, 각 업무 별로 일정의 시작과 끝을 그래픽으로 표시하여 전체 일정을 한눈에 확인할 수 있는 차트 입니다 2. 간트차트 장점 : - 프로젝트 타임라인의 전체상을 파악할 수 있습니다 (전체상을 파악할 수 있으므로 고위 경영진이나 고객에게 간략한 개요를 설명할 때 유용합니다) - 작업이 서로 어떻게 연관되어 있는지 확인할 수 있습니다 (각 작업에 시작일과 마감일을 추가하고 종속 관계로 연결하면 각각의 작업이 다른 작업에 어떻게 영향을 미치는지 시각화할 수 있습니다) - 팀 리소스 관리를 개선할 수 있습니다 (모든 업무는 순차적으로 진행되기 때문에 팀원이나 팀이 ..
[학습 구분] 과목 : 소프트웨어공학 [설 명] 1. 절차지향 이란, 물이 위에서 아래로 흐르는 것처럼 순차적인 처리가 중요시 되며 프로그램 전체가 유기적으로 연결되도록 만드는 프로그래밍 기법입니다 - 객체 지향 이란 객체 지향 프로그래밍은 객체들 간의 상호작용을 통해 프로그램을 만드는 것 입니다 2. 절차 지향 모델링은 프로그램을 기능중심으로 어떤 기능을 어떤 순서로 처리하는가에 초점을 맞춥니다 3. 절차지향 은 체지향 언어를 사용하는 것에 비해 더 빨리 처리 되어 시간적으로 유리합니다 4. 절차지향 장점 및 단점 : - 절차지향은 컴퓨터의 처리구조와 유사해 실행속도가 빠릅니다 - 절차지향 프로그래밍은 유지보수가 어렵습니다 - 절차지향 프로그래밍은 코드의 ..
[학습 구분] 과목 : 소프트웨어공학 [설 명] 1. 객체 지향 이란 객체 지향 프로그래밍은 프로그램 구현에 필요한 객체를 파악하고 각각의 객체들의 역할이 무엇인지를 정의하여 객체들 간의 상호작용을 통해 프로그램을 만드는 것을 말합니다 2. 객체 지향 모델링은 기능이 아닌 객체가 중심이 되며 "누가 어떤 일을 할 것인가?" 가를 핵심에 둡니다 (객체를 도출하고 각각의 역할을 정의해 나감) - 절차 지향 모델링은 프로그램을 기능중심으로 어떤 기능을 어떤 순서로 처리하는가에 초점을 맞춥니다 3. 객체 지향 프로그래밍 특징 : - 추상화(abstraction) : 객체들의 공통적인 특징(기능, 속성)을 도출하는 것 입니다 - 캡슐화(encapsulation) : 실제..
[학습 구분] 과목 : 소프트웨어공학 [설 명] 1. 애자일 방법론 이란 일정한 주기의 계획을 잡고 지속적으로 검토, 고객으로부터 받는 피드백을 반영하는 과정을 반복하며 개발을 해나가는 과정입니다 - 폭포수 모델은 처음부터 끝까지 계획을 수립하고 개발을 수행 (중간 피드백 반영 없음) 2. 애자일 (Agile) 영어로 [민첩한] 의미를 가지고 있으며, 개발과 함께 즉시 고객의 피드백을 받아서 유동적으로 개발 , 테스트를 수행하는 방법입니다 3. 애자일 방법론 특징 : - 고객과의 피드백 중시 - 소프트웨어가 잘 실행되는데 가치를 둠 - 절차와 도구보다는 개인과 소통을 중시함 - 작업 계획을 짧게 세워 요구 변화에 유연하고 신속하게 대응함 - 프로젝트의..
[학습 구분] 과목 : 소프트웨어공학 [설 명] 1. 소프트웨어 공학 이란 소프트웨어의 개발, 운용, 유지보수 등의 생명 주기 전반을 체계적이고 서술적이며 정량적으로 다루는 학문입니다 2. 소프트웨어 공학은 공학을 소프트웨어에 적용한 것입니다 - 공학 : 공업 분야의 응용과학 기술을 연구하는 학문 또는 과학적, 경제학적, 사회적 원리와 실용적 지식을 활용하여 새로운 제품, 도구, 건축물 · 조형물, 시설 등을 만드는 것에 관한 학문 3. 소프트웨어 공학 용어가 처음 나타난 곳은 1968년 나토 소프트웨어 공학 학회로, 당시에는 소프트웨어 위기에 관해 사람들이 주의를 기울여 생각할 것을 장려하기 위해서 불려지기 시작했습니다 4. 소프트웨어 공학 분야 : -..
[학습 구분] 과목 : 소프트웨어공학 [설 명] 1. 유닛 테스트는 프로그래밍에서 소스 코드의 특정 모듈이 의도된 대로 정확히 작동하는지 검증하는 절차입니다 2. 유닛 테스트는 모든 함수와 메소드에 대한 테스트 케이스(Test case)를 작성하는 절차입니다 3. 유닛 테스트는 필요한 부분만 테스트를 수행할 수 있으므로 전체 빌드 후 테스트를 수행하는 방법 보다 시간을 단축할 수 있습니다 4. 유닛 단위는 메소드 및 클래스 등이 될 수 있습니다 5. 전체 프로젝트 시간이 짧은 경우 유닛 테스트를 생략하는 경우가 많지만 추후 리팩토링을 고려해서 유닛 테스트를 진행하면서 개발하는 것이 좋습니다 [유닛 테스트 적용 참고 사이트] https://blog.naver.co..
[학습 구분] 과목 : 소프트웨어공학 [설 명] [WBS (Work Breakdown Structure) 란?] 1. WBS 란 프로젝트 팀이 프로젝트 목표를 달성하고 필요한 인도물을 산출하기 위해 실행하는 작업을 인도물 중심의 계층 구조로 세분해 놓은 것입니다 2. WBS 는 종속적인 관계를 바탕으로 프로젝트 결과물을 여러 계층으로 나눠 시각적으로 분류한 것입니다 [WBS (Work Breakdown Structure) 종류] 1. 하향식 WBS(Top-down WBS) - 프로젝트의 전체 범위를 구성하고, 하위수준으로 내려가면서 세부 작업에 대해 상세하게 정의한 것입니다 - 대규모 프로젝트에서 WBS 도출이 용이하지만, 세부 작업이 누락될 수 있습니다 ..
/* =========================== */ [ 소프트웨어 공학 ] /* =========================== */ [설 명] [중앙 집중형 팀 이란?] - 중앙 집중형 팀 이란 한 관리자가 의사 결정을 하고 팀 구성원들은 그 결정을 따르는 구성 방식으로, 책임 프로그래머 팀 구성이라고도합니다 - 중앙 집중형 팀 이란 조직적으로 잘 구성된 중앙 집중식 팀 구조입니다 - 중앙 집중형 팀에서 팀 리더의 개인적 능력이 가장 중요합니다 - 중앙 집중형 팀에서 프로젝트 팀의 목표 설정 및 의사결정 권한이 팀 리더에게 주어집니다 - 중앙 집중형 팀은 한 사람에 의해 통제할 수 있는 비교적 소규모 프로젝트에 적합 합니다 - 중앙 집중형 팀은 책임 프로그래머에 따라 ..
/* =========================== */ [ 소프트웨어 공학 ] /* =========================== */ [설 명] [바람직한 소프트웨어 설계 지침 이란?] - 바람직한 소프트웨어 설계의 기준은 모듈 내부의 응집도는 강하게 하고, 모듈간의 결합도는 약하게 하는 것입니다 - 바람직한 소프트웨어 설계를 하기 위해서는 적당한 모듈의 크기를 유지해야합니다 - 바람직한 소프트웨어 설계를 하기 위해서는 모듈 간의 접속 관계를 분석하여 복잡도와 중복을 줄여야합니다 - 바람직한 소프트웨어 설계를 하기 위해서는 모듈 간의 효과적인 제어를 위해 설계에서 계층적 자료 조직이 제시되어야합니다 /* =========================== */
/* =========================== */ [ 소프트웨어 공학 ] /* =========================== */ [설 명] [하향식 통합 검사 란?] - 하향식 통합 검사는 시스템 구조의 위층에 있는 모듈부터 아래층의 모듈로 내려오면서 통합해 검사하는 방식입니다 - 하향식 통합 검사는 일반적으로 스터브를 드라이버보다 쉽게 작성할 수 있습니다 - 하향식 통합 검사는 상위층에서 검사 사례를 쓰기 어렵습니다 - 하향식 통합 검사는 검사 초기에 시스템 구조를 사용자에게 보여줄 수 있습니다 /* =========================== */
/* =========================== */ [ 소프트웨어 공학 ] /* =========================== */ [설 명] [HIPO 란?] - HIPO 란 하향식 소프트웨어 개발을 위한 문서화 도구입니다 - HIPO 는 구조도, 개요 도표 집합, 상세 도표 집합으로 구성됩니다 - HIPO 는 기능과 자료의 의존 관계를 동시에 표현할 수 있습니다 - HIPO 는 한눈에 보기 쉽고, 이해하기 쉽습니다 - HIPO 차트 종류에는 가시적 도표, 총체적 도표, 세부적 도표가 있습니다 [HIPO 가시적 도표 예시] - 가시적 도표는 도식 목차라고도 불립니다 (일반적으로 트리 형태로 표현) /* ==========================..
/* =========================== */ [ 소프트웨어 공학 ] /* =========================== */ [설 명] [소프트웨어 시스템 명세서 란?] - 소프트웨어 요구사항 명세서란 소프트웨어 개발 프로세스의 시작인 소프트웨어의 요구사항을 분석하고 정의하는 단계에서 작성되는 최종 산출물입니다 - 명세서의 유지보수란 명세서를 항상 최신의 상태로 만드는 것을 말합니다 - 소프트웨어는 계속 수정 보완되기 때문에 명세서도 따라서 보완되지 않으면 일관성을 유지하기 어렵습니다 - 최신의 명세서는 필요한 경우 즉시 사용자에게 배포해야합니다 /* =========================== */