E D R , A S I H C RSS

Software Engineering Class

소프트웨어 공학 수업

  • 주대상: 3학년

  • 교수: 이경환 교수님 (홈페이지)

  • 주교재: 최신 소프트웨어 공학, 이경환

  • 참조자료 : SWEBOK

  • 강의내용: 소프트웨어 개발 공정에 대한 전반적인 이론.

  • 실습: 2001 년도까지는 '정보처리실습' 이라는 과목으로 실습과정이 있었으나 지금은 사라짐.

참고 자료

추천서적
  • Software engineering, Ian Sommerville : 최근 세계적으로 가장 많이 쓰이고 있는 SE 교과서. 탁월.

추천사이트/타학교수업

관련페이지



  • 컴퓨터 공학과 전공 수업을 통틀어 다섯 손가락 안에 꼽을 수 있을 정도로 중요한 역할을 하는 과목이다. 그러나 중앙대학교 컴퓨터 공학과에서 이 과목의 위상은 그다지 크지 않은 듯 하다. 내가 생각하는 첫번째 문제는 교재에 있다. 두번째는 비현실적인 실습내용이다. 구체적이고 실용적인 실습이 필요하다. 세번째는 학생들의 인식부족이다. 소프트웨어 공학 수업이 자신의 프로그래밍 커리어에 얼마나 많은 실질적 효용을 줄 수 있는지 전혀 깨닫지 못한다. 물론 이것은 대부분 수업 자체의 문제에서 연유한다.

  • 수업에서 원하는 것을 얻지 못하는 경우 수강은 하되 독학 혹은 학생 차원의 그룹 스터디를 할 것을 강력하게 권한다. 졸업 후 어디를 가건 두고 두고 유용하게 쓰일 것이다. 외국 유명 대학 경우 AOD/VOD로 수업 내용을 볼 수 있는 곳이 많이 있다.

  • 본인은 거의 독학으로 SE 공부를 했다. 수업시간에 구조적 프로그래밍(structured programming)에 대해 설명을 들었을 때는 전혀 감흥이 없었고 졸음까지 왔다. 기억나는 내용도 없다. 하지만 스스로 공부를 하면서 엄청난 충격을 받았다. OOP는 구조적 프로그래밍의 패러다임을 완전히 벗어나지 못했다! 구조적 프로그래밍을 Goto 제거 정도로만 이해하는 것은 표피적 이해일 뿐이다! 구조적 프로그래밍 하나만 제대로 익혀도 내 생산성은 엄청나게 향상될 것이다! (참고로 정말 구조적 프로그래밍이 뭔지 알고 싶은 사람들은 다익스트라의 6,70년대 이후의 저작들을 읽어보길 권한다. 칸트 철학을 공부하는 사람이 칸트의 1차 저술을 읽지 않는다는 게 말이 되겠는가.) --김창준


neocoin:수업 무지하게 재미있음. 더 자세한 이야기는 수업 종료후 추가. 현재의 느낌은 수업이 커버하는 내용이 너무 방대하여, 재시간안에 지식전달을 다 못할것 같은 교수님의 불안감이 수업에서 느껴지는게 아쉬움 --상민

fnwinter: 수업이 잼있다는 것은 동감...수업 내용이 너무 방대하는 것도 동감..또한...수업이 실제적이지 못하다는 것도 동감...수업에서 너무 많은 내용을 다루어서 그런가 싶다..결론...수업을..듣고..얻은.것이..무엇인가..라는 의문점이 남는다.
-- 정직

1002: 분야가 너무 넓다. 하루 PPT 자료 나아가는 양이 거의 60-70장이 된다. -_-; SWEBOK 에서의 각 Chapter 별로 관련 Reference들 자료만 몇십권이 나오는 것만 봐도. 아마 SoftwareRequirement, SoftwareDesign, SoftwareConstruction, SoftwareConfigurationManagement, SoftwareQualityManagement, SoftwareProcessAssessment 부분중 앞의 3개/뒤의 3개 식으로 수업이 분과되어야 하지 않을까 하는 생각도 해본다. (그게 4학년 객체모델링 수업이려나;)

수업 선택시엔 두 수업이 같은 과정이라 한다면 이경환 교수님의 수업을 신청하기를 권장. 중간중간 노교수님의 연륜이 들릴테니.

  • 막무가내식의 coding에 관한 것이 아닌 직접적인 돈과의 연관성에 대해 알아가는 학문 같다는 느낌. 제한된 기간안의 적절한 cost를 통해 project를 완성(?) 하는 것. 아.. 정말 학기 중기 까지는 재미있었는데. 알바로 인한 피로누적이 수업을 듣지 못하게한 T-T 아쉬움이 너무 많이 남는다. 한번더 들을까..? 원래 이런건 한번더 듣는거 아닌가? ^^a 하하.. 상민이형 필기 빌려줘요. ^^;; -- 영현
    으어 나의 허접한 필기는 보이기도 부끄럽구나. 최근 약학과 교양 듣는 학우가 필기하는거 보고 느낀점 --상민

  • 저도 이 과목의 중요성은 많이 들었습니다만 학교수업으로는 크게 느끼지 못한것 같습니다. 수업도 지루하게 느껴지고 실제적으로 필드에 나갈때나 몸에 와 닿으려나요.. - 임인택

  • 지금 듣는 사람들의 이야기를 들어서는 실습을 하는 과정이 투자하는 시간에 비해서 얻는 것이 좀 적은 것 같다는 생각들을 많이하던데... 실제로 팀을 이룬 사람들중에서 실무를 확실하게 경험해 보지 않은 사람들만 있는 경우에는 이게 더 심하다고 합니다. 전 내년에나 이거 들을 차례가 올것 같은데... 이경환 교수님께서도 이번을 마지막으로 하신다고 하고... 이 과목을 반드시 들어야하나 그런 생각도 좀 드네요. 저의 경우에는 이걸 청강(or 도강;;)식으로해서 이론적인 것을 듣고, 그냥 DB, PL을 들으려고하는데.. 어떨지 모르겠네요. (그런데 컴파일러 과목은 언제 생기는 거지 ㅡㅡ;;) - 박영창
    수업을 청강 할 정도로 내용이 있지는 않아. 그 이유는 딱 한 번만 이경환 교수님 수업을 들어 보면 알게돼. 차라리 관련된 책을 몇 권 보는 게 더 낳을 듯 해. 여튼 개인적으로는 여차여차해서 재수강으로 인해 이번 학기까지 2번째 듣고 있지만 수업 내용 보다는 우리과 수업중 가장 규모가 큰 (기간이나 팀인원수나) 팀 프로젝트를 해 보는 게 이 수업에서 가장 크게 배울 점이라고 생각해. 많은 팀원과 개발 계획부터 시작해서 최종 테스트까지의 일련의 프로젝트 개발 과정을 해 본다는게 확실히 도움이 되지. 그리고 배 보다 배꼽이 더 큰 문서가 좀 성질 나기는 하지만 경험상 해보는 것도 괜찮은 듯 해. --재동
    DeleteMe) ㅡ.ㅡ;; 이거 끝나면 대략 문서만 500~700페이지라던데;; 맞냥;; -- eternalbleu

  • 저희 반 같은 경우에는 현재 컨설팅을 하고 있는 박사과정 선배님이 수업을 맡고 있죠. 가끔가다가 자신이 컨설팅 하는 경험담을 들을 수 있어서 좋다고 생각합니다. 교수님반보다 프로젝트 실습 과정에서 피드백도 더 많은 편이고요. 사실 개인적으로는 소프트웨어 공학에서 요구하는 내용을 경험한 사람이 많지 않기 때문에, 더 자주 피드백이 필요하다고 느끼지만요.
대신에 소프트웨어 개발 과정을 이것이 정답이다라고 정해주려는 면이 있어서 조금 아쉬워요. 이를테면 현재 모든 팀에게 MBase 기반의 LCO를 요구하고 있습니다. 고객의 요구 사항을 포함한 여러가지 의견을 한 번 듣고는 마는 셈이죠.
시간이 나면 ExtremeProgramming에 대해서도 이야기를 하신다는데, 어떤 이야기가 나올지 궁금하네요. SPICE 레벨4는 되어야 사용할 수 있다는 말엔 조금 당황스러웠어요. --Leonardong

  • 나의 생각에 SE 수업을 제대로 배우고 있다면 학기가 지나면서, 혹은 최소한 학기가 끝난 후에 내가 혹은 내 팀이 프로그래밍 과제(꼭 해당 수업 것만 말고)를 하는 "생산성"에 향상이 있어야 한다. 아니 적어도 그런 과제를 수행하는 과정을 이전과는 다른 각도에서 볼 수 있어야 한다. 이것이 Here And Now의 철학이다. 조그마한 학기 프로젝트 정도를 진행하는 데에 소프트웨어 공학은 필요없다고 생각할런지 모르겠으나, 작은 것도 제대로 못하면서 큰 것을 논한다는 것은 어불성설이다 -- 특히 프로젝트 규모가 커질수록 실패확률이 몇 배 씩 높아지는 통계를 염두에 둔다면.

  • 또한, 예컨대 지금 하도급 SI 업체에서 일하는 PM을 한 명 초대해서 그가 이 수업에 대해 생각하는 바를 경청하고, 또 반대로 그에게 조언을 해줄 수 있어야 한다. 만약 현업을 뛰는 사람이 이 수업에서 별 가치를 느끼지 못한다면 그것은 수업자체의 파산이다. 이것 역시 Here And Now의 철학이다. 우리가 배우는 것은 지저분한 진흙탕 세계에 대한 것이 아니고 깔끔한 대리석 세계에 대한 것이라고 생각할런지 모르겠으나, 지금 여기의 현실에 도움이 되지 않는다면 도무지 SE가 존재할 이유가 어디에 있겠는가.

  • SE 교육은 첨탑 끝에서 계단 위로 내려와야 한다. 천상의 공부만 하고 지상으로 내동댕이쳐진 학생들은 다시 천상에 들어갈 기약없는 그 날까지 모든 것을 망각하게 된다 -- 더군다나 천상에 돌아가더라도 여전히 망각의 심연을 헤매거나 혹은 그 때 천상은 이미 또 다른 천상으로 떠나있는 상황이 종종 벌어질 것이다.
--JuNe

SE는 문서란 말을 실감했습니다. 수업에서 요구하는 바는 모든 작업을 하기 전에는 계획서를 작성하고, 계획서에 근거해서 작업을 수행한 뒤, 보고서를 작성하는 것으로 보입니다. 처음 만드는 계획서라 시간이 오래 걸렸겠지만, 다시 계획을 세울 때에 재활용 할 수 있을 것 같습니다. 계획된 프로젝트 진행을 연습해보는 좋은 시간이었던 것 같습니다.
하지만 역할별, 작업별로 만드는 계획서와 보고서에 쏟는 시간이 너무 많다는 생각은 저 뿐만이 아닐 것입니다. 심사시에는 계획서에서 언급하지 않은 활동을 실행했다고 딴지를 걸 정도로, 계획서대로 실행된 내용을 변경없이 실행하는 것이 프로젝트의 반복가능성을 평가하는 기준인것 같습니다. 설계와 구현 사이에서 계획대로 실행 안되는 부분을 극단적으로 느꼈는데, 예를 들어 클래스 다이어그램과 시퀀스 다이어그램이 Refactoring과 같은 코드 재구성 작업을 할 때마다 바뀌어야 했습니다. 다이어그램이 코드로 매칭되지 않기 때문에 코드를 바꿈은 물론 다이어그램을 바꾸는 이중의 수고를 겪어야 했습니다. :( --Leonardong

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2012-01-11 12:10:23
Processing time 0.4811 sec