Ziang-Lu / Software-Development-and-Design

Notes for software development and design, as well as testing tools and dev&ops

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Software Development and Design

This repo takes aspects regarding software development and design notes from:

  • Software Development Process by Georgia Tech on Udacity
  • Software Construction by University of British Columbia on edX

Plus, this repo also notes some development aspects, like testing and dev & ops.

Software Phases

  1. Requirement Engineering (需求工程)
  2. Design
  3. Implementation
  4. Validation and Verification
  5. Maintenance

Software Process Models

  • Waterfall Model (瀑布模型)
  • Evolutionary Prototyping (进化原型)
  • Spiral Model (螺旋模型)
  • Rational Unified Process (RUP) / Unified Software Process (USP) (统一软件开发) ***
  • Agile Software Process (敏捷软件过程) ***

***: Popularly used


UML Diagrams

  1. Class Diagram (类图)
  2. Associations (关联)
  3. Sequence Diagram (序列图)

Design Principles

  • Single Responsibility Principle (SRP) (单一功能原则)
  • Interface Segregation Principle (ISP) (接口分离原则)
  • Liskov Substitution Principle (LSP) (里氏代换原则)
  • Open-Closed Principle (开闭原则)
  • Dependency Inversion (依赖反转原则)

Logging

Check out Logging/logging_demo.py and Logging/glog_demo.py


Testing

Unit Testing Code Coverage (by Test Cases) Profiling
Python unittest
pytest
Overview
coverage
pytest-cov
Overview
time
timeit
cProfile (+ snakeviz)
line_profiler
statprof
yappi

License

This repo is distributed under the MIT license.

About

Notes for software development and design, as well as testing tools and dev&ops

License:MIT License


Languages

Language:Python 62.1%Language:Java 37.9%