Key Claims
소프트웨어 공학 3R
- 역공학(Reverse Engineering): 완성된 소프트웨어를 CASE 도구로 요구분석서·설계서로 추출.1
- 재공학(Re-Engineering): 기존 소프트웨어를 폐기하지 않고 기능 개선 또는 재활용. 예방 유지보수(Preventive Maintenance).1
- 재사용(Re-use): 합성 중심(블록 끼워맞추기) + 생성 중심(추상화 명세 → 구체화).1
소프트웨어 개발 방법론
- SDLC 단계: 요구사항 분석 → 설계 → 구현 → 테스트(단위/통합/시스템/인수) → 유지보수(예방/완전/교정/적응).2
- 구조적: 절차지향, 하향식, DFD/DD/STD.2
- 객체지향: 캡슐화, 정보은닉, 상속, 다형성, 추상화.2
- 애자일: 절차보다 변화 대응. XP, SCRUM, FDD, Crystal.2
비용 산정
- LOC(원시 코드 라인수) 공식:
(낙관치 + 4×중간치 + 비관치) / 6.3 - 비용 산정 기법: 하향식(전문가 판단, 델파이), 상향식(LOC, MM), 수학적(COCOMO, PUTNAM, FP).3
설계 원리
- 분할과 정복, 추상화(과정/데이터/제어), 단계적 분해, 모듈화, 정보 은닉(캡슐화와 연관).4
UI 설계 원칙 (중요)
서버 아키텍처
- WEB 서버: 정적 파일 제공 (Apache, Nginx).6
- WAS: 동적 콘텐츠 처리 미들웨어 (Tomcat, WebLogic).6
- DBMS 서버: 데이터 저장·관리 (Oracle, MySQL).6
- Load Balancer: 분배 방식 - Random, Least Loaded, Round Robin.6
- CDN: 사용자와 가까운 서버에 컨텐츠 분산 캐싱. 대용량 미디어 전송 속도 향상.6
운영체제 기초
- 기억장치 계층: 레지스터 → 캐시 → 주기억장치(ROM/RAM) → 보조기억장치.7
- SRAM: 전원 유지 중 내용 보존. DRAM: 일정 시간 후 소멸(일반 RAM).7
- 제어 프로그램: 감시 프로그램 + 작업 관리 프로그램 + 데이터 관리 프로그램.7
Footnotes
Footnotes
-
content/Study/정보처리기사/2023-07-11-소프트웨어 설계.md ↩