소프트웨어 공학

히치키치·2021년 10월 12일
0

sw change 발생 요인

  1. new technology : implement 향상 가능성 존재
  2. business change : 새로운 시스템 요구사항 등장
  3. changing platform : application 변화 필요성 존재

project process model

  1. 로켓 제어 시스템 : waterfall model
    safety critical system (require up-front analysis)
    plan driven approach -> requirement carefully analysis
  2. 모바일 폰 게임 sw : increment developement model
    요구사항이 유저의 시스템에 대한 경험에 따라 변경됨
    복잡한 user interface system로 stable과 reliable 요구됨


Requirement Engineering

  1. process to establish system & constraint
  2. requirement
    시스템이 무엇을 할 수 있는가
    high level abstract service statement~ detailed system specification
  3. 종류

user RE

  • to customer
  • natural language + service diagram
  • high level statement

System RE

  • structured DOC
  • set detail description
    (system function / service / operational constraint)
  • contract : customer ~ contractor

functional RE

  • state functionality & system service
  • what system to provide, what system not to do
  • how to react to 특정 input, how to behave in 특정 situation

non functional RE

  • apply to whole system
  • more critical
    not meet RE -> useless system
  • hard to state precisely
    imprecise RE -> verify 어려움
    use objectively test (Metric) measurement
  • define system property & constraint
    (reliablity, response time, storage RE 등)
  • specify 프로그래밍 언어 & 개발 방법
  • software quality characteristic

Domain RE

  • constrain in system operation domain
  • not satisfied -> not workable

Domain RE problem

  • sw developement가 이해 X
    application domain 분야의 언어로 표현되기 때문
  • 명백한 domain RE 만들 생각 X
    해당 분야의 전문가로 이해도가 높기 때문

Requirement 조건

  1. precision
    부정확/모호한 RE -> 서로 다른 해석
  2. complete
    모든 RE facility description 포함 해야함
  3. consistency
    RE facility description 간의 충돌/모순 없어야 함

이론적 : complete와 consistency 모두 동시에 만족해야함
실제적 : complete와 consistency는 서로 trade off 관계임

Software Quality characteristic

Metric

SW requirement Document

  1. official document

  2. user RE & system RE

  3. design vs RE
    RE : what system shoulddgo
    design : how system should do
    -> 실제로는 이 두개 분리 불가능

  4. 구조
    user RE definition : to user, natural language
    system architecture : high level, graph/diagram
    system RE specification : detailed RE, interface to other
    system model : graphical system model + system 간 관계
    system evolution : 예상되는 변화들 + 변화에 제약 많은 design 피함

  5. system RE specification 쓰는 법
    natural language
    structured natural language
    design description language
    graphical notation
    mathemathical specification

  6. natural language 문제점
    clarity 부족
    RE confusion : 기능성 비기능성 요구 mixed up
    RE amalgamation : expressed together

  7. structured natural language
    function, entity, input, output, action 정의
    pre/post condition
    side effect

  8. tabular specification
    natural language supplement
    possible alternative action course 제공


Requirement engineering process

Requirement eliciation/analysis

  1. find application domain / service / system operational constraint
  2. tech staff + customer
  3. stakeholder
  4. problem
    do not know what they really want to do
    express RE in their term
    different stake holder ~ conflicting RE
  5. stage
    RE discovery
    RE classification/organization
    RE prioritization/negotiation
    RE specification
  6. 방법 : Interview
    formal 또는 informal
    closed interview : 미리 준비된 질문 리스트
    opened interview : 자유롭게 여러 이해관계자와 다양한 issue 논의
  7. 효과적 진행
    spring broad
    requirement proposal
    prototype system

Requirement specification

  • user case
    uml, actor, all possible interaction
  • high level graphical model + tabular description
  • sequence diagram
  • scenario

Requirement validation

  1. 걱정 : 유저가 원하는 시스템의 요구사항을 잘 정의 했는지
  2. high RE error cost
  3. RE check
    validity : RE support customer's need?
    consistency : any RE conflict?
    completeness : all customer required included?
    realism : in available budget/tech?
    verifiablity : can be checked?

Requirement management

  1. manage changing RE process
  2. keep 각자의 RE
  3. maintain dependent RE's link
  4. make formal process
    change proposal
    linking system RE

model

대상을 특정 관점으로 표현

  • sw model : sw 수행 기능
  • logical model : system 기능
  • physical model : 구현/기술

modeling

모델을 만드는 것

  • 규약 : 요소 정의
  • 표현 : 모델링 결과
  • 명세 : 상세 서술

UML

  • unified modeling language
  • object - oriented design

UML view

필요성 : 하나의 관점만으로 sw 표현은 어려워 다양한 다이어그램 필요

  1. usecase view
  • 외부 actor 관점
  • 시스템 기능 측면
  • user case diagram
  1. logical view
  • 내부 시스템 기능 설계
  • class/package/sequence/communication diagram
  1. component view
  • component 간의 관계
  • component diagram
  1. concurency view
  • 시스템 요소 처리 방식 보여줌
    (동기/비동기)
  • 개발자와 시스템 통합 위함
    (자원할당, 이벤트 처리, 병렬 수행 등)
  • dynamic diagram : state/sequence/communication diagram
  • implement diagram : component/deployment diagram
  1. deployment view
  • computer & 주변 기기
  • 시스템 실제 배치
  • deployment diagram

user case diagram

외부 actor(시스템 사용자)와 use case(user visible function) 관계 도식화

user case scenario

  • 시스템 사용 실제 예시
  • 이름/행위자/정상 시나리오/동시 발생 가능한 내용
  • optional : 목표/시작 선행 조건/예외 시나리오/종료 조건

user realation

  1. include
  • uc가 다른 uc 포함함
  • 생성법 :
    여러 단계 중복 시나리오 빼기 -> 새로운 uc로 생성 -> 새로운 uc를 각 uc에 포함
  • included usercase
    단독 존재 불가능
    오직 부분으로 존재 가능
    (notation : 화살표 머리쪽)
  1. extend
  • uc와 그 uc의 확장 관계
  • 시나리오 조건에 따라 다른 uc로 확장됨
용어용어notation
extended usercase확장 유저케이스확장해서 사용하기 위해 참조됨화살표 시작쪽
base usercase기본 유저케이스참조하는 us화살표 머리쪽
extended point확장 포인트확장 uc 참조하는 지
  1. generalization
  • uc 상속
  • 자식 uc = 부모 uc의 모든 행동/의미 + 자신만의 행동
  • actor 사이 적용 가능

class diagram

클래스와 그들의 관계 표현

class

  • attribute(속성) + operation/method(메소드)
  • 임의의 유사한 객체 명세 위한 스펙
  • 템플릿으로 각 객체 생성

class relation

  1. Association
  • 개념적으로 서로 연관됨

    Qualifier (식별 정보)
    필요성 : 일대다 관계의 다중 연관성관계에서 한 객체가 특정 객체 식별시 사용
    효과 : 식별 정보 지정해 일대다 다중 연관관계에서 일대일 다중성으로 줄임

  1. Inheritance
  • generalization
  • is a kind of
  • root class : no super class
  • leaf class : no sub class
  1. Aggregation
  • 클래스 하나가 여러개의 클래스로 구성됨
  • part of, 부분-전체, has-a, consist of
  • notation : 빈 마름모
  1. Composition
  • 강한 집합 관계 (반드시 그 클래스로 이루어져야함)
  • sub class는 오직 한개의 super class만 가짐
  • notation : 채워진 마름모
  1. Dependency
  • 한 클래스 operation이 다른 클래스를 사용함

interface & realization

  • 클래스들의 일정한 behavior/같은 signature 가지는 operation 집합
  • 다른 클래스에서 사용 가능

Abstruct class

  • 객체 생성 X인 클래스

package diagram

연관된 클래스 집합

MVC architecture

  1. entitiy classes
  • 시스템 내부 기능 수행
  • 시스템 중심 내용 모델링
  1. boundary classes
  • 다른 사용자/환경 사이 인터페이스
  • 시스템 내부 & 외부 사이 소통
  1. control classes
  • usercase 속 연속적인 behavior 모델링

sequence diagram

  • 시간 경과에 따른 객체 interaction 표현
  • object, message, time, object life time, activation
  • 시간 순 시나리오 표현

communication diagram

  • 객체 간의 상호 관계 표현
  • class 간 관계 파악 용이

비기능적 요구 사항

Requirements Engineering Process

0개의 댓글

관련 채용 정보