KGC


Keio University Shonan Fujisawa Campus
Course Summary (Syllabus)


SOFTWARE ENGINEERING (Shuichi Kurabayashi

    Semester : 2014 Spring
    Code : B6098 / 2 Credits


1. Objectives/Teaching method

    基礎的なソフトウェア開発手法を修得する.本講義では,大規模ソフトウエア開発を効率的,かつ,確実に進めるための技法を扱う.プログラミングの基礎的な知識(条件分岐,繰り返し,関数など)学んだ後の次のステップとして,Webアプリケーションを中心とした,実用的,実践的ソフトウェア開発手法を習得する.現在のソフトウェア開発の現場では,Webアプリケーションの普及,iOS/Androidに代表されるスマートフォンの普及,および,クラウド・コンピューティングの普及により,利用者の需要を満たすソフトウェアを,これまで以上に迅速に開発することが求められている.そこで,本授業では,HTML5+JavaScriptを中核として,ソフトウェア・モジュール再利用手法,ソフトウェアパターンといった実践的なソフトウェア開発技法について学ぶ. ソフトウェア開発には、芸術的要素と工学的要素の両面があり、良いソフトウェア開発には両方の経験とスキルが要求される。本講義の特徴とし て,JavaScript言語を中核とし,HTML5とサーバサイドJavaScriptアプリケーションサーバであるNode.js(http://nodejs.org/)を組み合わせることにより,プロトタイプベースのオブジェクト指向プログラミング言語を用いた本格的なWebアプリケーション構築を通じて,中規模・大規模ソフトウェア開発の基礎的スキルを習得する点が挙げられる.高度な例題として, HTML5により可能となったマルチメディアデータ処理とデザインパターンの関係について解説する.具体的には,HTML5に導入された新たな機能である,Videoエレメント,Canvasエレメントを応用,次世代のWebアプリケーションの開発手法を習得する.
    You will learn the basic software development practices. This course deals with the techniques for efficient and large-scale software development This course is provided as the next step after you have learned the basic knowledge of programming skills. This course focuses on practical software development methods. As a case study, we develop a web application exploiting those methods. With widespread use of smartphones and cloud computing, there is a need to develop the software faster than ever. Therefore, in this class, we will learn about practical software development techniques including the reusable software module development and software patterns. Software engineering consists of two aspects: the artistic factors and the pragmatic factors. Both experience and skills are required to develop good software. The unique feature of this lecture is that we will learn a practical software development process through a full-fledged building Web application using a prototype-based object-oriented programming language. We use JavaScript as a core programming language and node.js application server, which provides a server-side JavaScript runtime environment, to build the modern HTML5 and cloud-based software. As advanced topics, this course deals with the design patterns for multimedia data processing in HTML5, including video element and canvas element.


2. Materials/Reading List

    エリック・ガンマ、ラルフ・ジョンソン、リチャード・ヘルム、ジョン・ブリシディース(著)、『オブジェクト指向における再利用のためのデザインパターン』、ソフトバンクパブリッシング、1995。ISBN 978-4797311129.
    Gamma, Erich; Richard Helm, Ralph Johnson, and John Vlissides (1995). Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley. ISBN 0-201-63361-2.
    Meyer, Bertrand (1988), "Object-Oriented Software Construction", Prentice Hall. ISBN 978-0136290315.
    Crockford, Douglas (2008), "JavaScript: The Good Parts", オライリージャパン, ISBN 978-4873113913.
    Stefanov, Stoyan (2010), "JavaScriptPatterns", オライリージャパン, ISBN 978-4873114880.


3. SCHEDULE

    #1 講義概要 Overview
    本講義の内容、進め方、実際に使用するツールの紹介、採点方法に関してガイダンスを行う。
    Clarifies the position of this lecture, contents, how to give lectures, and tools required in this class.

    #2 ソフトウェア工学概論 Introduction to Software Engineering
    大規模ソフトウェア開発を行うことの基本的な考えについて解説する。大規模ソフトウェアの設計、開発、保守について解説し、ソフトウェアの開発サイクルについて理解する。
    Explains the basic idea of making a large-scale software development. Describes the design of large-scale software, development, and maintenance, to understand the software development cycle.

    #3 オブジェクト指向プログラミング(1) Object-Oriented Programming
    ソフトウェア開発における基本として,オブジェクト指向プログラミングを学ぶ.実際にJavaScript言語を用いて、オブジェクト指向プログラミングを学ぶ。
    As the basis for software development, learn object-oriented programming. using the JavaScript language.

    #4 オブジェクト指向プログラミング(2) Object-Oriented Programming
    ソフトウェア開発における基本として,オブジェクト指向プログラミングを学ぶ.実際にJavaScript言語を用いて、オブジェクト指向プログラミングを学ぶ。
    As the basis for software development, learn object-oriented programming. using the JavaScript language.

    #5 デザインパターン(1) Design Pattern
    オブジェクト指向における「典型的な問題解決のパターン」であるデザインパターンについて学ぶ。MVC(Model-View-Control)パターンと呼ばれるユーザインターフェイス構築のパターンを学び、実際に、独自のWebアプリケーションの開発を行う。
    Learn about object-oriented design patterns which is a "patterns for typical problem solving." Learn the pattern of the building user interface called MVC and (Model-View-Control) pattern, and build your own web application based on MVC.

    #6 デザインパターン(2) Design Pattern
    プロトタイプベースのオブジェクト指向プログラミング言語であるJavaScriptを用いて,プロトタイプベースのオブジェクト指向プログラミング言語であるJavaScriptを用いて,デザインパターンを学ぶ.特に,プロトタイプチェーンに代表されるプロトタイプベースのオブジェクト指向固有の機能再利用メカニズムを解説しながら,Chain of Responsibilityパターン,Iterator パターンなどの応用的パターンを習得する.
    Learn design patterns, using JavaScript, which is a prototype-based object-oriented programming language. In particular, describe the prototype chain mechanism, which is a software reuse mechanism in the prototype-based object-oriented language. Learn Chain of Responsibility pattern and Iterator pattern.

    #7 中間課題実習 Practice
    中間課題として,デザインパターンを用いたWebアプリケーション構築を行う.クライアントサイド,および,サーバサイドにおいて,異なるデザインパターンを適用し,クライアント/サーバモデルの効率的な実装方法について実習する.
    Build Web applications using design patterns to practice on how to implement an efficient client / server model. We will give an intermediate assignment to design a MVC-based web application.

    #8 中間課題発表 Interim Presentation
    中間課題の発表を行う。
    Oral presentation of intermediate assignment.

    #9 JavaScriptによるサーバ開発 Server Development with JavaScript
    HTML5とサーバサイドJavaScriptアプリケーションサーバであるnode.jsを組み合わせ,本格的なWebアプリケーション構築を通じて,中規模・大規模ソフトウェア開発の基礎的スキルを習得する.
    learn the basic skills of medium and large scale software development, through building a full-fledged Web applications by combining HTML5 and node.js, which is a server-side JavaScript engine.

    #10 JavaScriptによるAJAX, WebSocketとデザインパターン AJAX, WebS Socket, and Design Pattern using JavaScript
    AJAX(Asynchronous JavaScript + XML)機能をデザインパターンを用いて効果的に実装する方法について解説する。
    Learn how to apply design patterns into AJAX (Asynchronous JavaScript + XML) and WebSocket, for performing asynchronous communication in a web browser, which is a core technology of the Web site called Web2.0. Describes how to effectively implement AJAX functionality using a design pattern.

    #11 高度なWebアプリケーションとデザインパターン Advanced Web Applications and Design Patterns
    HTML5におけるマルチメディア機能である,ビデオ(Video Element),および,画像(Canvas Element)を用いてマルチメディアデータをJavaScriptから制御するアプリケーションを想定し,メディア処理のためのデザインパターンについて学ぶ.
    As advanced topics, this course deals with the design patterns for multimedia data processing in HTML5, including video element and canvas element.

    #12 最終課題(1) Final Reports
    最終課題として,オブジェクト指向プログラミング、デザインパターン,ソフトウェア・モジュール再利用手法を駆使したソフトウェアの設計と実装を行う。最終課題(1)では,自分独自のソフトウェアを設計し,JavaScript言語を用いて実装する.
    Design and implementation of software as a final project, develop your own software by using of object-oriented programming, design patterns, software module reuse techniques. In final project (1),you design your own software, and implement it using JavaScript.

    #13 最終課題(2) Final Reports
    最終課題として,オブジェクト指向プログラミング、デザインパターン、ソフトウェア・モジュール再利用手法を駆使したソフトウェアの設計と実装を行う。
    Design and implementation of software as a final project, develop your own software by using of object-oriented programming, design patterns, software module reuse techniques.

    #14 最終課題発表とまとめ(1) Final Presentation and Summary
    最終課題の発表を行う。さらに、今後のソフトウェア・エンジニアリングのあり方についての展望を考察する。
    Made a presentation of the final project. In addition, we consider the outlook for the state of software engineering in the future.


4. Assignments/Examination/Grad Eval.

    講義中に出題するショート・レポート、中間レポート、及び、最終レポートを総合して評価する。


5. Special Note

    Evaluate the overall activities including short reports, an interim report, and a final report.


6. Prerequisit / Related courses

    -


7. Conditions to take this course

    -


8. Relation with past courses

    -


9. Course URL


2014-02-05 17:59:34.145457


Powered by SOI Copyright(c) 2002-2019, Keio University Shonan Fujisawa Campus. All rights reserved.
このサイトの著作権について