포스트

소프트웨어 설계 - 요구사항 확인

소프트웨어 설계 - 요구사항 확인

소프트웨어 설계

소프트웨어 공학의 중요성

  • 대규모 프로젝트 관리 : 복잡한 대규모 소프트웨어 프로젝트를 체계적으로 관리할 수 있다.
  • 품질 보증 : 다양한 단계에서 품질을 관리하고, 테스트를 통해 신뢰 할 수 있는 소프트웨어를 제공한다.
  • 비용 절감 : 프로젝트의 효율적인 자원관리와 재사용 등을 통해 비용을 절감할 수 있다.

소프트웨어 생명 주기 (소프트웨어가 탄생하고 성장하며 소멸하는 전 과정을 단계별로 나눈것, SDLC)

  • 요구사항 분석 : 무엇을 만들지 정의
  • 설계 : 어떻게 만들지 구조를 계획
  • 구현/개발 : 실제로 코드를 작성
  • 테스트 : 개발된 소프트웨어를 검증
  • 배포/운영 및 유지보수 : 소프트웨어를 사용자한테 제공하고 지속적으로 관리하며 개선

개발 접근법 (무엇을 만들것인가? 모델링 및 설계)

  • 구조적 개발 접근법 (SDA) : 시스템을 기능(프로세스) 중심으로 하향식 으로 분해하고 모델링하는 철학
  • 객체지향 개발 접근법 (OODA) : 시스템을 데이터와 기능을 결합한 객체 중심으로 캡슐화하고 모델링하는 철학

프로젝트 관리 및 프로세스 (어떻게 만들것인가?)

  • 애자일 개발론 (Agile) : 짧은 반복 주기와 지속적인 피드백을 통해 변화하는 요구사항에 유연하게 대응하는 프로젝트 관리 철학

요구사항

요구사항 정의

  • 기능 요구사항
    • 입출력 포함, 시스템이 무엇을 저장하고 연산을 수행할지
    • 시스템이 반드시 수행해야 하는 기능, 사용자가 원하는 기능
  • 비기능 요구사항
    • 시스템 장비 구성
    • 성능
    • 인터페이스
    • 데이터
    • 테스트
    • 보안, 품질
    • 제약 사항
    • 프로젝트 관리
    • 프로젝트 지원

요구사항 개발 프로세스

도출(Eliciation) → 분석(analysis) → 명세(specification) → 검증(validation)

  • 도출: 요구사항 수집(인터뷰, 설문, 브레인스토밍, 프로토타이핑, 유스케이스…)
  • 분석: 모호한 부분 필터링 → 자료흐름도(DFD), 자료사전(DD)
  • 명세: 문서화
  • 검증

요구사항 명세 기법

  • 정형 명세 기법
    • 수학적 명세
  • 비정형 명세 기법
    • 상태, 기능, 객체 중식 -> 자연어, 다이어그램 작성

요구사항 분석

  • 유저 요구사항 이해, 타당성 조사 -> 비용, 일정 제약
  • 목표, 해결방법 결정
  • 도구: UML(Unified Modeling Language), 자료흐름도(DFD), 자료 사전(DD), 소단위 명세서, ERD(개체 관계도), 상태 전이도(STD), 제어 명세서
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.