Upload
-
View
348
Download
9
Embed Size (px)
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 등의 핵심 이슈들이 적용되고 있
다.
본 과정에 적용할 소프트웨어 설계 프로세스는 비즈니스 모
델링, 분석, 아키텍처 설계, 설계 단계로 구성되어 있다.