1
17-214
School of Computer Science
Charlie Garrod Bogdan Vasilescu School of Computer Science 17-214 - - PowerPoint PPT Presentation
Principles of Software Construction: Objects, Design, and Concurrency Managing change Charlie Garrod Bogdan Vasilescu School of Computer Science 17-214 1 Lambdas and streams GUIs UML More Git Intro to Java Static Analysis DevOps Git,
1
17-214
School of Computer Science
2
17-214
Part 1: Design at a Class Level Design for Change: Information Hiding, Contracts, Unit Testing, Design Patterns Design for Reuse: Inheritance, Delegation, Immutability, LSP, Design Patterns Part 2: Designing (Sub)systems Understanding the Problem Responsibility Assignment, Design Patterns, GUI vs Core, Design Case Studies Testing Subsystems Design for Reuse at Scale: Frameworks and APIs Part 3: Designing Concurrent Systems Concurrency Primitives, Synchronization Designing Abstractions for Concurrency
3
17-214
4
17-214
5
17-214
6
17-214
Configuration management originates from the 50s, when spacecraft failures resulted from undocumented changes.
7
17-214
Complex Source Languages, Directories, Dependencies Source Files Data Versioning Branching Many Tools Compilers, Linkers, Code gens, Translators Traceability Scalability Configuring Complex Systems Executables Libraries Dependencies Config Files Data Consistency Flexibility
Cloud Deployment Distributed Data Virtualization Load Balancing Security
Diverse User Base
Many Platforms Product Lines Shared Libraries Security Localization
8
17-214
Redistribute?
9
17-214
Version Control + Workflows Build Managers Package Managers Deployment Managers + VMs/ Containers App Markets + Update Managers
10
17-214
11
17-214
12
17-214
13
17-214
14
17-214
15
17-214
16
17-214
17
17-214
18
17-214
19
17-214
source „Version Control with Subversion“
20
17-214
22
17-214
23
17-214
24
17-214
25
17-214
26
17-214
Merge M e r g e
27
17-214
28
17-214
29
17-214
30
17-214
31
17-214
32
17-214
33
17-214
34
17-214
36
17-214
37
17-214
39
17-214
https://git-scm.com/book/en/v2/Getting-Started-About-Version-Control
40
17-214
https://git-scm.com/book/en/v2/Getting-Started-About-Version-Control
42
17-214
https://git-scm.com/book/en/v2/Getting-Started-About-Version-Control
43
17-214
44
17-214
46
17-214
47
17-214
48
17-214
49
17-214
50
17-214
51
17-214
52
17-214
53
17-214
54
17-214
55
17-214
56
17-214
57
17-214
70
17-214