Gain a highly sought after skill set from the #1-ranked school for innovation in the U.S.
Blend engineering, computing, project leadership, and software construction through a unique, project-driven curriculum.
Software engineering is needed in every industry and focuses on the application of techniques that ensure the successful completion of a high-quality product. Following a software process ensures that the final product is maintainable, reliable, and scalable.
No matter how technology advances, software testing will always be non-negotiable in any development project. Every week new stories emerge of software failing across a myriad of industries, halting businesses and causing losses of millions of dollars.
In this program, you’ll work on real-world projects to apply software development concepts to blockchain technology, test software to validate sustainability of smart mobile applications, predict software reliability using operational profiles, and practice software architecture and design principles.
By committing to online study for 6-9 months, you can earn the Software Engineering MasterTrack Certificate that will be a pathway to the online Master of Computer Science degree at Arizona State University.
Course 1: CSE 565: Software Verification, Validation, and Testing - Software as a stand alone product or embedded within a system plays an integral role in our world today. As a consequence, it is essential that software works as expected. This requires software testing which entails answering both the verification question: “Are we building the product right?” and the validation question: “Are we building the right product?”. Understanding these questions is crucial for developing good test cases. This course is for anyone involved in testing software at any level starting from code modules to system testing. Strategies and techniques are presented for both testing software as well as planning and tracking testing efforts. Specific topics covered include: * Testing background * Testing process activities * Requirements based testing techniques Structure based testing techniques System testing * Testing tools * Reliability models Statistical testing * Test planning * Tracking testing progress * Test documentation * Test process improvement Learners completing this course will be able to: * Explain how testing activities fit within leading software development process models Understand and apply best practices for software testing * Create test cases based on commonly used requirements based testing techniques Create test cases to achieve control and data flow structure based coverage * Apply static analysis techniques to identify code anomalies * Create test cases that demonstrate system-level quality requirements are being met * Identify appropriate testing tools for applications * Predict software reliability based on operational profile testing and reliability models Describe activities to perform for improving testing processes * Analyze testing needs to create a plan to achieve test objectives * Track testing progress against a plan [Read the full course brief>>](https://asuonline.asu.edu/docs/CSE565_CourseBrief.pdf "ASU Software Engineering MasterTrack Certificate Software Verification, Validation, and Testing Course Brief")
Course 2: CSE 598: Advanced Software Analysis and Design - Software analysis and design proposes optimal software solutions to solve complex problems. In this hands-on course, students will apply methodologies, frameworks, and fundamentals and techniques of design, implementation, and software architecture to demonstrate real world applications. Main topics include object-oriented analysis and design, software architecture and design principles, quality attributes of software architecture, stakeholder perspectives and team approaches, mobile applications, service-oriented architecture and microservices-based web applications, and software engineering perspectives regarding robotics and autonomous systems. Specific topics covered include: * Nature of Software Systems * Significance of Software Analysis and Design * Object-Oriented Analysis and Design * Software Architecture and Design Principles * Quality Attributes of Software Architecture * Architecting Mobile Applications * Architecting Service-Oriented Architecture and Microservices-based Web Applications * Architecting Robotics and Autonomous Systems Learners completing this course will be able to: * Evaluate software complexity and scale traits in modern software systems. * Articulate software specification analysis and design concepts with foundations. * Apply standardized structural and behavioral modeling methods and practices for software systems. * Demonstrate engineering methodology in analysis and design of a model-based software system. * Use software design pattern concepts and models in designing a new software system. * Evaluate and apply appropriate software architecture functional and nonfunctional concepts, quality attributes, and styles in designing a new software system. * Develop structural and behavioral specifications with advanced features using the Unified Modeling Language (UML), C4 Model for Software Architecture (C4), frameworks and tools. * Apply appropriate architectural styles in designing and implementing software systems in different application domains including, but not limited to mobile, service-oriented, and autonomous and robotics systems. * Develop, implement, and test consumer/producer style software systems using software design patterns. [Read the full course brief>>](https://asuonline.asu.edu/docs/CSE598_advancedsoftwareanalysisdesign_coursebrief.pdf "ASU Software Engineering MasterTrack Certificate Advanced Software Analysis and Design Course Brief")
Course 3: CSE 598: Engineering Blockchain Applications - Blockchain technology is revolutionizing digitalization prospects for many industries and emerging as an exciting and rapidly growing field. By detailing the architecture of the technology, this course ensures that learners will be well versed in blockchain fundamentals. At the same time, it is designed to put learners on the leading edge by presenting the abstract nature of blockchain technology and emphasizing its broad applicability. Topics include the mathematical and cryptographic underpinnings of the technology, as well as mining, consensus protocols, networking, and decentralized governance. This course also features an extended case study called “How It Works at Dash.” Learners completing this course will be able to: * Apply the Elliptic Curve Digital Signature Algorithm to identity management and computer security * Determine the validity of chains given general consensus rules * Determine whether changes in consensus rules for a Nakamoto network will result in a successful protocol fork * Compare proof of work secured blockchains’ security to alternate security methods * Evaluate an optimal mix of network design and operational parameters to ensure network scalability and throughput * Evaluate the trade-off between security and computational complexity [Read the full course brief>>](https://asuonline.asu.edu/docs/CSE598_engineeringblockchainapplications_coursebrief.pdf "ASU Software Engineering MasterTrack Certificate Engineering Blockchain Applications Course Brief")
Course 4: CSE 535: Mobile Computing - The goal of this course is to provide an in-depth understanding of the fundamental concepts and challenges in the area of mobile computing and study the existing and proposed solutions for these challenges from both a research and development perspective. Several topics, including mobile app development, wireless communication, mobile technology management, mobility tracking, context awareness, and programming applications on mobile systems, will be covered in this course. Course work will involve programming assignments, discussions, quizzes, and a project. Specific topics covered include: * Mobile programming * Internet of Things (IoT) * Edge and cloud computing * Mobile networking * Mobile information access * Adaptive applications enabled by machine learning and AI * Energy-aware systems * Location-aware computing * Mobile security and privacy Learners completing this course will be able to: * Design a context-aware application. * Identify the advantages of using context in applications. * Explore the challenges arising due to changes in the environment in which computation is performed. * Identify relevant environment changes and analyze their causes, such as mobility, availability of data, and resource constraints. * Define smartness and identify salient features that distinguish smart applications from traditional ones in the context of smart city, smart grid, smart transportation, smart mobile applications, and autonomous systems, such as autonomous cars. * Describe key features of Internet of Things (IoT) and design a distributed smart application using IoT. * Define cloud computing, crowdsourcing, volunteer computing, and other novel variants of pervasive computing. * Analyze nonfunctional requirements of smart mobile applications, such as safety security sustainability. * Apply popular tools, such as machine learning, security protocols, AI, and software testing, to validate. safety security and sustainability of smart mobile applications. * Acquire programming skills on popular mobile platforms, such as Android. * Develop, end-to-end, a sensor-enabled smart autonomous practical application. [Read the full course brief>>](https://asuonline.asu.edu/docs/CSE535_CourseBrief.pdf "ASU Software Engineering MasterTrack Certificate Mobile Computing Course Brief")