Software Development Process

  • 0.0
Approx. 3 months

Brief Introduction

Software engineering isn’t just about programming. It isn’t just about building a technology stack. This course introduces the idea of software engineering as an iterative, systematic process. You will learn to use Github and Eclipse as you get introduced to the development life cycle, design processes and software testing. Software Development Processes will show you the skills and processes needed to complement technical understanding of software products in order to make you a more effective

Course Summary

Learn the software development process, including requirements gathering, analysis, design, coding, testing, and maintenance. You'll also learn about agile methodologies, version control, and software testing strategies.

Key Learning Points

  • Understand the software development process from start to finish
  • Learn about agile methodologies and version control
  • Develop effective software testing strategies

Related Topics for further study


Learning Outcomes

  • Understand the software development process and its different stages
  • Apply agile methodologies to software development projects
  • Implement version control and software testing strategies effectively

Prerequisites or good to have knowledge before taking this course

  • Basic understanding of programming concepts
  • Familiarity with a programming language (preferably Python)

Course Difficulty Level

Intermediate

Course Format

  • Self-paced
  • Online

Similar Courses

  • Software Development Fundamentals
  • Full Stack Web Developer Nanodegree

Notable People in This Field

  • Jeff Atwood
  • Martin Fowler
  • Joel Spolsky

Related Books

Description

Software Development Processes explores requirements engineering, architecture and design, testing, and software quality in general.

Requirements

  • A strong familiarity with Android development (perhaps through Developing Android Apps ) is expected. See the Technology Requirements for using Udacity.

Knowledge

  • Instructor videosLearn by doing exercisesTaught by industry professionals

Outline

  • lesson 1 Introduction and Overview Importance of Software Engineering Discipline of Software Engineering The Software Crisis Software Phases lesson 2 Life Cycle Models Introduction with Barry Bohem Requirements Engineering Design Maintenance Software Process Model Introduction Waterfall Process Spiral Process Evolutionary Prototyping Process Rational Unified Process Agile Process Choosing a Model Lifecycle Documents lesson 3 Integrated Development Environment Eclipse Introduction IDE Overview Plug-Ins Eclipse Demo: Create Java Project Eclipse Demo: Create a Class Eclipse Demo: Run Configuration Eclipse Demo: Debugging lesson 4 Version Control Systems Interview with John Britton Version Control System Introduction Two Main Types of VCS Introduction to Git Git Workflow Git Demo: Intro to Git Git Demo: Git + Eclipse Git Demo: Github Git Recap: Local Repositories Git Recap: Remote Repositories lesson 5 Requirements Engineering Interview with Jane Cleland-Huang General RE Definition Software Intensive Systems Functional and Nonfunctional Requirements User and System Requirements Modeling Requirements Analyzing Requirements Requirements Prioritization Requirements Engineering Process lesson 6 OO Software and UML Object Orientation Introduction UML Structural Diagrams: Class Diagrams Class Diagram: Creation Tips UML Structural Diagrams: Component Diagram UML Structural Diagram: Deployment Diagram UML Behavioral Diagram: Use Case Use Case Diagram: Creation Tips UML Behavioral Diagrams: Sequence UML Behavioral Diagrams: State Transition Diagram lesson 7 Software Architecture Interview with Nenad Medvidovic What is Software Architecture? Prescriptive vs. Descriptive Architecture Architectural Evolution Architectural Degradation Architectural Recovery Architectural Elements Components Connectors and Configuration Deployment Architectural Perspective lesson 8 A Tale of Analysis and Design Analyzing Requirements Refining Classes and Attributes Adding Attributes Identifying Operations Refining the Class Diagram lesson 9 Design Patterns Patterns Catalogue Pattern Format Factory Method Pattern Strategy Pattern Choosing a Pattern Negative Design Patterns lesson 10 Unified Software Process Use-Case Driven Inception Phase Elaboration Phase Construction Phase Transition Phase Phases and Iterations lesson 11 General Concepts Failure Fault and Error Verification Approaches Pros and Cons of Approaches Testing Introduction Testing Granularity Levels Alpha and Beta Testing Black and White Box Testing Introduction lesson 12 Black-Box Testing Systematic Functional Testing Approach Test Data Selection Category Partition Method Produce and Evaluate Test Case Specifications Generate Test Cases from Test Case Specifications Model Based Testing Finite State Machines lesson 13 White-Box Testing Coverage Criteria Intro Statement Coverage Control Flow Graphs Test Criteria Subsumption MC/DC Coverage lesson 14 Agile Development Methods Cost of Change Agile Software Development Extreme Programming (XP) XP’s Values and Principles Test First Development Refactoring Pair Programming Continuous Integration Testing Strategy High Level Scrum Process lesson 15 Software Refactoring Reasons to Refactor Refactoring Demo Refactoring Risks Cost of Refactoring When Not to Refactor

Summary of User Reviews

This software development process course has received positive reviews from its users. Many users have praised the course for its comprehensive and practical approach to software development. The course has helped them to gain a deeper understanding of the software development process and the various methodologies involved.

Key Aspect Users Liked About This Course

Comprehensive and practical approach to software development

Pros from User Reviews

  • The course is well-structured and easy to follow
  • The instructors are knowledgeable and engaging
  • The course covers a wide range of topics related to software development
  • The course provides practical examples and exercises to reinforce learning
  • The course is suitable for both beginners and experienced developers

Cons from User Reviews

  • Some users have reported technical issues with the course materials
  • The course may be too basic for experienced developers
  • Some users have found the course to be too theoretical and lacking in practical application
  • The course may not be suitable for those looking for a deep dive into specific software development methodologies
  • The course does not cover advanced topics such as machine learning or artificial intelligence
Free
Available now
Approx. 3 months
Alex Orso, Sarah Spikes
Georgia Institute of Technology
Udacity

Instructor

Share
Saved Course list
Cancel
Get Course Update
Computer Courses