책 이미지

책 정보
· 분류 : 국내도서 > 대학교재/전문서적 > 공학계열 > 컴퓨터공학 > 운영체제/소프트웨어 공학
· ISBN : 9788970502120
· 쪽수 : 598쪽
· 출판일 : 1999-08-20
책 소개
목차
제 1 부 시스템 공학과 시스템의 일반적인 공정과정
1장 시스템 공학이란? / 17
1.1 시스템 공학 / 18
1.2 건축 공학의 예 / 19
1.3 요약 / 23
2장 시스템 개발의 일반적 공정 과정 / 27
2.1 개발 계획 / 28
2.2 요구사항 분석(Requirements Analysis) / 31
2.3 설계(Design) / 35
2.4 구현(Implementation) / 36
2.5 시험(Testing) / 37
2.6 유지보수(Maintenance) / 39
2.7 요약 / 42
제 2 부 소프트웨어 개발 실체와 패러다임
3장 소프트웨어 개발의 실체 / 49
3.1 소프트웨어와 관련된 질문 / 49
3.2 소프트웨어의 위기 / 57
3.3 소프트웨어 위기의 해결책 / 60
3.4 소프트웨어에 대한 오해 / 63
3.4.1 관리자의 오해 / 63
3.4.2 고객의 오해 / 66
3.4.3 엔지니어의 오해 / 68
3.5 요약 / 70
4장 소프트웨어 시스템 개발 패러다임 / 77
4.1 폭포수 모델 / 80
4.2 원형(Prototyping) 패러다임 / 82
4.3 나선형(Spiral) 패러다임 / 86
4.4 4세대 기법(4th Generation Techniques) / 88
4.5 소프트웨어 제작 방법의 공통점 / 90
4.6 요약 / 92
제 3 부 요구사항 분석
5장 요구사항 분석이란? / 99
5.1 요구사항 분석 정의 / 99
5.2 분석의 특징 / 102
5.2.1 시스템 분석과 소프트웨어 개발 환경의 변화 / 104
5.2.2 시스템 분석가의 자질과 임무 / 106
5.2.3 요구사항 명세서 / 109
5.2.4 분석이 잘못되면...../ 114
5.2.5 분석의 문제점 / 115
5.2.6 요구사항 분석 방법의 공통점 / 118
5.3 정보 수집 및 사용자와의 대화 방법 / 119
5.3.1 인터뷰 개요 / 119
5.3.2 인터뷰 계획 / 120
5.3.3 질문의 유형 / 121
5.3.4 인터뷰의 구조 / 124
5.3.5 인터뷰의 주의점 / 124
5.3.6 설문지 / 125
5.4 모델링(Modeling) / 128
5.4.1 모델링의 기본 요소 / 130
5.5 소프트웨어 시스템의 3가지 관점 / 132
5.5.1 기능관점 (Function Space) / 133
5.5.2 동적관점(Dynamic Space) / 134
5.5.3 정보관점(Information Space) / 134
5.5.4 세 관점의 통합 / 135
5.6 요약 / 138
제 4 부 요구사항 분석 기법
6장 기능 모델링(Functional Modeling) / 147
6.1 구조적 분석기법 개요 / 148
6.2 자료흐름도(Data Flow Diagram) / 150
6.2.1 배경도(Context Diagram) / 152
6.2.2 자료흐름도 프로세스 번호 / 152
6.2.3 원시 프로세스(Functional Primitive) / 155
6.2.4 자료흐름도의 균형(Balancing) / 156
6.2.5 자료사전(Data Dictionary) / 157
6.2.6 구조적 분석기법과 기능 분할 / 157
6.3 문제기술(Problem Statement) / 159
6.3.1 문제기술의 역할 / 159
6.3.2 자판기 문제기술 / 161
6.3.3 Use Case를 이용한 구조적 분석기법 / 162
6.4 자판기 요구사항 분석 / 164
6.4.1 자판기 행위자 규명 / 164
6.4.2 시스템과 행위자의 상호작용 기술 / 165
6.4.3 자판기 배경도 / 168
6.4.4 자판기 자료흐름도 / 169
6.5 요약 / 172
7장 동적 모델링(Dynamic Modeling) / 177
7.1 실시간 시스템 / 178
7.2 유한상태기계(Finite State Machine) / 178
7.3 상태변화도(State Transition Diagram) / 180
7.3.1 다양한 상태변화도 표기법 / 182
7.4 전화 시스템 동적 모델링 / 185
7.5 실시간 시스템을 위한 구조적 분석기법의 확장 / 190
7.5.1 프로세스활성표(PAT:Process Activation Table) / 193
7.4.2 결정표(DT:Decision Table) / 195
7.5.3 상태변화도(STD:State Transition Diagram) / 197
7.5.4 상태사건표(SEM: tate Event Matrix) / 197
7.5.5 복합 제어 명세(Composite C-Specs) / 199
7.6 요약 / 200
8장 정보 모델링(Information Modeling)/ 205
8.1 정보 모델링 개요 / 206
8.2 엔티티, 속성, 엔티티 타입 / 207
8.3 관계, 관계 타입, 제약조건 / 209
8.3.1 매핑 제약조건(Mapping Constraints) / 210
8.3.2 참여 제약조건(Participation Constraints) / 212
8.3.3 참조 무결성(Referential Integrity) / 212
8.3.4 관계 타입 차수 / 213
8.4 일반화(Generalization) / 215
8.4.1 중복성과 완전성 / 217
8.5 역할(Role) / 219
8.6 정보 모델링의 예 : 대학교 데이터베이스 / 220
8.6.1 엔티티 가이드라인 / 221
8.6.2 관계 가이드라인 / 222
8.7 요약 / 224
9장 객체지향 분석 및 설계기법 / 231
9.1 객체지향 분석기법 개요 / 232
9.2 객체 모델링(Object Modeling) / 234
9.2.1 객체와 클래스 / 235
9.2.2 클래스의 관계 / 236
9.2.3 일반화(Generalization) / 238
9.2.4 집단화(Aggregation) / 239
9.2.5 현금 자동 지급기 시스템의 예 / 240
9.3 동적 모델링(Dynamic Modeling) / 242
9.4 기능 모델링(Functional Modeling) / 244
9.5 객체지향 설계 / 245
9.6 요약 / 251
제 5 부 소프트웨어 설계
10장 소프트웨어 설계 기법 / 265
10.1 소프트웨어 설계 개요 / 266
10.2 소프트웨어 설계 문서 / 268
10.3 소프트웨어 설계 활동 / 271
10.3.1 설계의 기술적인 관점 / 271
10.3.2 설계의 관리적 관점 / 273
10.4 설계의 고려 사항 / 274
10.4.1 추상화(abstraction) / 275
10.4.2 정보 은닉(information hiding) / 278
10.4.3 단계적 정제(stepwise refinement) / 283
10.4.4 모듈화(modularity) / 284
10.4.5 프로그램 구조화 (program structure) / 284
10.5 설계의 품질요소 / 288
10.5.1 모듈 독립성(module independence) / 289
10.5.2 응집도 (cohesion) / 290
10.5.3 결합도(coupling) / 297
10.5.4 이해도(understandability) / 306
10.5.5 적응도(adaptability) / 306
10.6 요약 / 308
11장 자료흐름 중심 설계(Data Flow Oriented Design) / 315
11.1 자료흐름 중심 설계 개요 / 316
11.2 구조적 설계의 기본 개념/ 317
11.3 구조도표의 표기법 / 319
11.4 정보 흐름의 유형 / 320
11.5 변환흐름중심설계(Transform Flow-Oriented Design) / 322
11.6 트랜잭션흐름(Transaction Flow) 중심 설계 / 335
11.7 요약 / 343
12장 실시간 시스템 설계(Real-Time System Design) / 347
12.1 동적 모델링 개념 / 349
12.2 실시간 시스템 설계 / 347
12.3 실시간 설계 가이드라인 / 352
12.4 제어명세서를 구조도로 전환(DARTS) / 360
12.4.1 DARTS 표기법 / 362
12.4.2 DARTS 프로세스 / 364
12.5 실시간 동작 이해 / 365
12.6 요약 / 367
13장 데이터 디자인 / 371
13.1 관계형 모델 / 373
13.1.1 관계형 모델 제약 조건 / 374
13.2 EER 모델에서 관계형 모델로의 매핑 / 375
13.3 중복성 관리와 정규화(Normalization) / 385
13.4 뷰(View) / 391
13.5 시스템의 데이터 처리 / 394
13.6 요약 / 394
14장 객체지향 설계 / 399
14.1 시스템 설계 / 403
14.1.1 시스템의 병행성 규명과 처리 / 409
14.1.2 소프트웨어 기능을 하드웨어에 할당 / 413
14.1.3 소프트웨어 제어와 구조 / 414
14.2 객체 설계 / 422
14.2.1 세 모델의 통합 / 423
14.2.2 알고리즘 설계 / 429
14.2.3 객체 접근 경로의 최적화 / 432
14.2.4 제어 방법의 설계 / 433
14.2.5 상속성의 증가 / 433
14.2.6 집단화와 연관성에 대한 설계 / 435
14.2.7 객체 표현(Object Representation) / 439
14.2.8 폴리모피즘(Polymorphism) / 440
14.3 요약 / 441
15장 사용자 인터페이스 / 449
15.1 인터페이스 개발 과정 / 451
15.2 인적요소 / 452
15.2.1 인식 모델 / 452
15.2.2 사회적 및 조직적인 요소 / 454
15.3 사용자 인터페이스 방식 / 455
15.3.1 명령어(Command Language) / 455
15.3.2 메뉴지향 시스템 / 456
15.3.3 서식 기입(Form Fill-in) / 459
15.4 인터페이스 설계 지침 / 460
15.5 객체지향 사용자 인터페이스 / 463
15.6 요약 / 466
16장 상세 설계 / 471
16.1 상세 설계의 표기법 / 471
16.1.1 순서도(Flowchart) / 471
16.1.2 N-S 도표 / 474
16.1.3 프로그램 설계 언어(PDL) / 475
16.2 구조적 프로그래밍 / 476
16.3 객체지향적 상세 설계 / 481
16.4 요약 / 484
제 6 부 프로그래밍
17장 프로그래밍 / 489
17.1 프로그래밍 언어 개요 / 489
17.2 프로그래밍 표준 / 492
17.2.1 코드의 문서화 / 493
17.2.2 코드의 간결성 / 496
17.2.3 코드의 명확성 / 494
17.3 객체지향 프로그래밍 / 499
17.4 요약 / 503
18장 코드 검사 / 505
18.1 코드 검사 계획 / 506
18.2 코드 검사 진행 / 507
18.3 코드 검사 오류 항목 / 509
18.4 코드 검사 사후 검토 / 511
18.5 요약 / 511
제 7 부 품질과 시험
19장 소프트웨어 품질 / 515
19.1 소프트웨어 품질 정의 / 518
19.2 소프트웨어 품질 요소 / 520
19.3 품질 표준 / 523
19.4 검토 기법 / 525
19.4.1공식기술검토회(Formal Technical Review) / 526
19.5 소프트웨어 측정 / 528
19.6 요약 / 529
20장 소프트웨어 시험(Testing) / 533
20.1 시험의 개요와 목적 / 534
20.2 시험 계획 / 535
20.3 검증과 확인 / 538
20.3.2 검증(Validation) / 538
20.3.2 확인(Verification) / 540
20.4 블랙박스 시험 / 542
20.4.1 등가 분할 / 543
20.4.2 경계값 분석 / 544
20.5 화이트박스 시험 / 545
20.5.1 모든 실행문의 수행 조사 / 546
20.5.2 분기점 조사 / 547
20.5.3 조건 조사 / 548
20.5.4 화이트박스 시험의 필요성 / 549
20.6 시험 절차 / 552
20.6.1 단위 시험 / 553
20.6.2 통합 시험 / 554
20.6.3 검증 시험 / 558
20.6.4 시스템 시험 / 559
20.7 요약 / 560
제 8 부 유지보수
21장 유지보수(Maintenance) / 567
21.1 유지보수 정의 / 569
21.2 역공학과 재공학 / 571
21.3 유지보수 절차와 조직 / 573
21.4 소프트웨어 형상관리 / 578
21.4.1 형상관리 과정 / 582
21.5 요약 / 584
소프트웨어 산책 2.1 미국 프로그래머의 몰락 / 38
소프트웨어 산책 2.2 엔트로피 법칙 / 41
소프트웨어 산책 2.3 변화 / 43
소프트웨어 산책 3.1 품질의 중요성 / 53
소프트웨어 산책 3.2 소프트웨어 개발의 복잡도(Complexity) / 57
소프트웨어 산책 3.3 품질과 고객 만족도 / 60
소프트웨어 산책 3.4 컴퓨터의 육체와 정신 / 62
소프트웨어 산책 3.5 바벨탑 / 65
소프트웨어 산책 3.6 계약은 시작인가, 끝인가? / 66
소프트웨어 산책 3.7 3종류의 사람 / 69
소프트웨어 산책 3.8 정석과 잡기 / 71
소프트웨어 산책 4.1 관점(view) / 79
소프트웨어 산책 4.2 고객과 서비스 / 89
소프트웨어 산책 4.3 소중한 것부터 먼저 하라 / 91
소프트웨어 산책 4.4 엔지니어링의 가시성(visibility) / 93
소프트웨어 산책 5.1 애매한 기대 / 102
소프트웨어 산책 5.2 분석과 교육 / 103
소프트웨어 산책 5.3 미국의 전산 환경 변화 / 105
소프트웨어 산책 5.4 주도적이 되라 / 180
소프트웨어 산책 5.5 문서와 기술력 / 113
소프트웨어 산책 5.6 분명한 목표 / 115
소프트웨어 산책 5.7 공식 기술 검토회 / 117
소프트웨어 산책 5.8 사용자 참여 / 126
소프트웨어 산책 5.9 팀웍(Teamwork)과 통합(Integration) / 137
소프트웨어 산책 5.10 이론 없이 실무 없다 / 139
소프트웨어 산책 6.1 분할 / 158
소프트웨어 산책 6.2 무엇(What)과 어떻게(How to) / 172
소프트웨어 산책 7.1 전산 교육의 방향 / 189
소프트웨어 산책 8.1 시스템 통합 / 223
소프트웨어 산책 9.1 만남과 객체지향 분석기법 / 250
소프트웨어 산책 9.2 상향식과 하향식 / 253
소프트웨어 산책 10.1 품 질 / 270
소프트웨어 산책 10.2 미국의 캡슐화 / 282
소프트웨어 산책 10.3 설계의 중요성 / 307
소프트웨어 산책 10.4 엔지니어의 성공하는 7가지 습관 / 309
소프트웨어 산책 11.1 소프트웨어 구조와 사회 구조 / 335
소프트웨어 산책 11.2 변환(Transform)과 트랜잭션(Transaction / 343
소프트웨어 산책 12.1 이론의 적용 / 351
소프트웨어 산책 12.2 정보과학과 전산과학 / 366
소프트웨어 산책 13.1 DFD와 ERD의 균형(balancing) / 384
소프트웨어 산책 13.2 일반화와 특수화 / 390
소프트웨어 산책 13.3 데이터베이스의 역사 / 393
소프트웨어 산책 14.1 객체지향은 아름다워라!!! / 400
소프트웨어 산책 14.2 소프트웨어의 품질과 UML / 408
소프트웨어 산책 14.3 3 + 5 는 프로세스인가, 사건인가? / 413
소프트웨어 산책 14.4 한국과 미국의 사회 구조 / 421
소프트웨어 산책 14.5 능동적 객체와 수동적 객체 / 431
소프트웨어 산책 14.6 집단화(Aggregation) / 439
소프트웨어 산책 14.7 기술과 배움 / 443
소프트웨어 산책 15.1 사용자 인터페이스와 비용 / 462
소프트웨어 산책 16.1 교육과 변화 / 482
소프트웨어 산책 17.1 프로그래밍 심리학 / 491
소프트웨어 산책 17.2 소프트웨어 심리학 / 498
소프트웨어 산책 17.3 미래는 객체지향 사회 / 501
소프트웨어 산책 18.1 코드 검사 / 508
소프트웨어 산책 19.1 벌거벗은 임금님 / 519
소프트웨어 산책 19.2 품질과 고객 / 508
소프트웨어 산책 19.3 바른 길 / 5241
소프트웨어 산책 19.4 공식기술검토회 / 527
소프트웨어 산책 19.5 소프트웨어의 개발 측정 / 528
소프트웨어 산책 19.6 소프트웨어의 초인 / 530
소프트웨어 산책 20.1 사용자의 관점과 엔지니어의 관점 / 537
소프트웨어 산책 20.2 독립적인 시험그룹(ITG) / 541
소프트웨어 산책 20.3 한국적인 소프트웨어 개발 방법론 / 550
소프트웨어 산책 21.1 기술 장벽 / 569
소프트웨어 산책 21.2 과학과 역공학 / 572
소프트웨어 산책 21.3 고객의 문제 처리 절차 / 576
소프트웨어 산책 21.4 개발 및 업그레이드 주기 / 581