HOME > 상세정보

상세정보

소프트웨어공학론

소프트웨어공학론 (69회 대출)

자료유형
단행본
개인저자
최은만, 崔恩滿, 1958-
서명 / 저자사항
소프트웨어공학론 / 최은만 저.
발행사항
서울 :   사이텍미디어,   1999.  
형태사항
705 p. : 삽도 ; 25 cm.
ISBN
8988397053
일반주기
부록: 프로젝트 문제  
서지주기
참고문헌 및 색인 수록
000 00000nam c2200205 k 4500
001 000000649145
005 20240426165701
007 ta
008 991029s1999 ulka 001a kor
020 ▼a 8988397053 ▼g 93560 : ▼c \27000
040 ▼a 211009 ▼c 211009 ▼d 211009
049 1 ▼l 111134045
082 0 4 ▼a 005.1 ▼2 21
090 ▼a 005.1 ▼b 1999f
100 1 ▼a 최은만, ▼g 崔恩滿, ▼d 1958- ▼0 AUTH(211009)163383
245 1 0 ▼a 소프트웨어공학론 / ▼d 최은만 저.
260 ▼a 서울 : ▼b 사이텍미디어, ▼c 1999.
300 ▼a 705 p. : ▼b 삽도 ; ▼c 25 cm.
500 ▼a 부록: 프로젝트 문제
504 ▼a 참고문헌 및 색인 수록
950 0 ▼b \27000

No. 소장처 청구기호 등록번호 도서상태 반납예정일 예약 서비스
No. 1 소장처 중앙도서관/제2자료실(3층)/ 청구기호 005.1 1999f 등록번호 111134045 (30회 대출) 도서상태 대출가능 반납예정일 예약 서비스 B M
No. 2 소장처 세종학술정보원/과학기술실(5층)/ 청구기호 005.1 1999f 등록번호 151079182 (23회 대출) 도서상태 대출가능 반납예정일 예약 서비스 B M ?
No. 소장처 청구기호 등록번호 도서상태 반납예정일 예약 서비스
No. 1 소장처 중앙도서관/제2자료실(3층)/ 청구기호 005.1 1999f 등록번호 111134045 (30회 대출) 도서상태 대출가능 반납예정일 예약 서비스 B M
No. 소장처 청구기호 등록번호 도서상태 반납예정일 예약 서비스
No. 1 소장처 세종학술정보원/과학기술실(5층)/ 청구기호 005.1 1999f 등록번호 151079182 (23회 대출) 도서상태 대출가능 반납예정일 예약 서비스 B M ?

컨텐츠정보

저자소개

최은만(지은이)

KAIST 전산학과(석사)와 미국 일리노이 공대(박사)에서 공부하고 동국대학교 컴퓨터공학과에서 30년 동안 교수로 재직하며 S/W 공학 특히 객체지향 설계, S/W 테스팅, AOP(관점지향 프로그래밍) 등을 연구하며 가르쳤다. TTA의 S/W 테스트 엔지니어 양성 과정과 삼성전자, 삼성 SDS의 아키텍트 과정 등 산업체 인력 교육에도 참여하였다. 은퇴 후에는 S/W 공학 기술을 산업체에 보급하고 고급 개발자를 길러내기 위한 S/W 설계 교육에 관심을 두고 활동하고 있다. 저서로 『객체지향 소프트웨어 공학』(2017), 『UML로 배우는 시스템 분석 설계』(2018), 『시스템 분석 및 설계 with 애자일』(2021), 『소프트웨어 공학의 모든 것 워크북』(2024)이 있다.

정보제공 : Aladin

목차


목차

제1부 : 전통적 방법론

 제1장 소프트웨어와 소프트웨어 개발 개요

  1.1 소프트웨어와 시스템 = 4

   1.1.1 소프트웨어 = 4

   1.1.2 시스템 = 5

  1.2 소프트웨어 위기 = 7

  1.3 소프트웨어 공학 = 9

   1.3.1 소프트웨어의 품질 = 10

   1.3.2 소프트웨어 생산성 = 16

   1.3.3 소프트웨어 공학의 세 가지 측면 = 17

   1.3.4 소프트웨어 엔지니어가 하는 일 = 19

  1.4 소프트웨어 개발 모형 = 20

   1.4.1 폭포수 모형 = 21

   1.4.2 프로토타이핑 모형 = 26

   1.4.3 점중적 모형 = 29

  1.5 소프트웨어 개발에 영향을 미치는 요소 = 30

   1.5.1 의사 소통 = 30

   1.5.2 프로젝트의 성격 = 31

   1.5.3 프로그래머의 역량 = 32

   1.5.4 관리 = 33

  1.6 소프트웨어 공학의 역사 = 33

  1.7 실습 프로젝트 = 37

   1.7.1 프로젝트 진행 방법 = 37

   1.7.2 프로젝트 문제 = 38

    연습문제 = 40

 제2장 계획

  2.1 문제의 정의 = 44

  2.2 일정 계획 = 46

   2.2.1 작업 분해 = 46

   2.2.2 CPM 네트워크 = 47

   2.2.3 프로젝트 일정표 = 50

  2.3. 예산 계획 = 53

   2.3.1 COCOMO 방법 = 54

   2.3.2 기능 점수 방법 = 59

  2.4 조직 계획 = 61

   2.4.1 중앙 집중식 팀 구성 = 63

   2.4.2 분산형 팀 구성 = 64

   2.4.3 혼합형 팀 구성 = 65

  2.5 위험 분석 = 66

  2.6 계획서 작성 = 69

  연습문제 = 71

 제3장 요구 분석

  3.1 요구 분석 = 77

   3.1.1 분석 = 77

   3.1.2 명세화 = 78

  3.2 구조적 분석 = 80

  3.3 자료 흐름도 = 82

   3.3.1 구성 요소 = 82

   3.3.2 추상화와 단계적 분해 = 85

   3.3.3 자료 흐름의 균형 = 86

   3.3.4 자료 흐름도 작성 방법 = 87

   3.3.5 시스템의 진화 = 88

   3.3.6 예: 수강 신청 관리 = 89

   3.3.7 자료 흐름도 다듬기 = 93

  3.4 자료 사전 = 98

  3.5 소단위 명세서 = 100

   3.5.1 구조적 영어 = 101

   3.5.2 의사 결정표 = 104

   3.5.3 의사 결정도 = 106

  3.6 요구 분석 명세서 = 106

   3.6.1 요구 분석 명세서 작성 = 108

   3.6.2 요구 분석 명세서의 평가 = 109

   연습문제 = 110

 제4장 설계

  4.1 설계 원리 = 115

   4.1.1 추상화 = 116

   4.1.2 정보 은닉 = 117

   4.1.3 단계적 분해 = 118

   4.1.4 모듈화 개념 = 119

  4.2 소프트웨어 구조 = 123

  4.3 변환 분석 = 127

   4.3.1 최상위 모듈을 위한 변환 분석 = 128

   4.3.2 하위 모듈을 위한 변환 분석 = 130

   4.3.3 변환 분석에서 고려할 점 = 132

  4.4 처리 분석 = 134

  4.5 자료 설계 = 136

   4.5.1 자료구조 설계 = 136

   4.5.2 데이터베이스 설계 = 138

  4.6 알고리즘 설계 = 140

   4.6.1 알고리즘의 선택 = 140

   4.6.2 알고리즘의 표현 = 143

   4.6.3 내부 자료구조 설계 = 147

  4.7 사용자 인터페이스 설계 = 148

   4.7.1 사용자 분석 = 149

   4.7.2 대화 설계 원리 = 150

   4.7.3 상호작용 형태 = 152

   4.7.4 화면 설계 = 160

  4.8 자료구조 중심 설계 = 160

   4.8.1 구조 다이어그램 = 161

   4.8.2 JSP 설계 과정 = 164

  4.9 설계서 작성 = 167

  연습문제 = 172

 제5장 구현

  5.1 프로그래밍 언어의 선택 = 178

   5.1.1 표현력과 적합성 = 179

   5.1.2 단순성, 명확성, 직교성 = 180

   5.1.3 언어의 문형 = 181

   5.1.4 제어구조 = 183

   5.1.5 자료형 = 186

   5.1.6 상수 = 190

   5.1.7 프로시저와 함수 = 190

   5.1.8 프로시저 및 자료 추상화 = 192

   5.1.9 재사용 = 193

  5.2 4세대 프로그래밍 언어 = 195

  5.3 비주얼 프로그래밍 언어 = 197

  5.4 구조적 코딩 기법 = 210

  5.5 코딩 스타일 = 203

   5.5.1 스타일1 : 명확하게 작성하라 = 203

   5.5.2 스타일2 : 수식에서 의미하는 바를 간결하고 직접적으로 표현하라 = 206

   5.5.3 스타일3 : 임시변수의 사용을 피하라 = 208

   5.5.4 스타일4 : 혼돈을 초래하지 않을 변수명을 선택하라 = 208

   5.5.5 스타일5 : 일관성 있는 변수명을 사용하라 = 209

   5.5.6 스타일6 : 문장 그룹이 명확히 구별되도록 { } 와 들여 쓰기를 사용한다 = 210

   5.5.7 스타일7 : 두 가지 중 하나가 선택되는 제어구조는 if...else로 강조한다 = 210

   5.5.8 스타일8 : if다음에 if가 따라오는 구조나 null else는 피할 것 = 211

   5.5.9 스타일9 : 문장의 반복은 최소화한다 = 212

   5.5.10 스타일10 : 모듈화하라, 서브루틴을 사용하라 = 213

   5.5.11 그 밖의 원칙들 = 215

  5.6 원시 코드의 문서화 = 215

  연습문제 = 219

 제6장 테스트

  6.1 테스트 = 224

  6.2 테스트의 원리 = 225

  6.3 화이트 박스 테스트 = 229

   6.3.1 논리 흐름도에 의한 표현 = 230

   6.3.2 테스트 케이스 = 234

   6.3.3 화이트 박스 테스트의 수행 = 235

  6.4 블랙 박스 테스트 = 237

  6.5 자료구조 중심 테스트 = 240

  6.6 통합 테스트 = 241

   6.6.1 동시식 통합 = 243

   6.6.2 하향식 통합 = 243

   6.6.3 상향식 통합 = 244

   6.6.4 연쇄식 통합 = 244

   6.6.5 통합 테스트 계획 = 246

   6.6.6 기타 통합 테스트 = 247

  6.7 인수 테스트 = 251

  연습문제 = 252

 제7장 유지 보수

  7.1 유지 보수 작업 = 259

   7.1.1 유지 보수 작업 = 260

   7.1.2 유지 보수 접근 방법 = 262

   7.1.3 유지 보수 비용 = 263

   7.1.4 유지 보수에서의 문제점 = 264

  7.2 소프트웨어 형상 관리 = 265

   7.2.1 관리적인 측면 = 266

   7.2.2 기술적인 측면 = 268

  7.3 소프트웨어 척도 = 272

   7.3.1 복잡도 측정 = 272

   7.3.2 Halstead의 척도 = 273

  7.4 유지 보수 방법 및 도구 = 276

   7.4.1 유지 보수 방법 = 276

   7.4.2 유지 보수 도구 = 279

   연습문제 = 282

 제8장 사례 연구1: 비디오 대여점

  8.1 문제 정의 및 계획 = 284

   8.1.1 문제 정의 = 284

   8.1.2 계획 = 285

  8.3 요구 분석 = 290

  8.3 설계 = 294

   8.3.1 구조 설계 = 294

   8.3.2 프로그램 및 UI 설계 = 298

  8.4 테스트 = 298

제2부: 객체지향 방법론

 제9장 객체지향 패러다임

  9.1 절차식 패러다임의 문제점 = 305

   9.1.1 낮은 생산성 = 305

   9.1.2 높은 유지 보수 비용 = 307

   9.1.3 분석, 설계, 구현의 분리 = 308

   9.1.4 소프트웨어 비용 = 309

  9.2 문제의 본질 = 309

   9.2.1 원시 코트에 스며든 요구 명세 = 310

   9.2.2 최상위 모듈 없는 프로그램 = 312

   9.2.3 하향식 설계의 문제점 = 314

  9.3 모듈러 프로그래밍 = 314

   9.3.1 모듈을 이용한 프로그램 = 314

   9.3.2 제너릭 패키지의 이용 = 316

  9.4 객체지향 프로그래밍 = 316

   9.4.1 상속 = 317

   9.4.2 동적 바인딩 = 320

   9.4.3 객체지향 프로그램의 예 = 322

  9.5 객체지향 분석 및 설계 = 329

  연습문제 = 332

 제10장 객체지향 프로그래밍의 원리

  10.1 클래스 = 337

  10.2 상속 계층의 정의 = 341

  10.3 접근 제어 = 345

  10.4 상속 = 348

   10.4.1 단일 상속 = 348

   10.4.2 다중 상속 = 349

  10.5 객체 = 356

  10.6 메모리에서의 객체 표현 = 361

  10.7 다형성 = 364

  10.8 추상 클래스 = 367

  연습문제 = 370

 제11장 객체와 클래스

  11.1 객체 = 372

   11.1.1 상태 = 374

   11.1.2 행위 = 377

   11.1.3 정체성 = 381

  11.2 클래스 = 385

  11.3 객체 및 클래스 사이의 관계 = 387

   11.3.1 사용 관계 = 387

   11.3.2 포함 관계 = 390

   11.3.3 상속 관계 = 392

   11.3.4 연관 관계 = 398

   연습문제 = 400

 제12장 C++ 프로그래밍에서의 클래스

  12.1 클래스의 정의 = 403

   12.1.1 개요 = 403

   12.1.2 멤버 함수의 정의 = 404

   12.1.3 보호 단위로서의 클래스 = 406

   12.1.4 생성자 = 407

   12.1.5 중복된 멤버 함수 = 411

   12.1.6 인라인 함수 정의 = 414

   12.1.7 상수 인스턴스 = 417

   12.1.8 오퍼레이터 함수 = 419

   12.1.9 생성자의 타입 변환 함수 역할 = 423

   12.1.10 스트림 I/O = 425

   12.1.11 프렌트 함수 = 428

   12.1.12 클래스 Rrctangle = 430

   12.1.13 부속 객체의 초기화 = 431

   12.1.14 클래스 안에서 정의된 열거형의 사용 = 433

   12.1.15 상수 데이터 멤버 = 433

   12.1.16 Point와 Rectangle의 입출력 함수 = 435

  12.2 클래스의 자원 관리 = 437

   12.2.1 메모리 누수와 소멸자 = 439

   12.2.2 고립된 포인터와 클래스 배정문 = 442

  12.3 프로그램 실행 = 449

  12.4 클러스터 = 459

   12.4.1 클래스 LinkedList = 459

   12.4.2 객체 사이의 상호작용 = 462

   12.4.3 클래스 LinkedList의 구현 = 464

   12.4.4 클래스 Link = 466

   12.4.5 클래스 LinkedListIterator = 468

   연습문제 = 470

 제13장 상속과 가상 함수

  13.1 상속 = 473

  13.2 보호 접근 = 475

  13.3 가상 함수 = 477

   13.3.1 상속 함수의 대치 = 477

   13.3.2 멤버 함수의 정적 및 동적 바인딩 = 479

  13.4 비공개 상속 = 482

  13.5 프렌드 함수 = 484

   13.5.1 클레스 Item = 484

   13.5.2 클래스 LinkedList = 490

   연습문제 = 494

 제14장 객체지향 분석과 설계

  14.1 객체지향 개발과정 = 498

   14.1.1 개발 모형 = 498

   14.1.2 시스템 모형 = 501

  14.2 객체지향 분석 = 509

   14.2.1 문제 정의 = 510

   14.2.2 객체 모형화 = 513

   14.2.3 동적 모형화 = 525

   14.2.4 기능 모형화 = 534

  14.3 객체지향 설계 = 538

   14.3.1 시스템 설계 = 538

   14.3.2 객체 설계 = 543

  14.4 UML = 547

   14.4.1 사용 사례 다이어그램 = 549

   14.4.2 클래스 다이어그램 = 551

   14.4.3 상호작용 다이어그램 = 553

   14.4.4 패키지 다이어그램 = 556

   14.4.5 배치 다이어그램 = 557

   연습문제 = 558

 제15장 객체지향 테스트와 메트릭스

  15.1 객체지향 테스트의 차이점 = 563

  15.2 객체지향 테스트의 방법 = 565

   15.2.1 단위 테스트 = 565

   15.2.2 통합 테스트 = 565

  15.3 명세 기반 테스트 = 569

   15.4.1 클래스의 복잡도 = 576

   15.4.2 클래스 사이의 상호작용 = 577

   15.4.3 클래스 사이의 상속 관계 = 577

   15.4.4 재사용성 = 578

   연습문제 = 578

 제16장 사례 연구2 : 급여 시스템

  16.1 급여 시스템 문제 = 579

  16.2 클래스 추출 = 580

  16.3 사용 사례 분석 = 582

   16.3.1 신입 사원 입력 = 583

   16.3.2 퇴직 사원 삭제 = 584

   16.3.3 타임카드 입력 = 585

   16.3.4 판매 영수증 입력 = 585

   16.3.5 조합 서비스 요금 입력 = 586

   16.3.6 사원 정보 변경 = 587

   16.3.7 급여일 = 588

  16.4 클래스의 추가 발견 = 590

  16.5 동적 분석 = 592

   16.5.1 신입 사원 추가 = 592

   16.5.2 퇴직 사원 삭제 = 594

   16.5.3 타임카드, 판매 영수증, 서비스 요금 입력 = 594

   16.5.4 사원 정보의 변경 = 595

   16.5.5 급여 지급 = 601

   16.5.6 메인 프로그램 = 602

  16.6 C++ 언어를 이용한 구현 = 603

   16.6.1 PayrollDomain 서브 시스템 = 603

   16.6.2 PayrollFactory 서브 시스템 = 604

   16.6.3 PayrollImplementation 서브 시스템 = 605

제3부 : 기타

 제17장 정보공학 방법론

  17.1 정보 전략 계획 수립 = 612

  17.2 비즈니스 영역 분석 = 614

   17.2.1 비즈니스 데이터 분석 = 615

   17.2.2 비즈니스 기능 분석 = 622

  17.3 시스템 설계 = 634

   17.3.1 액션 다이어그램 작성 = 635

   17.3.2 메뉴 구조도 및 메뉴 흐름도 작성 = 640

   연습문제 = 642

 제18장 소프트웨어 공학 동향

  18.1 CASE = 645

   18.1.1 CASE 개념 = 645

   18.1.2 CASE 기술 = 646

   18.1.3 소프트웨어 개발 환경 = 648

   18.1.4 상위 CASE = 650

   18.1.5 하위 CASE = 653

   18.1.6 통합 CASE = 656

  18.2 사용자 인터페이스 관리 시스템 = 657

   18.2.1 X Window = 659

  18.3 소프트웨어 재사용 = 661

   18.3.1 불록 구성 방법 = 663

   18.3.2 생성 방법 = 663

   18.3.3 소프트웨어 부품화 기술 = 664

   18.3.4 객체지향 개념에 의한 재사용 = 667

  18.4 소프트웨어 리엔지니어링 = 668

   18.4.1 배경 = 668

   18.4.2 리엔지니어링과 관련된 정의 = 670

   18.4.3 리엔지니어링의 목적 = 671

   18.4.4 리엔지니어링 기술 = 672

  18.5 실시간 소프트웨어 설계 = 679

   18.5.1 실시간 시스템에서의 이슈 = 680

   18.5.2 실시간 시스템 설계 기법 = 681

부록 : 프로젝트 문제 = 684

 참고문헌 = 699

 찾아보기 = 702



관련분야 신착자료

Harvard Business Review (2025)