Online Course – Certified Professional Internship in Secure Software Design from Google and the University of Colorado

Learn about designing and maintaining secure software. Acquire the approaches and skills required to create secure software.

Suggested by: Coursera (What is Coursera?)

Professional Certificate

Beginners

No prior knowledge required

Time to complete the course

7-day free trial

No unnecessary risks

Skills you will acquire in the course

  • Database design
  • Software Development Lifecycle (SDLC)
  • Software development process
  • Software design
  • Software security

What you will learn in the course

Courses for which the course is suitable

  • Secure software developer
  • Information Security Engineer
  • Rear end key
  • Front end wrench
  • Systems Analyst
  • Information Security Specialist
  • Software developer with specialization in information security
  • Information Security Project Manager
  • Information Security Guide
  • Information Systems Developer

Internship – a series of four courses

Information security

Information security is a very important issue in our world today. As individuals, we strive to protect our personal information, while the companies we work for are required to protect suppliers, customers, and company assets. Creating secure software requires implementing security practices as early as possible during the software development life cycle (SDLC).

Purpose of the internship

This specialization focuses on ensuring security as part of software design and is intended for anyone who has experience working in the field of software development and needs the background, perspective, and skills to identify important aspects of information security in software design.

Main topics

  • Secure design for multiple SDLC models
  • Software architecture considerations and design patterns
  • Identifying and implementing secure design
  • Working with databases and UML
  • Unit testing and ethics
  • Approaches and attitudes of successful designers
  • User Experience in Front End Design
  • Topics in back-end development, such as database design

Hands-on Learning Project

Students will create a class diagram and a sequence diagram in Unified Modeling Language (UML) using IBM’s Rhapsody modeling tool for a set of classes and operations described in lectures. Downloading and running Rhapsody will also be covered.

Required tools
  • IBM Rhapsody
  • NetBeans for Java
  • JUnit, a tool for unit testing

Students will also download and install NetBeans and JUnit. Students will configure NetBeans to use JUnit and test code written for the classes and methods described in the UML project.

Case investigation

Finally, students will explore cases of successful design (Bitcoin) and unsuccessful design (Therac-25).

Details of the courses that make up the specialization

Software planning as one of the components of the software development life cycle

Course 1

  • 11 hours
  • 4.6 (249 ratings)
Course Details
What you’ll learn

This course deals with software development life cycles, a description/recommendation of how to write software. Planning is a phase in this cycle, and the course examines the implications of this. Planning has a role in the life cycle; it always exists, regardless of the type of cycle in question. Why is this so? Why is planning considered a phase in this life cycle?

Software design as abstraction

  • Course 2
  • 15 hours
  • 4.7 (132 ratings)
Course Details
What you’ll learn

The design phase of software development has some unique features. First of all, it is the only phase where we are supposed to draw things. Why is that? What do images do that other representations cannot? Images have different levels of detail; images have context. Images… paint a picture. Why are these things important? In this course, too, we begin to explore other fields (building architecture is a particular favorite) to learn about design.

Software design methods and tools

  • Course 3
  • 14 hours
  • 4.7 (150 ratings)
Course Details
What you’ll learn

Since many software developers are compulsive coders, they have developed software over the years to help them in their work. There are tools that help make design and the tasks that come with it easier. The course introduces some basic tools and techniques that will help you in your design. Tools are not always tangible, however. The last two lessons of this course deal with ethical questions in software development. The goal here, as with the tools, is to equip you to fulfill your responsibilities as a designer. Students will be asked to have prior knowledge of writing and delivering software and knowledge of programming in the Java language.

Software design threats and ways to mitigate them

  • Course 4
  • 18 hours
  • 4.7 (91 ratings)
Course Details
What you’ll learn

The design phase of software development has some unique features. First of all, it is the only phase where we are supposed to draw things. Why is that? What do images do that other representations cannot? Images have different levels of detail; images have context. Images… paint a picture. Why are these things important? In this course, too, we begin to explore other fields (building architecture is a particular favorite) to learn about design.