Secure Software Design Specialization

Design and maintain secure software.. Acquire the attitudes and skills needed to produce designs of secure software.

Instructor: Albert Glock

What you'll learn

  •   Secure design
  •   s
  •   Effective user interfaces
  •   Database design
  • Skills you'll gain

  •   Vulnerability Assessments
  •   Secure Coding
  •   Database Management
  •   Database Design
  •   Systems Design
  •   Software Design Patterns
  •   Software Development Life Cycle
  •   Application Security
  •   Unit Testing
  •   Security Engineering
  •   Software Design
  •   User Interface and User Experience (UI/UX) Design
  • Specialization - 4 course series

    Students will create a Unified Modeling Language (UML) Class diagram and a UML Sequence diagram using IBM’s Rhapsody modeling tool for a set of classes and actions described in the lectures. Downloading and activating Rhapsody is also covered. Students will also download and install NetBeans for Java and JUnit, a unit testing tool. Students will configure NetBeans to use JUnit and test code written for the classes and methods described in the UML project. Finally, students will explore case studies of a successful (Bitcoin) and unsuccessful (Therac-25) designs.

    This course talks about software development lifecycles a description/prescription for how we write software. Design is a step in this life cycle, and the course explores the implications of this. Design has a role in the life cycle; it is always there, regardless of the kind of life cycle we’re talking about. Why is that? Why was design considered as a step in this life cycle?

    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.

    Since many software developers are compulsive coders, they have created software over the years to help them do their job. There are tools which make design and its associated tasks easier. The course introduces some basic tools and techniques to help you with design. Tools aren’t always tangible, however. The last two lessons of this course discuss questions of Ethics in software development. The purpose here is, as with tools, to equip you to better carry our your responsibilities as a designer. Students will be required to have a prior knowledge of writing and delivering software and some programming knowledge in java.

    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.

    Software Design as an Abstraction

    Software Design Methods and Tools

    Software Design Threats and Mitigations

    ©2025  ementorhub.com. All rights reserved