인터넷2-순서도와 NS

Download Report

Transcript 인터넷2-순서도와 NS

프로그래밍 설계
0. 설계의 종류
1) Data Base 설계
2) 파일 설계
3)
4)
5)
6)
입출력 화면 설계
보고서 설계
코드 설계
프로그래밍 설계
프로그램
User Interface
Data
system
7) System Architecture 설계(H/W,N/W,보안)
1. 프로그램
1) 정보 시스템의 구성
업무절차
정보시스템
H/W
S/W
Software
통신
프로그램
모듈
코드
DB
(정보 시스템의 구성요소)
2) 프로그램의 구성
Presentation
-Interface 설계
(입출력 화면/보고서)
Logic
(Process)
-프로그래밍 설
계
Data
- data base 설계
- file 설계
- Code 설계
시스템 구현 순서
• 시스템구조도
• 모듈명세서
• N-S 차트
• 프로그램구현
시스템구조도
시스템구조도의 예

¿µÈ -¸¶À»
º ñµð¿À´ë¿©
º ñµð¿À¹Ý ³³
´ë¿©½Åà »
Å ¸´ç¼º°ËÅ ä
º ñµð¿À±¸À Ô
½Å ±Ô°í°´Ã ß°¡
°í°´À üÈ-¹øÈ £
À Ô·Â
°í°´Á ¤º¸º ¯°æ
°Å·¡ Ÿ´ç¼º °Ë Å ä
Å »Åð°í°´»èÁ ¦
Å ¸´ç¼º°æ°í
´ë±Ý °è»ê
Å ×ÀÌÇÁ¹øÈ £À Ô·Â
´ë¿©¿ä±Ý°è»ê
´ë¿©³»¿ë±â·Ï
°í°´°ü¸®
º ¸°í
시스템구조도

단국목재 구매부서의 시스템구조도
구조적 설계 및 도구
– 모듈 명세서(Module Specification)
• 모듈 내부 처리 논리를 구체적으로 정의하는 서술형 도구
• 구조적 분석과 구조적 설계의 모델링 도구
구조적 분석
그래
픽
모
델
서술
형
모
델
구조적 설계
 데이터 흐름도
 정보의 처리 흐름을 정의
 사용자 관점에서 작성
 처리기를 수평적으로 연결
 외관상 네트워크 구조를 형성
 구조도
 시스템의 구조를 정의
 개발자 관점에서 작성
 모듈을 수직적으로 연결
 피라미드형의 계층 구조
 미니 명세서
 데이터 흐름도의 보조 도구
 최하위 처리기만 작성
 데이터의 가공 절차를 기술
 구조적 언어를 많이 사용
 모듈 명세서
 구조도와 함께 중요한 도구
 모든 모듈을 대상으로 작성
 구현에 필요한 모든 정보기술
 의사 코드가 많이 사용
구조적 설계 및 도구
• 모듈 명세서의 구성
– 프로그래밍에 필요한 정보를 충분하고 정확하게 기술
» 다른 모듈과의 인터페이스에 관한 사항
» 내부 수행 논리에 대한 정보
정의해야 할 사항
 모듈의 개요
 모듈의 이름
 모듈의 기능에 대한 간결한 설명
 사용하는 프로그래밍 언어
인터페이스
 다른 모듈과 인터페이스 정보
 입력 매개변수 이름과 속성
 출력 매개변수 이름과 속성
 상위 모듈 리스트
 하위 모듈의 리스트나 라이브러리 모듈
구조적 설계 및 도구
정의해야 할 사항
 모듈의 내부 구조
 내부 이름과 속성
 사용하는 파일의 이름과 입출력 목적
 테이블의 이름, 전체크기, 구성항목과 속성
수행 논리
 정보 처리 방법
 처리하는 세부적인 활동과 그 절차
 각 단계에서 사용하는 알고리즘
 오류의 처리 방법
 온라인 입출력 모듈의 경우, 화면 설계
• 모듈 명세서의 작성 지침
– 모듈의 정보는 크게 인터페이스 정보와 내부 수행 논리 정보로 구성
» 인터페이스 정보 : 다른 모듈과의 관계를 표현
» 내부 수행 논리정보 : 모듈의 기능을 수행하는 내부처리 논리
구조적 설계 및 도구
• 모듈 명세서
– 다른 모듈과의 인터페이스에 필요한 정보만 기술
» 모듈의 내부활동에 대한 정보는 기술하지 않음
– 모듈이 “무엇을 수행하는가”를 중점적으로 기술
» 모듈은 “어떻게 수행하는가”는 기술하지 않음
– 모듈의 전반적인 기능을 짧은 시간에 기술할 때
– 프로젝트 일정이 촉박할 때
– 알고리즘이 단순하여 상위 계층에 위치한 모듈을 정의할 때
월 급
직원
모듈 이름 : 월급 계산
지급액
번호
월급 계산
직원
번호
직원
레코드
직원 레코드
읽음
급여
총액
급여 총액
계산
구조도
공제액
공제액
계산
모듈 기능 : 매월 정규직 사원의
실질 급여 계산
입력 변수 : 직원 번호, 9(7)
출력 변수 : 월급 지급액, 9(10)
호출 모듈 : 직원 레코드 읽음
급여 총액 계산
공제액 계산
피호출 모듈 : 급여 관리
모듈 명세서
NS차트
N-S (Nassi-Shneiderman) 도표
-연속 (sequence), 선택 (selection), 반복 (iteration)의 세 가지 기본 요소로
프로그램 로직을 표현.
1) 연속 (Sequence)
모듈A
모듈A
모듈B
모듈B
모듈C
2) 선택 (Selection)
- If-Then-Else
- Do Case
(flow chart)
Y
모듈A
조건
충족?
N
(1) If-Then-Else
- (C language)
if (number<50) calculate_sum();
else
calculate_average();
모듈C
모듈B
(N-S도표)
Y
조건충족?
N
모듈A 모듈B
(2) Case
Case?
Case?
a
b
모듈A 모듈B
a
기타
에러
모듈C
메시지
c
b
c
기타
모듈 모듈 모듈 에러
A
B
C 메시지
- (C language)
switch(ch) {
case ‘a’: module_A();
break;
case ‘b’: module_B();
break;
case ‘c’: module_C();
break;
default: printf (“ error-invalid character!\n”)
break;
}
3) 반복
-Do While: entry condition loop
-Do Until: exit condition loop
(1) Do While
조건
충족?
N
Y
모듈A
Do While (조건)
모듈A
모듈B
모듈B
- (C language)
while(count <=number)
{
module_A();
module_B();
}
(2) Do Until
Y
모듈A
모듈A
모듈B
모듈B
Do Until (조건)
조건
충족?
N
- (C language)
do
{
module_A();
module_B();
} while(count =number)
4) 예제: 고객 주문처리 프로그램
- 고객번호를 입력하여 고객 검색
- 신용한도 체크
- 주문 제품 입력 (제품번호가 ‘zzz’일 때까지 반복적으로 입력.)
- 재고 체크.
고객번호 입력 및 검색
N
발견?
N
Y
신용한도 충분?
Y
제품번호 입력
Do While 제품번호 <> ‘zzz’
제품 레코드 검색
에러
메시지
에러
메시지
N
발견?
N
Y
재고충분?
Y
에러
메시지 백오더 주문품목레코드생성
처리
제품 레코드 갱신
제품번호 입력
주문 레코드 생성
고객 레코드 갱신
1.숫자 하나를 입력 받아서 절대값이 5 보다 크면 입력숫자를 절대값으로 출력한다.
START
Num,result
num
Num>0
YES
START
num, result
PRINT result READ num
NO
Num=num*-1
TRUE
Num>0
Num=num+-1
Num>5
True
yes
Num>5
result=num
result
FALSE
STOP
STOP
FALSE
2.입력자료로 사원의 이름과 구분코드와 작업시간이 들어온다. 이때 구분코드가 1이면 시간
당 2000원 ,2이면 시간당 2500원 ,3이면 시간당 3000원 ,4이면 시간당 4000원 으로 계산하
여 임금을 출력하는 순서도를 작성하시오.
START
Name, code
Ti , m. av
Name, code ,Ti
Code==1
YES
m=2000
av= m* ti
result
STOP
NO
Code==2
NO
Code==3
YES
YES
m=2500
m=3000
NO
Code==4
m=4000
START
Name , code, Ti , m ,av
READ name , code, Ti
T
Code==1
T
m
=2000
F
Code==2
m
=2500
T
F
Code==3
m
=3000
T
Code==4
m
=4000
av = m * Ti
PRINT av
STOP
F
F
3. 임의의 정수 n을 입력 받아서 구구단 n단을 출력한다.
단, n이 1~9 범위의 수일 때만 구구단을 출력한다.
START
n, a 0,
b
START
n, a=0, b
READ n
n
n>=1&&
n<=9
YES
a<=9
NO
b
a*n
n*a=b
a
a+1
n>=1 && n<=9
T
NO
While (a<=9)
YES
STOP
b= a*n
PRINT n , “*”,a, ”=”.b
a=a+1
STOP
F
4. 10개의 숫자를 입력 받아서 홀수의 개수와 짝수의 개수를 출력한다.
START
num,count 0,
even 0,
odd 0
num
count
NO
count+1
Count<10
YES
even, odd
num%2==1
STOP
YES
odd
odd+1
NO
even
even+1
10개의 숫자를 입력 받아서 홀수의 개수와 짝수의 개수를 출력한다.
START
num, count=0, Even=0, Odd=0
while (count<10)
READ num
count=count+1
T
Num%2==1
odd=odd+1
even=even+1
PRINT odd, even
STOP
F
5. 1부터 100까지 합을 구하여 출력한다.
START
num
Sum
0,
0
START
sum=0,num=1
while (num<100)
num<100
YES
num
sum
num+1
sum+num
sum
STOP
NO
num=num+1
sum= sum + num
PRINT sum
STOP
6. 10개의 숫자를 입력 받아서 가장 큰 수를 출력한다.
STRAT
num, a
count
START
Num, a=0 , count=0
0,
0
while (count ==10)
READ num
num
count= count+1
num>a
count count+1
T
a
num
YES
a=num
num>a
NO
count==10
YES
a
STOP
F
PRINT a
NO
STOP
8. 10개의 숫자를 입력 받아서 합과 평균을 구하여 출력한다.
STRAT
sum 0,num,
average 0,
count 0
num
count
sum
NO
count+1
num+sum
START
Sum=0, num ,
average=0 ,count=0
while (count==100)
READ num
count=count+1
sum= sum+ num
average=sum/10
PRINT sum, average
count==10
YES
average
sum/10
average, sum
STOP
STOP