UOP-CSS422: Software Architecture

(UOP-CSS422.AJ1)
Lessons
Lab
Lab (Add-on)
TestPrep
Get A Free Trial

Skills You’ll Get

1

Principles of Software Architecture and Python Fundamentals

  • Defining software architecture
  • Characteristics of software architecture
  • Importance of software architecture
  • System versus enterprise architecture
  • Architectural quality attributes
  • Installing Python
  • Running Python
  • Basic syntax
  • Conditional statements and loops
  • Data structures
  • Functions
  • Object-oriented programming
  • Modules and packages
  • File operations
  • Error and exception handling
2

Writing Modifiable and Readable Code and Testability

  • What is modifiability?
  • Aspects related to modifiability
  • Understanding readability
  • Fundamentals of modifiability – cohesion and coupling
  • Exploring strategies for modifiability
  • Metrics – tools for static analysis
  • Refactoring code
  • Understanding testability
  • White-box testing principles
3

Performance and Writing Applications that Scale

  • What is performance?
  • Software performance engineering
  • Performance testing and measurement tools
  • Performance complexity
  • Measuring performance
  • Profiling
  • Other tools
  • Programming for performance – data structures
  • Scalability and performance
  • Concurrency
  • Thumbnail generator
  • Multithreading – Python and GIL
  • Multithreading versus multiprocessing
  • Pre-emptive versus cooperative multitasking
  • The asyncio module in Python
  • Waiting for a future – async and await
  • Concurrent futures – high-level concurrent processing
  • Scaling for the web
  • Scaling workflows – message queues and task queues
  • Celery – a distributed task queue
4

Security, Design Patterns in Python, and Architectural Patterns

  • Information security architecture
  • Secure coding
  • Common security vulnerabilities
  • Is Python secure?
  • Security issues with web applications
  • Strategies for security – Python
  • Secure coding strategies
  • Design patterns – elements
  • Categories of design patterns
  • Patterns in Python – creational
  • Patterns in Python – structural
  • Patterns in Python – behavioral
  • Introducing MVC
  • Event-driven programming
  • Microservice architecture
  • Pipe and Filter architectures
5

Deploying Python Applications and Techniques for Debugging

  • Deployability
  • Tiers of software deployment architecture
  • Software deployment in Python
  • Deployment – patterns and best practices
  • Maximum subarray problem
  • Simple debugging tricks and techniques
  • Logging as a debugging technique
  • Debugging tools – using debuggers
  • Advanced debugging – tracing

1

Writing Modifiable and Readable Code and Testability

  • Finding the McCabe Metric
  • Running a Static Checker
  • Fixing Code Smells by Refactoring the Code
  • Fixing Code Complexity by Refactoring the Code
  • Measuring Code Coverage
  • Using Test-Driven Development
  • Unit Testing Using doctest
2

Performance and Writing Applications that Scale

  • Measuring the Performance of Code Using timeit
  • Collecting and Reporting Statistics
  • Implementing an LRU Cache Dictionary
  • Creating a Co-operative Multitasking Scheduler Using Simple Python Generators
  • Using async and await
  • Using the concurrent.futures Module
3

Security, Design Patterns in Python, and Architectural Patterns

  • Serializing an object using code jail
  • Making the Code Secure for Input
4

Deploying Python Applications and Techniques for Debugging

  • Debugging Maximum Subarray Problem
  • Generating Random Patient Data Using the schematics Library
  • Debugging the Word Searcher Program
  • Creating a Log File Using Logger Objects
  • Creating a Simple Log File
  • Debugging with pdb

1

Writing Modifiable and Readable Code and Testability

  • Documenting the Code
  • Understanding the Concept of Cohesion
  • Unit Testing a Module
2

Performance and Writing Applications that Scale

  • Profiling with cProfile
  • Using the Multiprocessing Pool Object
  • Using the asyncio Module

Related Courses

All Courses
scroll to top