Sie sind auf Seite 1von 11

Course Syllabus - Spring B 2020

Advanced Software Analysis and Design (CSE 598)

Course Description

Software analysis and design proposes optimal software solutions to solve complex problems. In this hands-on course,
students will apply methodologies, frameworks, and fundamentals and techniques of design, implementation, and
software architecture to demonstrate real world applications. Main topics include object-oriented analysis and design,
software architecture and design principles, quality attributes of software architecture, stakeholder perspectives and team
approaches, mobile applications, service-oriented architecture and microservices-based web applications, and software
engineering perspectives regarding robotics and autonomous systems.

Specific topics covered include:

● Nature of Software Systems


● Significance of Software Analysis and Design
● Object-Oriented Analysis and Design
● Software Architecture and Design Principles
● Quality Attributes of Software Architecture
● Architecting Mobile Applications
● Architecting Service-Oriented Architecture and Microservices-based Web Applications
● Architecting Robotics and Autonomous Systems

Learning Outcomes

Learners completing this course will be able to:

● Evaluate software complexity and scale traits in modern software systems.


● Articulate software specification analysis and design concepts with foundations.
● Apply standardized structural and behavioral modeling methods and practices for software systems.
● Demonstrate engineering methodology in analysis and design of a model-based software system.
● Use software design pattern concepts and models in designing a new software system.
● Evaluate and apply appropriate software architecture functional and nonfunctional concepts, quality attributes,
and styles in designing a new software system.
● Develop structural and behavioral specifications with advanced features using the Unified Modeling Language
(UML), C4 Model for Software Architecture (C4), frameworks and tools.
● Apply appropriate architectural styles in designing and implementing software systems in different application
domains including, but not limited to mobile, service-oriented, and autonomous and robotics systems.
● Develop, implement, and test consumer/producer style software systems using software design patterns.
Estimated Workload/ Time Commitment Per Week
Average of 20 hours per week

Required Prior Knowledge and Skills

● Software life cycle models


● Project management
● Team development environments and methodologies
● Software architectures
● Professional Background: object-oriented programming exposure, basic knowledge of software process modules,
class diagrams, experience working on a software development team, experience developing software following a
disciplined development process

Technology Requirements

Hardware
● Personal computer with major OS and able to run Java IDE, Visual Studio (to create C# Projects), Android SDK
● Having a Mac computer or access to a Mac computer is​ ​highly recommended t​ o complete ​week 5 module

Software and Other ​(programs, platforms, services, etc.)


Note: All of the software systems are either open source, free download or can be downloaded through myapps.asu.edu
for ASU students free of charge.
● Reliable WiFi
● Java development IDE
● Visual Studio 2015, 2017 or 2019
● XCode 10 or 11/Android Studio
● UML modeling tool such as Astah
● C4 modeling tool such as draw.io

iOS App ​or ​Android App (you need at least one to complete some coursework)
● For iOS app: XCode 10, programming language Swift (no Objective-C) - ​strongly preferred
● For Android app: Android SDK using Java

Readings
At the graduate level, inquiry, research, and critical reading are part of the learning experience. To support your learning
process and success in completing projects and other assessments, there are readings provided throughout the course.

Course Content

Instruction

Video Lectures
Interview Videos
Live Events (e.g. Live Sessions hosted by the faculty and Virtual Office Hours hosted by Teaching Assistants)
Readings
Tutorials

Assessments

Knowledge Check Questions (ungraded, auto-feedback)


Quizzes (graded, auto-graded)
Exam 1 and Exam 2 (proctored, graded, auto-graded)
Individual Projects (graded, course team-graded)

Details of the main instructional and assessment elements this course:

Lecture videos:​ ​The concepts you need to know will be presented through a collection of video lectures. You may
stream these videos for playback within the browser by clicking on their titles or download the videos. You may also
download the slides that are used in the videos. The lecture slides, where available, are provided with the video.

Knowledge Checks:​ ​Designed to support your learning, knowledge checks are short ungraded quizzes to test your
knowledge of the concepts presented in the lecture videos. You may take your time, review your notes, and learn at your
own pace because knowledge checks are untimed. With unlimited attempts, you may retake knowledge checks as often
as you would like at any point during the course. You are encouraged to read the feedback, review your answer choices,
and compare them to the correct answers. ​With the feedback as your guide, you are highly encouraged to use knowledge
checks as opportunities to study for other assessments and tasks in the course.

Discussion Forums:​ This course has weekly discussion forums. To maximize discussion forums as positive, shared
learning opportunities, please do the following:
1. Include the exact name of the course component as it appears in the course you are referencing in your question.
2. Provide the direct link to the course component and other directional information, such as the page number,
timestamp, etc.
3. Ask specific questions. If you are specific, we can give you helpful advice and targeted information.
4. Provide context. We are best able to address your questions when given more information. For example, list and
explain what you’ve tried so far and the results. If you do this, we can provide better feedback and make
suggestions to lead you in the right direction. Your classmates will also be able to learn from you and support or
redirect your thinking. The more information you provide, the more helpful we can be.
5. Avoid re-asking questions. The discussion forms are a wonderful tool not just for asking questions, but also for
checking to see if your question was already asked.
6. Professional communication should be used at all times. Review the netiquette resource in the ​Welcome and
Start Her​e section of the course.

Graded Quizzes: ​This course has two types of graded quizzes: (1) graded quizzes throughout each week and (2) a
graded quiz at the end of each week that covers the content from the entire week. The graded quizzes throughout the
week ​typically ​include 10 multiple choice questions and you have one (1) attempt in a single-session of a timed 30
minutes to complete these quizzes. The graded quiz at the end of each week ​typically​ includes 15 multiple choice
questions and you have one (1) attempt in a single-session of a timed 45 minutes to complete these quizzes. Students will
be able to review these assessments and use them to study until the end of the seventh (7th) week of the course. ​There is
an automatic 10% grade penalty for each day late past the deadline.

Proctored Exams:​ You will have two (2) proctored exams. This includes: Exam 1 (covering content from Week 1 to
Week 5), and Exam 2 (covering content from Week 1 to Week 7). You have 120 minutes to complete each exam and it
must be completed in a single session. Once you open the exam, your testing session begins. You will be allowed one (1)
attempt for each exam. For specific allowances permitted during the exam, please review the ​Welcome and Start Here
section of the course. No late exams will be permitted or accepted.

For each exam, you areProctorU is an online proctoring service that allows students to take exams online while ensuring
the integrity of the exam for the institution. You ​must​ set up your proctoring 72 hours prior to taking your exams, so
complete this early. Additional information and instructions are provided in the ​Welcome and Start Here​ section of the
course.

Projects​: ​This course includes five (5) projects. All projects are provided in the first week of the course in the ​Welcome
and Start Here​ section, so you can preview what is expected and design your own learning schedules to complete these
on time. At the beginning of specific weeks when they are due, they will be re-introduced and included on your weekly
task list each week. Projects are due at the end of the second week, third week, fourth week, fifth week, and sixth week of
the course. A submission area is provided at the end of those weeks. The projects are course team-graded. ​There is an
automatic 15% grade penalty for each day late past the deadline.

Portfolio:​ All students in the non-thesis degree program must complete a project portfolio. The Portfolio for this course
must include all five projects completed for 40% of the grade in this course. Thoroughly read through the official
Computer Science Project Portfolio Instructions​ for more details regarding this required program component. Students
have found the FAQ sections particularly helpful. The Portfolio submission is due within two weeks of your final grade.
Course Grade Breakdown

Course Work Quantity Percentage


of Grade

Individual, Timed Quizzes 26 30%

Individual, Proctored and Timed Exam 1 1 15%

Individual, Proctored and Timed Exam 2 1 15%

Individual Projects 5 40%

Grade Scale

NOTE: You must earn a cumulative grade of 70% to earn a “C” in this course.

A+ 97% - 100%

A 90% - 96%

B+ 87% - 89%

B 80% - 86%

C+ 77% - 79%

C 70% - 76%

D 60% - 69%

E <60%

Course Schedule

Week/Module Begin Date End Date

Week 1: Nature of Software Systems and Significance 3/16/2020 at 3/22/2020 at


of Software Analysis and Design 12:01AM AZ Time 11:59PM AZ Time
Week 2: Object-Oriented Analysis and Design 3/23/2020 at 3/29/2020 at
12:01AM AZ Time 11:59PM AZ Time

Week 3: Software Architecture Preliminaries and 3/30/2020 at 4/5/2020 at


Software Design Principles 12:01AM AZ Time 11:59PM AZ Time

Week 4: Software Architecture Fundamentals, 4/6/2020 at 4/12/2020 at


Documentation and Evaluation 12:01AM AZ Time 11:59PM AZ Time

Week 5: Architecting Mobile Applications 4/13/2020 at 4/19/2020 at


12:01AM AZ Time 11:59PM AZ Time

Proctored Exam 1 4/18/2020 at 4/20/2020 at


12:01AM AZ Time 11:59PM AZ Time

Week 6: Architecting Service Oriented and 4/20/2020 at 4/26/2020 at


Microservices Based Web Applications 12:01AM AZ Time 11:59PM AZ Time

Week 7: Architecting Robotics and Autonomous 4/27/2020 at 5/3/2020 at


Software Systems 12:01AM AZ Time 11:59PM AZ Time

Proctored Exam 2 5/2/2020 at 5/4/2020 at


12:01AM AZ Time 11:59PM AZ Time

Week 8: Course Wrap-Up 5/4/2020 at 5/8/2020 at


12:01AM AZ Time 11:59PM AZ Time

*Grades are due May 11, 2019 (Please see the​ A


​ SU Academic Calendar​ for additional information.)

Live Events - Weekly


Live Events are a valuable part of the learning experience because students can meet with the course
instructor and fellow classmates to learn more about course topics, special topics within the field, and discuss
coursework. The weekly live events hosted by the faculty will occur every Tuesday at 8:00pm - 9:00pm MST. If
you are able to attend these Live Events, you are strongly encouraged to do so. If you have specific questions
or topics of interest to be discussed during the live events, please indicate your request in your discussion
forum post. Although it may not be possible to address all requests live, the instructor is interested in tailoring
the live events to your questions and interests.

Live Events hosted by the faculty will be recorded and uploaded to the course.

Virtual Office Hours - Weekly


Virtual Office Hours offer a chance for students to get their questions answered from the course team. The
weekly Virtual Office Hours will occur every Friday at 8:00pm - 9:00pm MST.

Virtual office hours are recorded, but not uploaded into the course.

Assignment Deadlines

Unless otherwise noted, all graded work is due on Sundays at 11:59 pm Arizona time for the week it is
assigned. ​For graded quizzes, there is an automatic 10% grade penalty for each day late past the deadline. No late
exams will be permitted or accepted and will result in a score of zero points (0). For projects, there is an automatic 15%
grade penalty for each day late past the deadline.

Course Outline with Assignments

Week 1/Module 1: Nature of Software Systems and Significance of Software Analysis


and Design
Lesson 1: Complex Nature of Modern Software Systems
Lesson 2: Architecture-Centric Software Development

Assignments
● Knowledge Checks
● Graded Quizzes (Due by 3/22/2020 at 11:59 PM AZ time)

Week 2/Module 2: Object-Oriented Analysis and Design


Lesson 1: Object-Oriented Design Fundamentals
Lesson 2: From Requirements to Object
Lesson 3: Documenting Software Analysis and Design Using Unified Modeling Language
(UML)
Lesson 4: Object-Oriented Analysis and Design Case Study

Assignments
● Knowledge Checks
● Graded Quizzes (Due by 3/29/2020 at 11:59 PM AZ time)
● Graded Project (Due by 3/29/2020 at 11:59 PM AZ time)

Week 3/Module 3: Software Architecture Preliminaries and Software Design Principles


Lesson 1: Software Architecture Preliminaries
Lesson 2: Software Design Principles
Lesson 3: Object-Oriented Design Patterns
Lesson 4: Application of Object-Oriented Design Patterns Case Study

Assignments
● Knowledge Checks
● Graded Quizzes (Due by 4/5/2020 at 11:59 PM AZ time)
● Graded Project (Due by 4/5/2020 at 11:59 PM AZ time)

Week 4/Module 4: Software Architecture Fundamentals, Documentation and


Evaluation
Lesson 1: Software Architecture: A Deep Dive
Lesson 2: Documenting Software Architecture
Lesson 3: Software Architecture Quality Attributes
Lesson 4: Evaluation Software Architecture: Architecture Tradeoff Analysis Approach (ATAM)

Assignments
● Knowledge Checks
● Graded Quizzes (Due by 4/12/2020 at 11:59 PM AZ time)
● Graded Project (Due by 4/12/2020 at 11:59 PM AZ time)

Week 5/Module 5: Architecting Mobile Applications


Lesson 1: Introduction to Mobile Computing and Special Considerations in Mobile Application
Design
Lesson 2: Model-View-Controller (MVC) Architecture for Mobile Application Development
Lesson 3: Web Data Integration for Mobile Applications
Lesson 4: Mobile Application Design and Implementation Case Study

Assignments
● Knowledge Checks
● Graded Quizzes (Due by 4/19/2020 at 11:59 PM AZ time)
● Graded Project (Due by 4/19/2020 at 11:59 PM AZ time)

Proctored Exam 1
Assignments
● Exam 1 - Timed, Proctored
● Available from 4/18/2020 at 12:01 AM - 4/20/2020 11:59 PM AZ time
Week 6/Module 6: Architecting Service Oriented and Microservices Based Web
Applications
Lesson 1: Introduction to Service Oriented Computing (SOC)
Lesson 2: Service Oriented Architecture Foundations and SOC Application Design
Principles
Lesson 3: SOC Application Design and Implementation Case Study
Lesson 4: Microservices Architecture Principles

Assignments
● Knowledge Checks
● Graded Quizzes (Due by 4/26/2020 at 11:59 PM AZ time)
● Graded Project (Due by 4/26/2020 at 11:59 PM AZ time)

Week 7/Module 7: Architecting Robotics and Autonomous Software Systems


Lesson 1: Survey the Field of Robotics and Autonomous Systems
Lesson 2: Towards a Generic Software Architecture for Robotics and Autonomous System

Assignments
● Knowledge Checks
● Graded Quizzes (Due by 5/3/2020 at 11:59 PM AZ time)

Proctored Exam 2
Assignments
● Exam 2 - Proctored
● Available from 5/2/2020 at 12:01 AM - 5/4/2020 11:59 PM AZ time

Week 8/Module 8: Course Wrap-Up


Lesson 1: Final Thoughts

Policies
Please note that the course syllabi is subject to change without advance notice at the discretion of the faculty.

All ASU and Coursera policies will be enforced during this course. For policy details, please consult the ​MCS
Graduate Handbook 2019 ​- 2020​ ​and/or the MCS Onboarding Course.
Academic Integrity
Students in this class must adhere to ASU’s academic integrity policy, which can be found at
https://provost.asu.edu/academic-integrity/policy​). Students are responsible for reviewing this policy and
understanding each of the areas in which academic dishonesty can occur. In addition, all engineering students
are expected to adhere to both the ASU Academic Integrity​ ​Honor Code​ and the Fulton Schools of Engineering
Honor Code​.​ All academic integrity violations will be reported to the Fulton Schools of Engineering Academic
Integrity Office (AIO). The AIO maintains records of all violations and has access to academic integrity
violations committed in all other ASU college/schools.

Disclaimer
Information in the syllabus may be subject to change without advance notice.

Course Faculty

Dr. Janaka Balasooriya


Janaka Balasooriya, Ph.D. joined Arizona State University in 2007. Prior to joining ASU, Balasooriya was a
postdoctoral fellow at Missouri University of Science and Technology. With several years of industry
experience as a Software Engineer, his research interests span the areas of distributed computing and
software engineering, including service-oriented computing, cloud computing, and software testing.
Balasooriya has taught courses in Distributed Computing, Mobile Computing, Software Testing, Algorithms and
Data Structures, Software Engineering, and Programming Languages. Balasooriya is an ASU Barrett Honors
faculty and serves as a faculty honors advisor to CS and CSE students. He is also a program committee
member in several premier conferences, including IEEE Service Oriented Computing and IEEE Cloud
Computing Conferences since 2007, and serves as an editorial board member of The Services Transactions
on Cloud Computing (IJCC).