콘텐츠로 이동

소프트웨어 엔지니어링

강의 설명

이 소프트웨어 엔지니어링 강의는 파이썬을 사용하여 소프트웨어 엔지니어링의 원리와 실제 적용을 소개한다. 이론 강의와 실습 과제를 통해 학생들은 코딩과 테스트부터 배포와 유지 보수에 이르기까지 전체 소프트웨어 개발 수명 주기를 탐험한다. 이 강의는 개별 및 팀 프로젝트를 결합하여 학생들이 협업 소프트웨어 개발에서 실제 경험을 쌓을 수 있도록 한다.

학습 목표

이 강의를 마치면 학생들은 다음을 수행할 수 있다.

  1. 소프트웨어 엔지니어링의 원리와 실천 이해하기.
  2. 복잡한 소프트웨어 문제를 해결하기 위해 파이썬 프로그래밍 적용하기.
  3. 다양한 소프트웨어 개발 방법론 및 버전 관리 시스템 사용하기.
  4. 소프트웨어 테스트, 디버깅 및 최적화 수행하기.
  5. 팀 환경에서 협력하고 소프트웨어 프로젝트 효율적으로 관리하기.

강의 개요

1주차: 소프트웨어 엔지니어링 소개

  • 소프트웨어 엔지니어링 소개
  • SDLC (소프트웨어 개발 수명 주기) 소개
  • 고품질 소프트웨어 구축

2주차: 소프트웨어 개발 이해하기

  • 소프트웨어 개발 방법론
  • 소프트웨어 버전
  • 소프트웨어 테스트

3주차: 프로그래밍 언어

  • 해석 및 컴파일 프로그래밍 언어
  • 컴파일 및 해석 프로그래밍 언어 비교
  • 쿼리 및 어셈블리 프로그래밍 언어

4주차: 코드 구성 및 논리

  • 파이썬에서 코드 구성 방법 이해하기
  • 파이썬에서 분기 및 루핑 프로그래밍 논리
  • 파이썬에서의 함수와 클래스

5주차: 소프트웨어 아키텍처

  • 소프트웨어 디자인 및 모델링
  • 파이썬에서 객체 지향 분석 및 설계
  • 응용 프로그램 아키텍처 접근 방식

6주차: 고급 소프트웨어 아키텍처

  • 소프트웨어에서의 아키텍처 패턴
  • 응용 프로그램 배포 환경
  • 생산 배포 구성 요소

7주차: 버전 관리

  • 버전 관리를 사용하는 이유
  • 버전 관리의 개별 사용
  • GitHub 코드 게시

8주차: (중간시험 주)

  • Git을 통한 다른 사람과의 협업
  • 분기, 리베이스 및 병합
  • 중간고사

9주차: 테스트 및 디버깅

  • 테스트하는 이유?
  • 단위 테스트, 회귀 테스트, 부정 테스트
  • 모의 객체 및 디버깅 기법

10주차: 소프트웨어 프로젝트 관리

  • 패키지로 코드 변환
  • 코드 출시
  • 오픈 소스 라이선스 선택

11주차: 코드 구조 및 설계

  • 주석, 코딩 규약, 린터
  • 리팩터링 기법
  • 객체 지향 및 디자인 패턴

12주차: 파이썬 고급 프로그래밍 기법

  • 파이썬 함수형 프로그래밍
  • 파이썬 메타 프로그래밍
  • 덕 타이핑, 예외, 연산자 오버로딩

13주차: 파이썬 속도 프로그래밍

  • 파이썬 최적화 및 프로파일링
  • 규모 법칙
  • NumPy와 Cython 소개

14주차: 파이썬 파일 형식 및 구문 분석

  • 직렬화 및 역직렬화
  • 도메인 특정 언어 및 템플릿 언어
  • 이진 파일 형식 및 구문 분석기

15주차: 검토 및 프로젝트 제출

  • 모든 주제의 종합적인 검토
  • 모범 사례 논의
  • 학기 프로젝트 마감

성적

  • 참여: 10%
  • 중간고사: 30%
  • 학기 프로젝트: 60%

강의 노트

강의 노트는 온라인으로 제공