1 / 22

소프트웨어 공학의 소개

소프트웨어 공학의 소개. 금오공과대학교 컴퓨터공학부 이이섭. 소프트웨어공학이란 ?. 1970 년대 후반 . PDP8, PDP11, PDP11/34,  PDP11/70, VAX, 그리고  RT11, VAX/VMS 등으로 너무나도 유명했던 DEC. 이제는 역사의 한 페이지를 장식한 후 서서히 잊혀져가고 있습니다 . 음 ... 30 년 사이에 몇배가 되었나요 ?  2 GB/64kB = ? 200 GB/10MB = ? 수천만원 ( 수십만원 / 화폐가치 하락율 = ? 31250 20000 30

ledell
Download Presentation

소프트웨어 공학의 소개

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 소프트웨어 공학의 소개 금오공과대학교 컴퓨터공학부 이이섭

  2. 소프트웨어공학이란? • 1970년대 후반. • PDP8, PDP11, PDP11/34,  PDP11/70, VAX, 그리고 RT11, VAX/VMS 등으로 너무나도 유명했던 DEC. 이제는 역사의 한 페이지를 장식한 후 서서히 잊혀져가고 있습니다. • 음... 30년 사이에 몇배가 되었나요?  • 2 GB/64kB = ? • 200 GB/10MB = ? • 수천만원(수십만원/화폐가치 하락율 = ? • 31250 • 20000 • 30 • 18,750,000,000 금오공과대학 컴퓨터공학부 컴퓨터공학전공

  3. F22와 소프트웨어 • 미국의 록히드 마틴에서 만드는 최신예 F22 Raptor 전투기의 기능의 80%가 소프트웨어로 제어 • 소프트웨어가 총 천만 라인 • 휴대폰의 소프트웨어 몇 백만 라인 금오공과대학 컴퓨터공학부 컴퓨터공학전공

  4. 강의 내용 • 강의 내용 • 소프트웨어 공학 • 객체 지향 분석/설계 • UML • UP • Design Pattern • 교재: Applying UML and Patterns 3ed • 강의 방법 • 이론 • 과제 금오공과대학 컴퓨터공학부 컴퓨터공학전공

  5. 과제 • 과제 내용 • 게시판에 각 장마다 과제 게시 • 교재에 있는 예제에 대학 산출물을 각 단계가 끝날 때마다 정리하여 제출 • 과제 제출 방법 • 과제 제출 게시판에 올릴 것 • 과제의 과제의 본문에는 Discussion을 작성할 것 • 게시물의 제목은 아래와 같이 작성 • 2007 소프트웨어공학 과제 1 학번 이름 • 과제는 첨부물로 업로드 시키며, 파일의 제목도 게시물의 제공과 동일하게 작성 • 절대 타인의 과제를 카피하지 말 것 • 카피 발견 시 모든 과제 점수는 0점 처리 • 정확한 답이 아니어도 자신의 생각을 정리할 것 금오공과대학 컴퓨터공학부 컴퓨터공학전공

  6. APPLYING UML AND PATTERNSPART I. IntroductionChapter 1. Object-Oriented Analysis and Design 금오공과대학 컴퓨터공학전공

  7. Objectives • 분석과 설계의 차이점 비교 • OOA/D 정의 • 간단한 예제로 설명 금오공과대학 컴퓨터공학부 컴퓨터공학전공

  8. 1.1 무엇을 배울 것인가? 과연 유용한가? • 자바나 C++로 수준 높은 프로그램을 작성하려면? • 객체지향 분석 및 설계 기술(OOA/D) • well-designed, robust, maintainable한 소프트웨어 개발에 중요한 요소이다. • robustness: 잘못된 환경이나 입력에 대해서도 잘못된 동작이나 이상한 결과를 내지 않는 능력 • 다음 기술을 적용한 OOA/D를 공부할 것임 • Unified Modeling Language (UML) • Patterns • Unified Process (UP) 금오공과대학 컴퓨터공학부 컴퓨터공학전공

  9. 기본 개념 • UML • 소프트웨어 모델링을 위한 표준 다이어그램 표기법 • 객체지향 분석 및 설계 방법이 아닌, 단지 표기법(notation)이다. • 본 교재에서는, UML 적용 방법을 배울 것이다. • Design Patterns • 자주 발생하는 설계 문제와 그 해답을 체계적으로 표현함 • Unified Process • 반복적인(iterative) 개발 과정 금오공과대학 컴퓨터공학부 컴퓨터공학전공

  10. 본 교재에서 배울 주제와 기술들 OOA/D Patterns UML notation Topics and Skill Principles and Guidelines Requirement analysis Iterative development With UP 금오공과대학 컴퓨터공학부 컴퓨터공학전공

  11. 1.2 Assigning Responsibilities • OOA/D에서 가장 중요한 능력은, 책임(responsibilities)를 소프트웨어 컴포넌트(software components)들에게 기술적으로 할당하는 것이다. • 객체를 설계하고 책임을 할당하는 데 9가지 기본적인 원칙이 설명되고 적용된다. 이러한 원칙들은 Information Expert와 Creator 같은 원칙들의 GRASP라 불리는 학습 보조 장치 안에 구성된다. 금오공과대학 컴퓨터공학부 컴퓨터공학전공

  12. 1.3 What Is Analysis and Design? • 분석(Analysis) • 해결책(solution)보다는 문제와 요구사항(requirements)을 조사하는데 중점을 둔다. • 설계(Design) • 구현(implementation) 보다는 요구 사항을 실현시키는 개념적 해결책(conceptual solution)에 중점을 둔다. 금오공과대학 컴퓨터공학부 컴퓨터공학전공

  13. Book title 1.4 What Is Object-Oriented Analysis and Design? 분석 설계 구현 domain concept visualization of domain concept representation in an object-oriented programming language public class Book { private String title; public Chapter getChapter(int) {…} } 문제 영역에서의 객체와 개념을 찾고 표현한다. 소프트웨어 객체를 정의하고, 요구사항을 실현하기 위해 그들이 어떻게 협동하는지를 정의한다. 객체들이 실제 언어로 구현된다. 금오공과대학 컴퓨터공학부 컴퓨터공학전공

  14. Define use cases Define domain model Define interaction diagrams Define design class diagrams 1.5 An Example • Dice Game • 플레이어(Player)가 두 주사위를 던져서, 합이 7이면 이기고, 그렇지 않으면 지는 게임 • A birds-eye view of OOA/D • Use case: Domain Processes • Domain model: Domain concepts or objects • Interaction diagram: Flow of msgs between softwareobjects • Design class diagram: name, attr., method 금오공과대학 컴퓨터공학부 컴퓨터공학전공

  15. Define Use Cases • Use Case • 요구 사항 분석 결과는 쓰임새(Use Cases)로 표현된다. • 사용자의 입장에서 시스템의 기능 및 사용 방법 등을 기술한다. Play a Dice Game A player picks up and rolls the dice. If the dice face value total seven, they win; otherwise, they lose. Player 금오공과대학 컴퓨터공학부 컴퓨터공학전공

  16. Define a Domain Model • 도메인 모델(Domain Model) • 객체 관점에서 도메인에 대하여 기술 • 개념, 속성, 관계(association) 등을 식별함 금오공과대학 컴퓨터공학부 컴퓨터공학전공

  17. Define Interaction Diagrams • Interaction Diagram • 소프트웨어 객체(software object)와 그들 사이의 협동 관계(collaborations)를 기술한다. • 객체 사이의 메시지 전송을 표현한다. 책임을 할당한다 :DiceGame die1:Die die2:Die play() roll() getFaceValue() roll getFaceValue() DiceGame 객체가 die1객체의 getFaceValue( ) 메소드를 호출한다. 금오공과대학 컴퓨터공학부 컴퓨터공학전공

  18. Define Design Class Diagrams • Design Class Diagrams • 클래스들의 정적인 뷰(Static view)를 정의함 • 클래스의 속성과 메소드를 보여준다. 금오공과대학 컴퓨터공학부 컴퓨터공학전공

  19. 그러면 코딩은? • 코딩의 문제점 • 코딩의 장점 금오공과대학 컴퓨터공학부 컴퓨터공학전공

  20. 주요 방법론 • 구조적 방법론 • 계기: 구조적 프로그래밍 언어 • 핵심 내용: • Bottom-up  Top-down • Function 및 프로세스 중심 • DFD • 정보공학방법론 • 계기: RDB • 핵심 내용: • 정보 즉 자료 중심: 자료는 프로세스보다 안정적 • ERD • 객체지향방법론 • 계기: 객체지향 언어 • 핵심 내용: • 객체 = Data + Method • 객체지향방법론 = 구조적 방법론 + 정보공학방법론 + alpha • UML 금오공과대학 컴퓨터공학부 컴퓨터공학전공

  21. 1.6 The UML • The method war • Booch, OMT, OOSE, Fusion, Coad/Yourdon • UML • Standard at OMG(Object Management Group), 1997 • A standard for graphical notation, not methodology • 소프트웨어 시스템 산출물을 specifying(명세화), visualizing(가시화), constructing(구축), documenting(문서화) 하는데 사용되는 언어 • UML Profile • Ex. UML EJB Profile • UML meta-model 금오공과대학 컴퓨터공학부 컴퓨터공학전공

  22. UML • UML을 적용하는 3가지 방법 • 스케치로서의 UML • 청사진의로서의 UML • 프로그래밍 언어로서의 UML • Agile 모델링은 스케치로서의 UML을 중요시함 • UML 적용에 대한 세가지 관점/ 클래스의 의미 • 개념적 관점 / 개념적 클래스 • 명세적 관점 / 소프트웨어 클래스 • 구현적 관점 / 구현 클래스 금오공과대학 컴퓨터공학부 컴퓨터공학전공

More Related