CIS 566-Syllabus

 

CIS566, Software Architecture and Design patterns, 3 Credit Hours

 

Prof. Foyzul Hassan

Office Location: CIS-234

Phone Number: 313-436-9145

E-Mail: foyzul@umich.edu

Office Hours:

Monday 11:00 A.M to 12:30 P.M

Thursday 11:00 A.M to 12:30 P.M

(During Office Hours, Online Zoom Meeting will also be available. You can join the Zoom Meeting any discussion related to the course.)

Course Meeting Times:  Monday 3:00 pm - 5:45 pm, Engineering Lab Building Room: 1329

Prerequisite:  CIS 200, CIS 350, CIS 375 Knowledge of C++/Java and OOAD

 

 

Course Description:

A Design Pattern is a catalogued solution that has been applied and tested in multiple situations to produce well-designed reusable object-oriented software. Designing with reusability is an art, typically acquired after many years of software development, refining and iterating over designed software modules. Here is your opportunity to learn how an experienced. In this course, each pattern session will start with theoretical understanding followed by practical use. The design patterns will be described using Intent, Motivation, Sample Code, Applicability, Structure, Consequences and its Known Uses. The students will also test their understanding by completing a practical assignment for few very popular design patterns.

Program Goals:

  • Our graduates will be successfully employed in a computer and information science-related field or another career path, in an industrial, commercial, academic, governmental, or non-governmental organization, or will be a successful graduate student in a program preparing them for such employment
  • Our graduates will lead and participate in culturally diverse teams, becoming global collaborators and adapting to an ever changing field
  • Our graduates will continue their professional development by obtaining continuing education credits, professional registration or certifications, or post-graduate study credits or degrees

 

 

 

Course Objectives

Outcomes of instruction

  • Given a program, the student will be able to identify various applicable design patterns and use them to design the solution
  • The student will be able to design application classes, based on proposed design patterns, and to draw required design artifacts for the application design
  • The student will be able to identify UML artifacts to capture different designs or process concepts
  • The student will be able to map a design pattern to an implementation
  • The student will be able to use a design pattern in different contexts or with modifications
  • The student will be able to use design patterns for designing computer-based systems that involve several design choices
  • The student will be able to use design patterns for designing computer-based systems of varying complexity
  • The student will be able to use design patterns, such as the observer patterns, for designing cooperative information systems
  • The student will be able to use software architectural patterns
  • The student will be able to write a specification document for a software system that includes detailed requirements, based on the needs of a simulated customer

 

Student outcomes

  • Outcome c – An ability to design, implement and evaluate a computer-based system, process, component, or program to meet desired needs
  • Outcome f – An ability to communicate effectively with a range of audiences
  • Outcome i – An ability to use current techniques, skills, and tools necessary for computing practices
  • Outcome k – An ability to apply design and development principles in the construction of software systems of varying complexity

 

Text Book:

  • Design Patterns: Elements of Reusable Object-Oriented Software, Gamma et at., Richard Helm, Ralph Johnson, and John Vlissides Addison-Wesley,

Reference books and Recommended Reading:         

  • Head first Design Patterns by Eric Freeman and Elisabeth Freeman

 

Assignments and Project(s):

Assignment details including the deadlines will be specified when they are assigned. Approximately 4 assignments and one class project (up-to four students per group) should be expected. Late submissions will not be accepted unless with a prior approval from the instructor. Any sort of collaboration in the assignments with others without an explicit approval of the instructor will not be tolerated and may result in a failing grade.

You will have ample of time to understand the project and implement it successfully. Course project will reinforce important concepts related to software quality and software testing that you will learn in the class.

Phase I Project identification/description: Report 15%

Phase II Requirements (expectations) and the Design of the project: Report + one presentation 20%

Phase IV Coding and evaluation: source code 40%

Phase V Presentation and the final project report 25%

Exams:

No mid-term but one final exam

Assessment:

Assignments: 30%, Project: 35%, Final Exam: 30%, Participation and Quiz: 5%.

 

 

 

 

Grading

The grades will be assigned based on student’s relative rank in the class.

A+ >= 95,

A >= 92,

A- >= 90,

B+ >= 85,

B >= 82,

B- >= 80,

C+ >= 75,

C >= 72,

C- >= 70,

D+ >= 65,

D > 62,

D>= 60,

E<=59.

 

 

Course Tentative Schedule:

Week

Lecture Topics

Assignment/Project

1

·        Introduction/Overview/What is Software Architecture and Design Pattern 

 

 

2

·        Object-Oriented Paradigm and UML

·        Assignment 1

·        Project phase I

3

·        Creational Patterns

 

4

·        Project Phase I (presentations)

·        Project phase II

5

·        Creational Patterns: Builder Pattern

·        Assignment 2

6

·        Structural Pattern 

 

7

·        Project Phase II (presentations)

 

8

·        Structural Pattern: Facade, Proxy and Chain of Responsibility

·        Assignment 3

·        Project phase III and IV

9

·        Behavioral Pattern

 

10

·        Behavioral Pattern

 

11

·        Software Architecture and Architectural Pattern

·        Assignment 4

 

12

·        Software Architecture Case Studies

 

13

·        Future of Software Architecture and Design Pattern

 

14

·        Final project presentations

 

 

Writing Center

The Writing Center provides support for all UM-Dearborn students wishing to improve their writing. Students needing regular one-on-one help in developing basic writing skills, as well as more advanced students wishing to improve their writing, will find the center useful. The center is located in 3035 CB (Mon-Thurs 8:30-7:00 and Fri 8:30-1:00) with smaller satellites on the first floor of Mardigian Library (Mon-Thurs 10:00-1:00) and Fairlane Center North 138 (Mon-Thurs 2:00-8:00). The center tries to accommodate walk-ins but prefers students make appointments online at

http://casl.umd.umich.edu/writ_center/

University Attendance Policy:

A student is expected to attend every class and laboratory for which he or she has registered. Each instructor may make known to the student his or her policy with respect to absences in the course. It is the student’s responsibility to be aware of this policy. The instructor makes the final decision to excuse or not to excuse an absence. An instructor is entitled to give a failing grade (E) for excessive absences or an Unofficial Drop (UE) for a student who stops attending class at some point during the semester.

Academic Integrity Policy:

The University of Michigan-Dearborn values academic honesty and integrity.  Each student has a responsibility to understand, accept, and comply with the University’s standards of academic conduct as set forth by the Code of Academic Conduct (http://umdearborn.edu/697817/), as well as policies established by each college. Cheating, collusion, misconduct, fabrication, and plagiarism are considered serious offenses and violations can result in penalties up to and including expulsion from the University.

 

Disability Statement:

The University will make reasonable accommodations for persons with documented disabilities. Students need to register with Disability Resource Services (DRS) every semester they are enrolled. DRS is located in Counseling & Support Services, 2157 UC (http://www.umd.umich.edu/cs_disability/). To be assured of having services when they are needed, students should register no later than the end of the add/drop deadline of each term. If you have a disability that necessitates an accommodation or adjustment to the academic requirements stated in this syllabus, you must register with DRS as described above and notify your professor.

Safety:

All students are strongly encouraged to follow Covid-19 safety policy including vaccination and mask policy. Also students are encouraged to register in the campus Emergency Alert System, for communications during an emergency. The following link includes information on registering as well as safety and emergency procedures information:  http://umemergencyalert.umd.umich.edu/ Finally, all students are also encouraged to program 911 and UM-Dearborn’s Public Safety phone number (313) 593-5333 into personal cell phones. In case of emergency, first dial 911 and then if the situation allows call UM-Dearborn Public Safety.