분류 전체보기 348

[소공 시험공부] Software Evolution

비즈니스 환경이 변하고, 컴퓨터 장비 스펙도 오르고, 신뢰성 향상을 위해서는 소프트웨어의 변화는 필요하다 Software 시스템 자체로서 중요한 비즈니스 자산이고, 이 가치를 유지하기 위해서는 반드시 change, update가 필요하다.대부분 예산을 새로운 것들을 개발하는게 아니라, SW 변경과 진화에 사용하게 된다. 그래서 대부분 소프트웨어는 개발(development), 진화(evolution), 서비스(servicing), 퇴출(retirement) 과정을 거치게 된다 이 중 development와 evolution 단계에서는 명세(specification), 구현(implementation), 운영(operation), 검증(validation) 단계가 반복된다.  Program understa..

[소공 시험공부] Software Testing

Program Testing은 프로그램이 의도하는 대로 작동, 결함을 발견하기 위해서 하는 것이다. 어떤 것을 테스트 하는지를 기준으로 보면 Validating Testing, Defect Testing이 있다.  Validating Testing은 사용자의 요구사항을 충족함을 보이고, 의도한 대로 시스템이 작동하는지 보이는 것이다.Defect Testing은 잘못된 동작, 명세와 일치하지 않는 결함을 발견. 잘못 동작하도록 하여 결함을 노출시킨다. 결함을 찾는 것! Q) 이러한 Testing을 어떻게 해서 어떤 것을 확인하면 되나요? artificial data를 사용하여 프로그램을 실행하고, 테스트 결과로부터 오류와 비기능적 속성을 확인한다.  프로그램 품질 보장, 결함을 발견하기 위해서는 Inspe..

[시스템 프로그래밍] 10. Floating Point Processing

Floating-Point Binary Representation부동 소수점 이진 표현 부동 소수점 십진수는 세 가지 구성 요소를 포함함부호 (Sign), 가수 (Significand 또는 Mantissa), 지수 (Exponent)예: -1.23154 x 10^5에서 부호는 음수, 가수는 1.23154, 지수는 5IEEE Binary Floating-Point RepresentationIEEE 이진 부동 소수점 표현  x86 프로세서는 IEEE 754-1985 표준에 지정된 세 가지 형식을 사용 단정밀도 (Single Precision)32비트: 부호 1비트, 지수 8비트, 가수 23비트. approximate 정규화 범위: 2^-126 ~ 2^127. "short real"이라고도 함.Double P..

[소프트웨어 공학] 13. Software Reuse

Software reuse대부분의 공학 분야에서 시스템은 다른 시스템에서 사용된 기존 구성 요소를 조합하여 설계됩니다.소프트웨어 공학은 원래 개발에 더 집중했지만, 이제는 더 나은 소프트웨어를 더 빠르게, 더 저렴하게 달성하기 위해 체계적인 소프트웨어 재사용(systematic software reuse)에 기반한 설계 프로세스가 필요하다는 것을 인식하게 되었습니다.과거에는 커스텀 소프트웨어를 만들었지만, 현재 에자일 환경에서는 온라인 서비스 환경속에서 소프트웨어 재사용이 중요하게 되었다.지난 10년 동안 재사용 기반 개발로의 큰 전환이 있었고, 변화는 계속 진행 중입니다.(교수님이 캡디할 때 Reuse 해서 좋은 작품을 만드는게 좋다고 합니다)Reuse-based software engineeringS..

[컴퓨터네트워크] 15. 표준 클라이언트/서버 프로토콜 (2)

클라이언트-서버 프로토콜(2)E-mail (전자메일)이용자 간 메시지 교환이 응용 서비스는 지금까지 본 다른 응용과는 다르다.Client/server 프로그래밍은 좀 더 다른 방식으로 구현해야 함중간에 다른 서버를 필요로 함프로토콜SMTPPOPIMAP(SMTP를 주로 사용하고, POP와 IMAP은 나중에 추가된 프로토콜)MIME(Multipurpose Internet Mail Extensions) : 컨텐츠 형식(인코딩 해서 보낼 형식임)이메일 서비스 구조MTA Server/ClientMessage Transfer Agent메일 보낼 때MAA Server/ClientMessage Access Agent메일 읽을 때UA메일 클라이언트 (요즘은 web)그림 13.12에서 Alice와 Bob이 이메일을 교환한..

[컴퓨터네트워크] 14. 표준 클라이언트/서버 프로토콜 (1)

표준 클라이언트/서버 프로토콜 (1)WWW and HTTPWorld Wide Web (abbreviated WWW or Web)가장 많이 사용되는 인터넷 서비스Hyper-Text Transfer Protocol (HTTP)웹 요청과 응답 메시지를 교환하는 프로토콜(보통 웹 요청은 클라이언트가 서버에게, 응답 메시지는 서버가 클라이언트에게)WWWTim Berners-Lee in 1989 at CERNEuropean Organization for Nuclear Research유럽의 여러 연구자들이 다른 위치에 있는 각자의 연구 자료들을 엑세스하기 위해 고안상용 웹은 1990년 초에 시작HTTPHyperText Transfer Protocol (HTTP)웹 페이지의 요청과 응답 전달 프로토콜HTTP 클라이언트..

[컴퓨터네트워크] 13. 응용계층 소개(2)

응용계층 소개(2)C 반복적 프로그래밍TCP 반복적 프로그래밍 (서버)Scoket()으로 소켓 생성Bind()로 지정된 서버 주소와 포트 설정Listen()으로 클라이언트로부터의 연결을 기다리는 준비를 함Accept()를 호출하면, 연결을 기다림 (block)Recv()로 데이터 수신Send()로 데이터 송신TCP 반복적 프로그래밍 (클라이언트)Socket()으로 소켓 생성Connect()로 지정된 서버로 연결 설정 (block)연결 완료, 혹은 에러 시 block 해제Recv()로 데이터 수신Send()로 데이터 송신 Echo 서버 프로그램 Echo 클라이언트 프로그램 Java 반복적 프로그래밍주소와 포트InetAddress classInet4Address classInet6Address classPo..

[컴퓨터네트워크] 12. 응용계층 소개(1)

응용 계층 소개이용자, 혹은 프로그램(프로세스)에게 서비스 제공프로그램을 위한 다양한 네트워크 서비스 제공원격컴퓨터접근, 파일전송, 이메일전송, ...서비스 제공표준(standard) 응용계층 프로토콜(보통 RFC 표준 문서와 절차를 통해서 그 내용을 구현함)비표준(nonstandard, proprietary) 응용계층 프로토콜(개인적인 그룹, 집단에서 자체적으로 구현한 것)응용계층 패러다임Client-server paradigmTraditional paradigmPeer-to-peer paradigmNew paradigmMixed Paradigm 클라이언트-서버 프로그래밍클라이언트는 통신을 시작하고, 요청을 보내는 프로그램서버는 클라이언트의 요청을 서비스하는 응용 프로그램서비스 유형TCPex) 웹, 이..

[컴퓨터네트워크] 11. 전송계층 프로토콜(2)

전송계층 프로토콜(2)TCPTCP에서의 윈도우TCP는 각 방향의 데이터 전송에 2개의 윈도우 사용send windowreceive window하나의 연결에 전체 4개의 윈도우 존재  수신 window수신측이 송신측에서 data를 받으면 close하고,프로세스가 수신측에 있는 data를 pull하면 open이 발생한다흐름 제어 (Flow control)흐름제어는 소비자가 데이터를 이용할 수 있는 속도로 생산자가 데이터를 보내도록 맞추는 것TCP는 흐름제어와 오류제어를 분리TCP 흐름제어 설명에서 오류는 없는 것으로 가정 Example 10.18다음 페이지 예제 10.18은, 수신 윈도우(rwnd)를 잘못 축소시킨 예.파트 a에서 rwnd=12이고, ackNo=206 파트 b에서 송신측은 206-214 패킷..