Presentation is loading. Please wait.

Presentation is loading. Please wait.

https://flic.kr/p/Lj3bW

Similar presentations


Presentation on theme: "https://flic.kr/p/Lj3bW"— Presentation transcript:

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?


Download ppt "https://flic.kr/p/Lj3bW"

Similar presentations


Ads by Google