본문 바로가기

App/소프트웨어공학5

[소프트웨어공학] 05 설계 05 설계01 설계의 이해사용자의 요구사항에 따라 요구분석명세서가 만들어지면 이를 참조해 개발팀에서 설계서를 작성한 뒤 이를 기반으로 구현 작업을 진행한다.설계(개발자들이 읽기 편하게)설계서 - 요구분석명세서의 내용 모두 포함유지보수 용이02 설계의 원리분할과 정복정복 - 어느정도 수준까지 분할했다면 말단에 있는 것부터 하나씩 개발분할 - 세분화해서 나누는 작업추상화 : 자신에게 필요한 특징만 표현한 것과정 추상화 : 주어진 문제에 대해 프로그래밍하기 전에 상세 부분은 생략하고 전체흐름만 파악할 수 있는 알고리즘 형태로 작성하는 것데이터 추상화 : 데이터와 데이터 구조를 감추는 것→ 사용자에게는 꼭 필요한 기능만 사용할 수 있게 개방한 구조클래스 : 데이터와 함수를 하나로 묶어 캡슐화한 구조로 사용자는 .. 2024. 4. 21.
[소프트웨어공학] 04 요구분석 04 요구분석01 요구사항사용자와 개발자가 합의한 범위 내에서 사용자가 필요로 하는 기능, 시스템이 제공하는 기능요구와 품질과 같은 비기능 요구요구사항이 정확히 무엇인지 파악하는 작업 - 요구분석 단계에서 이루어짐 02 요구분석의 이해요구분석의 정의와 목적요구분석 - 소프트 웨어 개발의 생명주기의 첫 단계로 현재 상태를 파악하고 사용자가 잠재적 또는 명시적으로 원하는 요구를 파악한 후 소프트웨어에 반영할 사용자 요구를 결정하는 것요구분석의 어려움문제 영역에 대한 분석가의 이해력 부족사용자와 분석가의 의사소통 문제사용자의 계속되는 요구사항 추가사용자의 모호한 요구사항다양한 사용자의 다양한 요구요구사항 수집자료수집인터뷰 : 먼저 자료 수집한 이후 인터뷰설문조사03 요구분석 절차와 요구사항 종류요구분석 절차와.. 2024. 4. 21.
[소프트웨어공학] 03 계획 03 계획01 계획의 이해소프트웨어 개발의 성패도 비용, 기간, 인력과 같은 자원을 토대로 초기에 얼마나 계획을 잘 세우느냐에 달려있다 02 문제 정의문제가 무엇인지 정의 03 타당성 분석경제적 타당성 : 경영자 입장에서 의사 결정을 하는데 매우 중요한 요소기술적 타당성 : 요구하는 기술을 회사가 가지고 있는지법적 타당성 : 오픈소스 - 원시 코드가 개방되어있다는 것이지 아무렇게나 가져다 사용할 수 있는 것은 아니다. 오픈소스도 상용 소프트웨어처럼 저작권, 특허권과 같은 지식 재산권으로 보호받는 소프트웨어이다.04 개발 비용 산정개발 비용 산정의 어려움개발 비용에 영향을 주는 요소프로그래머 자질소프트웨어 복잡도소프트웨어 크기가용시간요구되는 신뢰도 수준기술수준05 비용산정기법 1 : 하향식 산정 기법전문가.. 2024. 4. 21.
[소프트웨어공학] 02 UML 02 UML01 UML의 이해 (Unified Modeling Language)시스템이 상호작용하는 측면, 시스템 전체 구조 측면, 컴포넌트 간의 관계 등을 시각적으로 볼 수 있게 나타낸 도면 02 유스케이스 다이어그램액터액터의 종류사용자 액터 : 시스템을 사용하는 사람(역할)유스케이스와의 관계는 → 화살표 이용해 표현, 액터에서 유스케이스 방향으로시스템 액터 : 해당 프로젝트의 개발 범위에는 속하지 않지만 데이터를 주고 받는 등 서로 연동되는 또 다른 시스템주요 액터 : 시스템에게 작업의 실행을 요구하는 능동적 입장의 액터보조 액터 : 유스케이스로부터 요청을 받거나 메세지를 전달받아 수동적으로 작업프록시 액터 : 액터와 시스템의 중간 위치에서 무언가를 대신해주는 액터, 접근 권한이 부여된 경우에만 프록.. 2024. 4. 21.
[소프트웨어공학] 01 소프트웨어 공학과 개발 프로세스 01 소프트웨어공학과 개발 프로세스01 소프트웨어의 이해소프트웨어의 정의프로그램을 비롯해 개발 과정에서 생성되는 모든 산출물과 각 단계에서 만들어지는 문서와 사용자 매뉴얼등 모두 포함소프트웨어의 특징제조가 아닌 개발소모가 아닌 품질저하 : 닳지 않는다, 새기능 추가등으로 인한 부작용으로 실패율이 증가할수는 있다소프트웨어 개발의 어려움개발과정이 복잡하고, 참여인력이 많으며, 개발기간이 김소프트웨어 공학소프트웨어 개발 생명주기 : 계획 → 분석 → 설계 → 구현 → 테스트 → 유지보수품질 좋은 소프트웨어를 경제적으로 개발하기 위해 계획을 세우고, 개발하며, 유지 및 관리 하는 전 과정에서 공학, 과학 및 수학적 원리와 방법을 적용해 필요한 이론과 기술 및 도구들에 관해 연구하는 학문소프트웨어를 개발하는 과정.. 2024. 4. 10.