Description:

Explore key aspects of software testing, software validation, and bug tracking methods in this 14-video course, beginning with a look at very specific testing methodologies, and an in-depth introduction into how to do testing. This leads learners into observing how to apply unit testing; integration testing; regression testing, and user acceptance testing. Another tutorial will explore the roles and responsibilities in testing, or who in one's team is responsible for what aspect of testing. You will also learn about specific testing methods, and how to do the individual test, regardless of what type it is. Following on from this, learners will examine test cases and reporting, where formalized testing requires some level of reporting and specific test cases. Then discover how to apply software metrics and explore software verification and software validation. To complete the course, you will learn about the concepts of bug tracking and how to use various bug tracking methods.

Target Audience:

Duration: 01:12

Description:

In this 12-video course, learners explore best practices for good coding along with exercises showcasing related examples. This includes good programming practices for Java, Python, C#, and Javascript. Begin with a look at how to perform software estimation of resources and time. One fundamental practice that learners need to know is how to estimate how long something will take and what resources one needs in place. You will then examine coding best practices, and some specific techniques to improve code, along with good coding examples. Following on from this, observe how to recognize bad coding examples, and examine Java code that is poorly written. Next, you will take a look at bad coding examples in Python, and recognizing bad Python programming; bad C# programming, and bad Javascript programing. This leads into learning about applying good coding examples in Java, in Python, in C#, and Javascript. The two most important takeaways from this course are understanding and recognizing both good and bad code, and the other is having a basic understanding of estimating and allocating resources.

Target Audience:

Duration: 00:47

Description:

This course extensively covers Unified Modeling language (UML), which is commonly used in software engineering to help design, understand, and work with software. It can be considered one of the core tools in a software engineer's toolbox. In this 6-video course, learners will delve into specific UML diagrams in order to obtain a deeper understanding, and some of which users will be able to use in their own software design. These diagrams will include class diagrams, activity diagrams, use case diagrams, and sequence diagrams. Next, follow an overview of Systems Modeling language (SysML), which is similar to UML but broader, so not only can it be used for software, but it can also be used for hardware, networks, or any system. Then discover how it can be used. In the final tutorial in this course, you will take a look at specific SysML diagrams, including block definition diagrams, internal block diagrams, and parametric diagrams.

Target Audience:

Duration: 00:27

Description:

In this 13-video course, learners will discover a range of software engineering techniques used to design software. This includes modular, resiliency, architectural, component-level, model-driven, and pattern-based design. You will also explore how to identify well-designed code and script. Learners begin by observing modular design, which starts with the premise that code should be encapsulated into independent modules. This leads into learning about resiliency design. The various design approaches examined here are not mutually exclusive, and can be used together, particularly resiliency design, which often goes hand in hand with other design approaches to augment and enhance them. Next, study architectural design, with a look at the architecture process and how to apply it. Following on from this, you will learn how to apply both component-level design and pattern-based design. You will delve into Well Designed Java Example, and explore what makes it well designed. Also, Well Designed Python Example, which contains some nuances not common to other languages. Well Designed C# Example, Well Designed Javascript, and model-driven design are also covered.

Target Audience:

Duration: 01:17

Description:

In this course, learners can explore various IEEE programming standards, software requirement types, and requirements gathering techniques. Discover how software quality is defined and steps to take in the change management process. Begin this 10-video course with an introduction to basic programming and software engineering concepts. Then move on to a three-part tutorial on programming standards—part A on recalling IEEE programming standards including general, testing and quality, and maintenance and documentation standards; part B on IEEE standards, including NIST SP 800-27, ISO/IEC 15504 and 24744:2014, and ISO 29110; and part C on recalling IEEE and ISO programming standards. This leads into identifying software requirement types, the functionality, usability, reliability, performance, and supportability (FURPS) model, and the requirements gathering techniques. Next, you will explore requirements gathering techniques such as brainstorming, interviews, focus groups, and reverse engineering, and examine quality and the change management process. In the final tutorial, learners observe how to apply the IEEE Std 730 standard for software quality.

Target Audience:

Duration: 00:56