StarUML NS Guide - Introduction

Preview:

DESCRIPTION

StarUML NS Guide - Introduction

Citation preview

Sections

Introduction

Key Issues in Software Development

The Process Overview

Lecture Objectives

Introduction

본 과정에 관련된 선 지식 습득

소프트웨어 개발의 핵심 이슈에 관한 개요

본 과정에 사용될 소프트웨어 프로세스 개요

Introduction

Key Issues in Software Development

Section 1.

Contents

Introduction

Background

Component-Based Development

Software Process

Iterative Development

Software Architecture

Unified Modeling Language

Model Driven Architecture

Background

Introduction

Component-Based Development

Introduction

What is Software Component?

• A software component is a unit of composition with contractually specified

interfaces and explicit context dependencies only.

• It can be deployed independently and is subject to composition by third

parties

(Szyperski, Queensland University)

Component-Based Development (cont.)

Introduction

Component-Based Development (cont.)

Introduction

Component Platforms

• Microsoft ActiveX/COM and .NET

• OMG CORBA

• Sun JavaBeans/EJB

Software Process

Introduction

Software Process (cont.)

Introduction

Software Process

• Development Process

• Management Process

Software Process (cont.)

Introduction

Software Process (cont.)

Introduction

Iterative Development

Introduction

반복적 개발(Iterative Development)

• 전체 개발을 여러 번의 반복으로 나눔

• 한 번의 반복이 요구사항부터 구현, 테스트까지 포함

• 소프트웨어를 점진적으로 개발

• 사용자의 피드백(Feedback)을 자주 받을 수 있음

Iterative Development (cont.)

Introduction

Waterfall Model (conventional development)

• 요구사항부터 구현, 테스트까지 순차적으로 수행

• 위험요소의 발견 및 해결이 프로젝트 종반으로 지연

Iterative Development (cont.)

Introduction

위험 요소(risk)를 조기에 발견하고 해결

Iterative Development (cont.)

Introduction

변화를 쉽게 수용(Embracing Changes)

• 요구사항에서의 변화

• 일정상의 변화

• 참여인력의 변화

• 비용 및 기타 환경의 변화

Iterative Development (cont.)

Introduction

Iteration Planning

• 높은 위험 요소를 먼저 수행

• 중요한 요구사항을 먼저 반영

• 변화를 수용

Iterative Development (cont.)

Introduction

Iteration Planning (cont.)

Iterative Development (cont.)

Introduction

How many iterations?

• 반복 횟수를 많이

• 위험도가 높을 수록

• 요구사항 파악이 힘들 수록

• 반복 횟수를 적게

• 경험 많은 프로젝트 일 수록 (위험도가 낮을 수록)

• 요구사항이 명확할 수록

Software Architecture

Introduction

소프트웨어 컴포넌트와 그것들의

관계로 표현되어지는 시스템의

거시적 구조

소프트웨어 시스템의 조직에 관

한 중대한 결정

Software Architecture (cont.)

Introduction

Why Is Architecture Important?

• Communication Vehicle

• Early Design Decision

• Architectural Reuse

Software Architecture (cont.)

Introduction

What Is Architectural View?

• 특정 관점(perspective)에서의 시스템에 대한 간략한 기술.

• 특정 이해관계자(stakeholder)의 의도를 반영.

• 아키텍처상 중요한 내용들만을 포함한다.

• 소프트웨어 시스템의 아키텍처는 여러 개의 아키텍처 관점(Architectural

View)들로 구성됨.

Software Architecture (cont.)

Introduction

4+1 View Model of Architecture

Unified Modeling Language

Introduction

UML은 소프트웨어 시스템의 산출물들을

• 시각화(Visualize),

• 명세화(Specify),

• 구축(Construct),

• 문서화(Documenting)

하기 위한 표준 언어이다.

Unified Modeling Language (cont.)

Introduction

Unified Modeling Language (cont.)

Introduction

Structural Modeling

• Class Diagram, Component Diagram, Deployment Diagram

Unified Modeling Language (cont.)

Introduction

Behavioral Modeling

• Use Case Diagram, Sequence Diagram, Collaboration Diagram,

Statechart Diagram, Activity Diagram

Model Driven Architecture

Introduction

MDA (Model Driven Architecture)

MDA는 플랫폼 기술로부터

비즈니스 혹은 애플리케이션의

로직을 분리해내기 위한 기술이다.

Model Driven Architecture (cont.)

Introduction

Introduction

The Process Overview

Section 2.

Contents

Introduction

The Process In This Course

The Process

• Business Modeling

• Requirements

• Analysis

• Architectural Design

• Design

Process Summary

Configurations

The Process In This Course

Introduction

Software Design Process

Features

• An Agile Process

• From Requirements to Design

• Use-Case Driven

• Configurable for not only OOAD but also CBD

• Make the best use of UML

The Process

Introduction

Business Modeling

Introduction

Business Modeling (cont.)

Introduction

Requirements

Introduction

Requirements (cont.)

Introduction

Analysis

Introduction

Requirements

Business

Modeling

(optional)

Analysis Design

Implementation

(not cover)

Test

(not cover)

Architectural

Design

(optional)

Analysis (cont.)

Introduction

Architectural Design

Introduction

Architectural Design (cont.)

Introduction

Design

Introduction

Design (cont.)

Introduction

Role Summary

Introduction

Activity Summary

Introduction

Artifact Summary

Introduction

Process Configurations

Introduction

Configuration for CBD

Introduction

Lecture Summary

Introduction

현대의 소프트웨어 개발에서는 소프트웨어 프로세스, 반복

적 개발, CBD, UML, MDA 등의 핵심 이슈들이 적용되고 있

다.

본 과정에 적용할 소프트웨어 설계 프로세스는 비즈니스 모

델링, 분석, 아키텍처 설계, 설계 단계로 구성되어 있다.

Recommended