The design step in developing software has some unique characteristics. First of all, it’s the only step where drawing pictures of things is the norm. Why is that? What do pictures do that other representations cannot do? Pictures have varying levels of detail; pictures have context. Pictures…paint a picture. Why are these things important? In this course, too, we begin looking at other disciplines (building architecture is a favorite one) for lessons on design.
Who is this class for: This is a graduate class and it will be best appreciated by students who have a solid foundation in basic software engineering, who can code well (although no real coding is required) and who have had at least internships if not full-time jobs in software development. This is not to say that you need to know how to design software before you learn about designing secure software. It is to say that the more experience you already have in software development, the more the examples and ideas put forth in this course will resonate with you.
Course 2 of 4 in the Secure Software Design Specialization
Who needs abstractions?
Contrasted to design as a step in the software development process, a look at design as an abstract representation of the project.
Focus on the Users
Design considerations to make when users are involved.
What if there are no users?
Design considerations to make when users are not involved
Advanced database design
When to create a database in third-normal form, and when not to.
The Good and Bad of Design Patterns
When and how design patterns are useful and when they are not.
Choose languages and operating systems wisely because you will have to live with them.
A comprehensive course assessment comprising of 5 quizzes. Each assessment contains a randomized set of questions from different modules of the course.
Graded: Assessment 1
Graded: Assessment 2
Graded: Assessment 3
Graded: Assessment 4
Graded: Assessment 5
ENROLL IN COURSE