你将学到什么
Use software design pattern concepts and models in designing a new software system
Understand how testing activities fit within leading software development process models
Apply popular tools, such as machine learning, security protocols, AI, and software testing, to validate safety security and sustainability of smart mobile applications
Learn how to interact with private blockchain ecosystems through writing and executing chaincodes
课程概况
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 4-6 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.
包含课程
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.
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
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.
面向人群
任何具有计算机科学本科教育或对计算机编程和编码有扎实基础知识的人。
课程项目
Analyzing Code Coverage
Create a set of test cases for code that determines the correct amount of change owed, if any, following the purchase of products from a vending machine. Learn how to execute the program with test cases and observe code coverage.
WHAT YOU WILL LEARN
Analyze testing needs to create a plan to achieve test objectives and, subsequently, create test cases to demonstrate system-level quality requirements are being met.
Sport Concussion Assessment
Develop an application to help medical practitioners monitor athletes for symptoms of concussion, utilizing key concepts including actors, use cases, use case diagrams, object identification, class diagram development, and Java implementation.
WHAT YOU WILL LEARN
Gather requirements for a software system using user scenarios and diagrams.
Modern Blockchain Application
Understand Hyperledger Fabric as a distributed ledger framework for developing applications for managing financial transactions, and learn to write chaincodes to handle business logic in the ledger.
WHAT YOU WILL LEARN
Learn about Hyperledger Fabric blockchain architecture and operation, and write software for encoded blocks to update the financial ledger.
Sign Language Recognition using Machine Learning
Develop a machine learning application that can recognize and classify hand gestures as one of several words in American Sign Language.
WHAT YOU WILL LEARN
Learn how to leverage machine learning techniques for analyzing images.
预备知识
了解以下主题:软件开发生命周期模型,面向对象的编程知识,软件过程模块和类图的基本知识。