Computer Science/Software Engineering

    [CS][소프트웨어공학]

    [1] 구조 모델링 (정적 모델링) 시간의 개념이 개입되지 않음 객체들의 공통 구조와 동작들을 추상화 시킨 것 시간이 흐르더라도 변하지 않는 정적 구조 클래스 다이어그램이 대표적이다. : 도메인 개념과 속성을 표현, 여러번 반복해서 상세하고 구체적인 걸 만들어야 한다. 문제 도메인의 중요한 클래스 발견 : 초기 다이어그램의 목적 반복되며 구체화 구현/유지보수 어떤 구조적 요소들이 있는지 파악하기 위해 하는 것 비즈니스에서 사용되는 용어들을 이용하여 객체들 정의 실세계와 소프트웨어의 의미적 차이를 줄이는 작업 모델링 과정 객체 식별 → CRC 카드 → 클래스 다이어그램 작성 → 행위 모델링 (여러가지 다이어그램 작성) → 클래스 다이어그램 정제(구체화) 행위 모델링 ↔ 클래스 다이어그램 구체화 반복 [1]..

    [CS][소프트웨어공학] 객체지향방법론, UML, 유스케이스 다이어그램

    [1] 객체지향 개념 객체지향 방법론 현실세계의 개체(Entity)를 속성과 메소드를 결합시킨 객체 형태로 표현하는 개념 객체 간의 메시지 통신을 통해 시스템을 구현하는 개발 방법 객체지향의 핵심개념은 객체와 "클래스"이다. 객체지향의 기본원리 캡슐화(Encapsulation) 정보은닉(Information hiding) 상속(Inheritance) 다형성(Polymorphism) 객체(Object)는 현실세계에 존재하거나 생각할 수 있는 개념을 표현한 것이다. 물리적 객체, 개념적 객체가 있다. 객체가 되려면 상태를 가져야 한다. 객체가 가지는 자료 값이 상태를 표현한다. 시간이 흐르면서 변화할 수 있어야 한다. Ex. 강좌의 상태 : open & close 객체는 잘 정의된 오퍼레이션이 있어야 한다...

    [CS][소프트웨어공학] SW 요구사항, SW 개발 방법론, DFD, 자료사전

    [1] 요구사항의 정의 요구사항 (requirements) 시스템이 제공해야 할 역량 (capability) 외형적으로 나타내는 기능이나 성능 SW 시스템이 수행해야 할 것과 SW 시스템에 있어야 할 특성을 명시적으로 기술한 문장 SW 개발 기준 여러 이해 당사자 (stakeholder)의 이해 관계와 관련되어 있다. SW가 무엇을 해야 하는가를 표현해야 한다. 프로젝트 실패의 가장 중요한 이유는 명확하지 못한 요구사항 정의이다. 요구 사항은 각각의 position에서 해석해도 문제가 없게끔 정의해야 한다. [2] 요구사항의 분류 기능 요구 고객이 요구하는 시스템이 처리할 기능 업무 절차나 기계 동작을 실현한 것 동사로 표현된다. 쉽게 파악된다. 제품 기능을 의미한다. 사용 사례로 정리할 수 있다. UM..

    [CS][소프트웨어공학] SW 기능 산정 (기능점수, 간이법)

    [1] 기능 점수 (FP, FunctionPoint) 과거의 소프트웨어 비용 산정 LOC(Lines of Codes)로 SW의 규모를 파악했다. 문제점 : 사용하는 프로그래밍 언어마다 기능 구현을 위한 코드 라인 수가 달라진다. 기능 점수 (Function Point) 방법 SW의 기능과 복잡한 정도를 기준으로 규모를 산정한다. IFPUG 모델을 이용하며 2003년 국제표준을 채택하였다. (ISO/IEC 20926:2003) 현재 모든 SW 개발 프로젝트의 규모 및 비용 산정의 표준이 된다. SW 시스템의 구성 요소를 2가지로 정의할 수 있다. 처리 기능 : Transaction Function, 외부입력/외부출력/외부질의 데이터 기능 : Data Function, 내부논리파일/외부인터페이스파일 그 구성..

    [CS][소프트웨어공학] SW 개발 프로젝트 관리 기법(일정/비용/위험 관리), SW 개발 프로젝트 조직 유형

    [1] SW 개발 프로젝트 실패 원인 부족한 SW 마인드 : 언제든 변경이 가능하다는 오만함 SW 공학 기술의 활용 미흡 : 공학 기법 적용을 미룸 부족한 프로젝트 관리 기술 : 수행 시 고려해야 할 요소가 기하급수적으로 증가 [2] SW 개발 프로젝트 관리 SW 개발 프로젝트의 목표 최소의 비용으로 최고의 품질을 유지하는 SW를 성공적으로 개발하는 것 프로젝트 관리의 목적 작업 수행에 필요한 여러 가지 자원, 인력, 비용, 재료, 기술 등을 가장 효과적으로 사용하여 프로젝트의 목표를 달성하는 것 SW개발 프로젝트 관리를 어렵게 하는 요인 보이지 않는 SW, 빠르게 변하는 기술, 조직마다 다른 프로세스 [3] SW 개발 프로젝트 관리 단계 계획 수립 프로젝트 목표의 이해와 문서화 스케줄, 예산, 기타 자..

    [CS][소프트웨어공학] SW 개발 프로세스, 전통적 프로세스 모델, SW 프로세스 개선

    [1] 소프트웨어 개발 프로세스 소프트웨어 프로젝트란? 수행할 작업을 조직화한 프로세스 비용, 일정, 품질에 대한 목표를 성취하는 것 사전적 프로세스의 정의란? 어떤 일을 하기 위한 특별한 방법 일반적으로 단계나 작업으로 구성 소프트웨어 개발 프로세스란? 순서 제약이 있는 작업의 집합 높은 품질과 생산성이 목표 Code-and-Fix 즉흥적 개발, 프로세스가 없는 개발 프로그래밍 → 만족할 때까지 수정 → 개선을 위한 아이디어 짜내기 → 만족할 때까지 수정 문제점 요구, 설계 작업의 중요성을 깨닫지 못함 즉흥적인 방법으로는 사용자의 높은 요구 수준에 도달하기 어려움 계속 고치는 작업이 필요 좋은 SW 구조를 만들 수 없음 프로세스가 없는 개발 Code-and-Fix 즉흥적 개발, 프로세스가 없는 개발 프..