Information security is an extremely important topic in our world today. As individuals, we seek to protect our personal information while the corporations we work for have to protect suppliers, customers, and company assets. Creating secure software requires implementing secure practices as early in the software development lifecycle (SDLC) as possible.
This Specialization focuses on ensuring security as part of software design and is for anyone with some workplace experience in software development who needs the background, perspective, and skills to recognize important security aspects of software design.
You’ll consider secure design for multiple SDLC models, software architecture considerations, and design patterns. You’ll understand how to identify and implement secure design when considering databases, UML, unit testing, and ethics. Mindsets and attitudes of successful designers—and hackers—are presented as well as project successes and failures.
Always at the core of front-end design will be user experience and you will have the opportunity to ensure clean and effective user interfaces that also serve to provide the best security. Back-end development topics such as database design are also covered.
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.