Secure Software Design Specialization
Design and maintain secure software.. Acquire the attitudes and skills needed to produce designs of secure software.
Offered By
What you will learn
Secure design
UML, unit testing, and ethics
Effective user interfaces
Database design
Skills you will gain
About this Specialization
Applied Learning Project
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.
No prior experience required.
No prior experience required.
There are 4 Courses in this Specialization
Software Design as an Element of the Software Development Lifecycle
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?
Software Design as an Abstraction
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 Methods and Tools
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.
Software Design Threats and Mitigations
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.
Offered by

University of Colorado System
The University of Colorado is a recognized leader in higher education on the national and global stage. We collaborate to meet the diverse needs of our students and communities. We promote innovation, encourage discovery and support the extension of knowledge in ways unique to the state of Colorado and beyond.
Frequently Asked Questions
What is the refund policy?
Can I just enroll in a single course?
Is financial aid available?
Can I take the course for free?
Is this course really 100% online? Do I need to attend any classes in person?
How long does it take to complete the Specialization?
What background knowledge is necessary?
Do I need to take the courses in a specific order?
Will I earn university credit for completing the Specialization?
What will I be able to do upon completing the Specialization?
More questions? Visit the Learner Help Center.