Software Configuration Management (SCM)
“the discipline of identifying the configuration of a system at distinct points in time for the purpose of systematically controlling changes to the configuration and maintaining the integrity and traceability of the configuration throughout the system life cycle.” SWEBOK v3 (Ch. 6)
“Software configuration management (SCM) is a supporting-software life cycle process that benefits p ro j e c t m a n a g e m e n t , d e v e l o p m e n t a n d maintenance activities, quality assurance activities, as well as the customers and users of the end product.” SWEBOK v3 (Ch. 6)
Examples
Fundamental Features
• Manage changes to files over time
• Track changes, provide history, auditing, tracing
• Provide mechanisms to maintain versions
• Allow going backward and forward in time, recover older versions
More than just Version Control• Version (revision) control of: source code, documentation,
configuration files, …
• Workflow management: branch, merge, pull requests, tagging
• File access: distributed, centralized, permissions
• Manage/facilitate concurrent access: merge model or locking
• Record who made changes, blame
• See: https://en.wikipedia.org/wiki/Comparison_of_version_control_software
Really, more than just Version Control
is the primary enabler of many core SE activities
• Build: build automation, release management
• Test: test automation, code coverage, traceability
• Documentation: doc generation
• Requirements/Specifications
• Modeling: modeling artifacts
• Changes: change management
• Maintenance: defect tracking, bugs, tickets
• ?
SCM
.cs .cshtml .js .css
SoftwareDocumentation
.feature .html
TestsB
uild
Build
Run
Run
Professional Workflow (courtesy Claire Mears)
SCM
.cs .cshtml .js .css
Software
.sql
Database
Documentation
.feature .html
Tests CreateB
uild
Build
Run
Run
SCM
.cs .cshtml .js .css
Software
.sql
Database
Documentation
.feature .html
Tests CreateB
uild
Build
Run
Run
.sh .ps1 .py
Web server Network
Cloud ResourcesDeploy
Deploy .pp .yml Dockerfile .rb
Complete Developer or
Test System
Complete System
Deploy
Deploy
Physical Objects
Create
.g .f3d .scad
???
IaaSInfrastructure as a Service
• AWS
• Azure
• Google Compute Engine
• Rackspace
• IBM SoftLayer
Script it!
• AWS Command Line Interface
• Azure CLI
• Google Cloud SDK
Azure Web App
Example & Demo: azwebapp.sh
*Technically uses PaaS
Iaas — Iac — DevOps
• Infrastructure as a Service
• Infrastructure as Code
• software DEVelopment and information technology OPerationS
https://en.wikipedia.org/wiki/DevOps
Deploy an Entire Custom System
• Puppet
• Chef
• Ansible
• Salt
• Vagrant
• Terraform
Continuous Configuration Automationor
System Configuration Management
• Docker
Examples
• Examples on official websites, + e.g.
• Ansible: https://github.com/ansible/ansible-examples
• Puppet/Vagrant: https://github.com/jrodriguezjr/puppet-lamp-stack
• Docker: Very simple example Dockerfile
Docker“Docker containers wrap up a piece of software in a complete filesystem that contains everything it needs to run: code, runtime, system tools, system libraries – anything you can install on a server. This guarantees that it will always run the same, regardless of the environment it is running in.”
Images: https://www.docker.com
$ docker build -t lab6image . $ docker run -it lab6image /bin/bash
$ docker run -d -p 80:80 —name webserver nginx
Movements• Software Defined Radio
• Software Defined Networking
• Software Defined Storage
• Software Defined Data Center
• XaaS — “Everything-as-a-Service”
Create API and systems to programmatically
initialize, control, change & manage
Then wrap it up as a managed service
Define systems and behavior with code
What are we doing here?
Inventions by Homo SapiensAmazing
• ? • stone tools • spear, bow & arrow • knife • Pottery • Beer
• The Wheel • cart • bronze age tools • iron age tools • guns • fighter jets • food processor • computers (as
applications)
Revolutionary• ? • dog, cat,
domestication of animals, falconry
• fishing cormorants
• passenger pigeons
• slavery • paid labor
computers (as automatons)
“enter a new era or age”
+
++
+
++
+
+
++
++
+
API, or Scripting Computer Applications
+
.g
.stl.*
Rethinking Transportation 2020-2030The Disruption of Transportation and the Collapse of the Internal-Combustion Vehicle and Oil Industries
Disruption, Implications and Choices
A RethinkX Sector Disruption ReportMay 2017
James Arbib & Tony Seba
“TaaS will provide 95% of the passenger miles traveled within 10 years of the widespread regulatory approval of AVs. By 2030, individually owned ICE vehicles will still represent 40% of the vehicles in the US vehicle fleet, but they will provide just 5% of passenger miles.”
See also: Intel predicts autonomous driving will spur new ‘Passenger Economy’ worth $7 Trillion
“Alien Dreadnought”https://arstechnica.com/cars/2016/11/tesla-to-buy-engineering-
firm-in-quest-for-machine-that-builds-the-machine/
Tesla Factory
http://cs.stanford.edu/people/karpathy/deepimagesent/
Machine Learning is CodeAutoML
Everything as CodeWill we have API’s for?
• making or cooking dinner
• agriculture
• building a house
• filing a lawsuit
• incorporating a company
• gene editing
• ??
WTF
?