1. 모델링의 중요성 - 사용자 업무를 표현하는 수단이며, 개발자와 사용자 사이의 의사소통을 위해 사용 - 현실세계를 규칙적으로 나타낼 수 있어 공통적인 이해가 가능하게 함 시스템 개발은 어느 단계에서든지 오류가 발생할 가능성은 다분히 존재한다. 분석가는 의뢰인의 요구를 잘못 이해할 수 있으며, 의뢰인이 이해할 수 없는 문서를 만들어낼 수도 있다. 프로그래머가 분석 결과를 명쾌하게 이해하지 못하고 사용하기 어려운 프로그램을 만들어 냄으로써, 의뢰인의 문제를 제대로 해결해 주지 못할 수도 있다. 이를 해결하기 위해, 시스템 개발에 참여하는 분석가, 의뢰인, 프로그래머, 그 외의 모든 이들이 이해하고 동의할 수 있는 방법으로 설계 과정을 조직화해야한다. 모델은 바로 조직화 수단을 제공하기 위한 것이다. 모델..
시리즈 글 보기 [소프트웨어공학] 애자일 소프트웨어 개발 방법론: Crystal 완벽 정리 B. Boehm, “A survey of agile development methodologies.” Laurie Williams, 2007. 보헴의 A Survey of Agile Development Methodologies 내용 중 스크럼 방법론에 관하여 정리한 내용입니다. 1. 스크럼 방법론 개요 - 스크럼 철학은 팀, 태스크를 가능한 가장 작은 절차를 주기적으로 반복 진행하는 것 - 스크럼 팀은 근거리에서 일하며, 자기 주도적(Self-directed)이며 자기 조직화(Self-organizing)적인 특징을 가짐 - 팀은 정의된 목표를 반복해서 수행하며, 목표를 가장 잘 충족하는 최선의 방법을 결정하는 ..
More About SOFTWARE REQUIREMENT 5~6부 요약 정리 [ 요구사항 작성 ] 연결 문서 - SRS와 같은 문서들은 정보를 전달하는 가교 역할을 한다. 따라서 명확해야 한다. - 얼마만큼 디테일해야하는가? → 연결 문서는 작성자 관점보다 소비자의 시각에서 작성해야한다. * SRS : Software Requirement Specification, 소프트웨어 요구 사양서 얼마나 상세하게 기술해야 하는가 1) 상세한 요구사항이 덜 적합한 경우 - 고객들이 광범위하다. - 개발자들이 상당한 분야의 경험을 가진다. - 선례를 사용할 수 있다. - 패키지 솔루션이 사용될 수 있다. 2) 요구사항이 더 상세해야 하는 경우 - 개발은 아웃소싱될 것이다. - 프로젝트 팀 멤버들이 지리적으로 흩어져 ..
시리즈 글보기 [소프트웨어공학] 애자일 소프트웨어 개발 방법론: Scrum 완벽 정리 B. Boehm, “A survey of agile development methodologies.” Laurie Williams, 2007. 보헴의 A Survey of Agile Development Methodologies 내용 중 크리스탈 방법론에 관하여 정리한 내용입니다. 요약정리본은 아래 쪽에 게재되어있습니다. 내용을 훑어보기 전에 크리스탈 방법론에 대해 한마디로 말하면, 소프트웨어 개발 과정은 천편일률적이지 않고 모두 다르기 때문에 프로젝트의 위험성과 규모에 따라 프로세스를 다르게 설정하자는 방법론입니다. 융통성이 있는 프로세스라 생각할 수 있습니다. 크리스탈 방법론 특징 크리스탈 파트는 Rational U..
1) 폭포수 모형(Waterfall Model) 특징 1970년대 항공 소프트웨어 개발 경험으로 습득 계획 -> 요구분석 -> 설계 -> 구현 -> 테스트 -> 인수 설치 각 단계가 순차적으로 진행되며 다음 단계는 이전 단계가 완전히 끝난 후 진행되어야 함 장점 프로세스가 단순하여 초보자도 쉽게 적용 가능 중간 산출물이 명확하고 관리하기 쉬움 코드 생성 전 충분한 연구/분석이 진행됨 단점 각 단계의 전환에 많은 노력이 필요 필요 없는 다종의 문서를 생산할 가능성이 높음 오랜 계획과 분석으로 코딩 및 테스트가 지연될 가능성 존재 프로토타입과 재사용성의 기회가 줄어듦 적용 분야 이미 잘 알고 있는 문제나 연구 변화가 적은 프로젝트에 적합 2) 프로토타이핑 모형(Prototyping Model) 특징 사용자의..
소프트웨어 오류 아무리 숙련된 프로그래머라도 오류를 찾고 고치는 과정을 통해 프로그램을 완성해나간다. 소프트웨어 오류는 크게 Syntax Error/Runtime Error 그리고 Semantic Error(혹은 Logic Error)로 나눈다. ㅁ Syntax Error(구문적 오류) 프로그래밍 언어의 문법적인 에러를 말하는 것으로 컴파일 과정에서 나오는 것들이며 구문 오류라 할 수 있다. 그래서 컴파일 타임 에러라고도 한다. 이는 코드를 작성하면서 키워드를 잘못 작성하거나, 중요한 구두점을 빠뜨리거나 여는 괄호는 있는데 닫는 괄호가 없는 것과 같은 경우이다. 문법 오류는 컴파일러가 어떤 줄에서 어떤 이유로 오류가 발생했는지를 알려주기 때문에 찾기 쉽다. ㅁ Runtime Error(실행 오류) 프로그..
1. 소프트웨어 프로세스 품질 소프트웨어 품질의 저하는 소프트웨어 개발 경험의 부족에서 오는 경우가 많다. 경험이 부족하여 제대로 된 소프트웨어 개발 프로세스가 없고 품질 향상을 위한 관리 활동도 찾아볼 수 없는 것이다. 세계의 대형 프로젝트의 단 1%만이 목표를 달성하고 있으며 개발 비용이 수백만 원 이상 초과되는 것은 물론이고 납기의 지연은 몇 년씩 연기되고 수십억 원의 개발비용이 투입된 프로젝트들이 실패로 끝나 무용지물이 되고 말았다. 소프트웨어 개발은 인력, 기술, 절차, 도구가 어우러져 통합된 프로세스, 즉 개발을 위한 작업이 질서 있고 경험이 잘 반영되어 있어야 소프트웨어의 품질을 높일 수 있다. 소프트웨어 시스템의 품질은 그것을 개발하는데 사용되는 프로세스의 품질에 좌우되는 것이다. 엔지니어..
그동안 알고있던 요구공학 + 소프트웨어공학이 이번 특강을 듣고 머리가 탁 트이는 느낌이 든다시험보기 전에 훑어보았던 마구잡이 요구공학 내용이다 유스케이스1) 사용자 요구사항을 조사하기 위한 기법2) 사용자 중심, 사용법 중심의 관점3) 시스템과 사용자의 상호작용에 초점을 맞춤 → 최종 사용자용 응용프로그램과 상호작용하는데 매우 뛰어나다.4) 데이터 웨어하우스, 임베디드 제어 소프트웨어, 실시간 시스템, 계산을 수행하는 복잡한 비즈니스 규칙을 포함하는 시스템에 대해서는 한계 → 복잡한 비즈니스 규칙의 상호작용에 의해 주도 - 사용자와 시스템의 상호작용에 강한 복잡성이 없음 - 유스케이스 분석은 모든 시스템의 동작을 정의하는 기술로서는 부족5) 분석가가 사용자의 관점으로 작성하기 때문에 사용자의 비즈니스 측..