Spring 2019 - IAT 452 D100

Developing Design Tools (3)

Class Number: 8047

Delivery Method: In Person

Overview

  • Course Times + Location:

    Jan 3 – Apr 8, 2019: Thu, 10:30 a.m.–12:20 p.m.
    Surrey

  • Exam Times + Location:

    Apr 14, 2019
    Sun, 12:00–3:00 p.m.
    Surrey

  • Prerequisites:

    Completion of 60 units, including IAT 351.

Description

CALENDAR DESCRIPTION:

Introduces approaches to customizing and developing software applications as design-support tools to be employed in dynamic design environments comprising people, other tools, and their interactions in relation to the tasks to be performed. Discusses effective strategies for software development to find the best matching solutions for a given situation and applies the select methods in software design, prototyping, and evaluation. Makes use of software development processes, languages, and notations in representing design of the tools being developed. Experiments with contemporary systems such as drafting tools (CAD), authoring applications (for games, Websites, animations), parametric design-modeling systems, etc.; and searches their potentials to enhance design environments.

COURSE-LEVEL EDUCATIONAL GOALS:

Objectives:

  • To help students in gaining an advanced level understanding of using, customizing and designing computational systems for various creative domains in relation to tasks, users, representation and system design technologies.
  • To learn-by-doing how to develop a design-support system using software development strategies.
  • To be aware of the importance of interdisciplinary role players in a design process, particularly the role of the software designers.
  • To encourage creativity and critical thinking in software development and in all phases of the course.
Course Outcomes:
By the end of the course, the students will be able to:
  • Describe design environment settings in a given design domain and a particular context; and propose systems to support designers achieve their tasks effectively and efficiently.
  • Analyze complex design activities requiring significant cognitive load by using task decomposition for the purpose of developing design-support tools.
  • Develop models for system designs, including architecture and user-system interaction following Object-Oriented Paradigm.
  • Identify and use various forms of Object-Oriented modeling strategies; and use Integrated Development Environments (IDE) and Computer-Aided Software Engineering Tools (CASE) in system development.
  • Perform assessment of system designs over design models and evaluation of end-products by employing select metrics and pre-defined specifications.
  • Apply use-cases, UML, and Java programming language and API during the software development life-cycle.

Grading

  • Assignment 5%%
  • Quizzes (x2) 10%%
  • Mid Term Exam 30%%
  • Course Project 50%%
  • Readings - Participation 5%%

NOTES:

Assignments and Projects:

  • You are required to provide your own solutions to the given assignments and to present them to the instructors.  Please note that, you must demonstrate that you understand what you do in each assignment.
  • The demonstrations will take place during each lab session and will be graded towards your lab grade.
  • There will be embedded lab sessions and the goal is to apply learned material.  If the time reserved for class sessions will not allow you to complete given assignments in the class, you are expected to continue working on the assignments out-of-class.  I recommend minimum of six-hours for out-of-class activities: project, assignments, reading, and self-improvement.  The students will work in a collaborative manner at most of the times.

Materials

MATERIALS + SUPPLIES:

Reading References:
TBA – see the detailed schedule.

  • “…the complexity is a reflection of the complexity in the environment”, Herbert Simon (1969): Systems development is generally acknowledged to be an intellectually complex activity. This complexity is magnified by the need for expertise in two disciplinary areas—the area of the problem being solved (the application domain), and the area of constructing a software solution (the systems and software discipline). The application knowledge component of this dual disciplinary problem is significant. Blum states “… much of what we consider to be software development is actually application domain problem solving …” A successful systems developer is one who masters the large amounts of knowledge present in both disciplinary areas. This complexity inherent in systems development typically is addressed by employing standardized methods to develop systems.
  • Vessey, I. and R. Glass, (1998) Strong vs. Weak Approaches to Systems Development, Communications of the ACM April 1998/Vol. 41, No.
Useful Resources:
  • Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development, Third Edition by Craig Larman. [ONLINE]
  • Applying Use Case Driven Object Modeling with UML: An Annotated e-Commerce Example by Doug Rosenberg, Kendall Scott [ONLINE]
  • Software Design, Edition 2nd ed. by David Budgen Addison-Wesley 2003 [RESERVE]
  • Advanced systems design with Java, UML, and MDA by Kevin Lano. Boston: Elsevier Butterworth- Heinemann, 2005 [RESERVE]
  • UML Distilled: A Brief Guide to the Standard Object Modeling Language, third edition, by Martin Fowler

Registrar Notes:

SFU’s Academic Integrity web site http://www.sfu.ca/students/academicintegrity.html is filled with information on what is meant by academic dishonesty, where you can find resources to help with your studies and the consequences of cheating.  Check out the site for more information and videos that help explain the issues in plain English.

Each student is responsible for his or her conduct as it affects the University community.  Academic dishonesty, in whatever form, is ultimately destructive of the values of the University. Furthermore, it is unfair and discouraging to the majority of students who pursue their studies honestly. Scholarly integrity is required of all members of the University. http://www.sfu.ca/policies/gazette/student/s10-01.html

ACADEMIC INTEGRITY: YOUR WORK, YOUR SUCCESS