安全软件设计

Secure Software Design

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

专项课程计算机
4843 次查看
科罗拉多大学系统
Coursera
  • 完成时间大约为 1 个月
  • 简单(初级)
  • 英语
注:本课程由Coursera和Linkshare共同提供,因开课平台的各种因素变化,以上开课日期仅供参考

你将学到什么

Secure design

UML, unit testing, and ethics

Effective user interfaces

Database design

课程概况

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.

包含课程

课程1
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?

课程2
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.

课程3
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.

课程4
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.

课程项目

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.

预备知识

You must know how to code (in some language) and since this is a graduate course, it is helpful if you have some workplace experience in software development.

Alibaba Cloud
声明:MOOC中国十分重视知识产权问题,我们发布之课程均源自下列机构,版权均归其所有,本站仅作报道收录并尊重其著作权益。感谢他们对MOOC事业做出的贡献!
  • Coursera
  • edX
  • OpenLearning
  • FutureLearn
  • iversity
  • Udacity
  • NovoEd
  • Canvas
  • Open2Study
  • Google
  • ewant
  • FUN
  • IOC-Athlete-MOOC
  • World-Science-U
  • Codecademy
  • CourseSites
  • opencourseworld
  • ShareCourse
  • gacco
  • MiriadaX
  • JANUX
  • openhpi
  • Stanford-Open-Edx
  • 网易云课堂
  • 中国大学MOOC
  • 学堂在线
  • 顶你学堂
  • 华文慕课
  • 好大学在线CnMooc
  • (部分课程由Coursera、Udemy、Linkshare共同提供)

© 2008-2019 MOOC.CN 慕课改变你,你改变世界