NTU Course
NewsHelpOverview

Software Development Methods

Offered in 112-2
  • Serial Number

    40052

  • Course Number

    IM5027

  • Course Identifier

    725 U3340

  • No Class

  • 3 Credits
  • Elective

    DEPARTMENT OF INFORMATION MANAGEMENT / GRADUATE INSTITUTE OF INFORMATION MANAGEMENT

      Elective
    • DEPARTMENT OF INFORMATION MANAGEMENT

    • GRADUATE INSTITUTE OF INFORMATION MANAGEMENT

  • YIH-KUEN TSAY
  • Wed 7, 8, 9
  • 管二302

  • Type 2

  • 50 Student Quota

    NTU 48 + non-NTU 2

  • No Specialization Program

  • Chinese
  • NTU COOL
  • Core Capabilities and Curriculum Planning
  • Notes
  • Limits on Course Adding / Dropping
    • Restriction: juniors and beyond

  • NTU Enrollment Status

    Enrolled
    0/48
    Other Depts
    0/4
    Remaining
    0
    Registered
    0
  • Course Description
    This course introduces a selection of theories and practices that, we believe, will enhance the student's ability in developing correct and high-quality software. The view taken here is that of an engineer (programmer, software engineer, or software architect) and hence the focus of the course is primarily on the technical aspects of software development process. We will start with an overview of the typical software development process and relevant issues and then study in greater details some fundamental elements of software modeling, design, and verification, along with several software productivity tools and development practices. To practice applying these methods and tools, we will carry out a term project that involves the development of a large Web application. We will also study Web application programming techniques and security, to better prepare for the project.
  • Course Objective
    The goal of this course is to acquaint the students with some of the well-used methods and tools for practical software development as well as some fundamentals of software verification, so as to prepare them for a career in software development.
  • Course Requirement
    The students are assumed to have taken Object-Oriented Programming and Database Management.
  • Expected weekly study hours after class
  • Office Hour
    Wed13:30 - 14:00
    Thu13:30 - 14:00

    Or by appointment using email.

  • Designated Reading
    Class notes and selected readings.
  • References
    See the course wiki site: http://im.ntu.edu.tw/~tsay/dokuwiki/doku.php?id=courses:sdm2023:main
  • Grading
    30%

    Final Exam

    50%

    Term Project

    Details will be provided on the course wiki site: http://im.ntu.edu.tw/~tsay/dokuwiki/doku.php?id=courses:sdm2023:main

    10%

    Participation

    10%

    Homework

    There are five homework assignments.

  • Adjustment methods for students
    Adjustment MethodDescription
    Teaching methods

    Assisted by recording

    Assignment submission methods

    Extension of the deadline for submitting assignments

    Exam methods

    Final exam date postponement

    Others

    Negotiated by both teachers and students

  • Course Schedule
    Week 1Introduction; Productivity Tools: Version Control with Git
    Week 2Software Modeling: An Overview of UML; Term Project: Initial Discussions
    Week 3Software Modeling: UML Diagrams; Productivity Tools: Chrome DevTools
    Week 4Software Implementation: Web Programming Pearls
    Week 5Term Project: Proposal Presentations; Software Development Practice: Design Document
    Week 6Software Modeling: Domain Modeling
    Week 7Holiday
    Week 8Term Project: First Preliminary Demos; Software Security: Web Application Security
    Week 9Productivity Tools: Debuggers; Software Design: Design Patterns
    Week 10Software Design: Design Patterns
    Week 11Software Development Practice: Agile Development in Practice
    Week 12Term Project: Second Preliminary Demos; Midterm Discussions
    Week 13Software Verification: Testing
    Week 14Formal Specification: Formal Logic and Correctness Requirements; Formal Verification: Verification of Programs with Frama-C and ACS
    Week 15Term Project: Final Presentations
    Week 16Final Exam