Download presentation
Presentation is loading. Please wait.
1
https://flic.kr/p/Lj3bW
Software Configuration Management
2
What knowledge/skills have you learned so far?
OR Software Engineer Code Monkey How can you tell?
3
Consult the SWEBOK Guide (Software Engineering Body Of Knowledge)
4
So what’s in this SWEBOK anyway?
One possible definition of Software Engineering: Appling SWEBOK to software creation and evolution So what’s in this SWEBOK anyway?
5
Has Boot Camp covered any?
15 Knowledge Areas (KAs) Software Requirements Software Design Software Construction Software Testing Software Maintenance Software Configuration Management Software Engineering Management Software Engineering Process Software Engineering Models and Methods Software Quality Software Engineering Professional Practice Software Engineering Economics Computing Foundations Mathematical Foundations Engineering Foundations Has Boot Camp covered any?
6
15 Knowledge Areas (KAs) 3 stand out to me Let’s pick on this one
Software Requirements Software Design Software Construction Software Testing Software Maintenance Software Configuration Management Software Engineering Management Software Engineering Process Software Engineering Models and Methods Software Quality Software Engineering Professional Practice Software Engineering Economics Computing Foundations Mathematical Foundations Engineering Foundations 3 stand out to me Let’s pick on this one
7
Software Configuration Management (SCM) “Configuration management … is 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)
8
Which have you learned about?
SCM Subtopics Which have you learned about?
9
Git! SCM Subtopics Let’s see how much you’ve learned…
“Version control tools” Let’s see how much you’ve learned…
10
Pop Quiz 5 questions Update diagram in each
Commit nodes Branch nodes Based on actions of Alice and Bob Collaborating via GitHub repo
11
Start like this Scott Fleming SF 1 GitHub 11111 master Alice Bob
12
Question 1 Alice: Bob: (include the HEAD node)
$ git clone $ cd whatever Bob: (include the HEAD node)
13
Question 2 Alice: $ git branch myfix $ git checkout myfix
14
Question 3 Alice: Bob: $ rails generate scaffold User … $ git add .
$ git commit # 22222 Bob: $ rails generate scaffold Micropost … $ git commit # 33333
15
Question 4 Bob: git push
16
Question 5 Alice: git pull
17
What if… Alice did this: Bob did this: app/models/micropost.rb
class Micropost < ActiveRecord::Base validates :content, length: { maximum: 140 } end app/models/micropost.rb Bob did this: class Micropost < ActiveRecord::Base validates :content, length: { maximum: 120 } end app/models/micropost.rb
18
What if Alice did this? $ git checkout master $ git merge myfix master
11111 master 22222 33333 myfix $ git checkout master $ git merge myfix
19
Manually fix the file; git add and commit
$ git merge myfix Auto-merging app/models/micropost.rb Automatic merge failed; fix conflict and then commit result. class Micropost < ActiveRecord::Base <<<<<<< HEAD validates :content, length: { maximum: 140 } ======= validates :content, length: { maximum: 120 } >>>>>>> myfix end app/models/micropost.rb To resolve: Manually fix the file; git add and commit
20
SCM is more than version control Can you think of more that you’ve learned?
21
SCM is more than version control Can you think of more that you’ve learned?
“Build handling tools”: rvm bundler
22
SCM Problems: Your code AND external dependencies
ruby jquery Your code sqlite …
23
rvm and bundler work together to control external dependencies
Let’s take a quick tour
24
RVM: Set Rails and Gemset versions
Few more handy RVM commands: $ rvm list $ rvm current $ rvm info
25
Problem: RVM config is not part of project How to solve?
26
Problem: RVM config is not part of project How to solve?
Gemfile in project stores all Gems (external dependencies) and their versions Use bundle to run (exec) commands (automagically uses versions in Gemfile) RVM also can use Gemfile versions when pwd is in project (see chapters and 3.6.1)
27
Summary Software Configuration Management (SCM) Version control tool
Git Build handling tools rvm bundler What’s next?
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.