<commit_before># Agile Software Development
<!--deck text start-->
Much of modern software engineering best practices and know-how can be summarized in a few key principles.  This book *Agile Software Development Principles, Patterns, and Practices*, written by *<NAME>*, defines eleven of these principles and gives them short helpful names and shows how they are applied in many different established design patterns in modern software literature. 
<!--deck text end-->

#### Contributed by [<NAME>](https://github.com/bartlettroscoe)
#### Publication date: September ???, 2020


Resource information | Details 
:--- | :--- 
Book title  | [Agile Software Development Principles, Patterns, and Practices](https://books.google.com/books/about/Agile_Software_Development.html?id=0HYhAQAAIAAJ&source=kp_book_description)
Authors | <NAME>
Publication | 2003, ISBN: 0-13-597444-5

This book does a great job of covering the essence of modern software design principles.
Arguably, the greatest contribution of this book is in chapters 7-9, and 20.
In these chapters, Martin defines eleven different principals of modern software design; five are related to individual classes, and the remaining six are related to collections of classes (i.e. packages).
These eleven principles are:

General OO Principles:

* **1) SRP** (Single Responsibility Principle): Classes should have only one reason to change.

* **2) OCP** (Open-Closed Principle): Software entities (classes, modules, functions, etc.) should be open for extension, but closed for modification.

* **3) LSP** (Liskov Substitution Principle): Subtypes must be substitutable for their base types.
<commit_msg>Apply feedback from the reveiw (#383)<commit_after># Agile Software Development
<!--deck text start-->
Much of modern software engineering best practices and know-how can be summarized in a few key principles.
This book, *Agile Software Development Principles, Patterns, and Practices*, written by *<NAME>*, defines eleven of these principles and gives them short helpful names and shows how they are applied in many different established design patterns in modern software literature. 
<!--deck text end-->

#### Contributed by [<NAME>](https://github.com/bartlettroscoe)
#### Publication date: September ???, 2020


Resource information | Details 
:--- | :--- 
Book title  | [Agile Software Development Principles, Patterns, and Practices](https://books.google.com/books/about/Agile_Software_Development.html?id=0HYhAQAAIAAJ&source=kp_book_description)
Authors | <NAME>
Publication | 2003, ISBN: 0-13-597444-5

This book does a great job of covering the essence of modern software design principles.
Arguably, the greatest contribution of this book is in chapters 7-9, and 20.
In these chapters, Martin defines eleven different principals of modern software design; five are related to individual classes, and the remaining six are related to collections of classes (i.e. packages).
These eleven principles are:

General OO Principles:

* **1) SRP** (Single Responsibility Principle): Classes should have only one reason to change.

* **2) OCP** (Open-Closed Principle): Software entities (classes, modules, functions, etc.) should be open for extension, but closed for modification.

* **3) LSP** (Liskov Substitution Principle): Subtypes must be substitutable for their base types.

{'fraction_non_alphanumeric': 0.08900836320191159, 'fraction_numerical': 0.016427718040621268, 'mean_word_length': 5.144954128440367, 'pattern_counts': {'":': 0, '<': 13, '<?xml version=': 0, '>': 13, 'https://': 4, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 8, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4779', 'n_tokens_mistral': 917, 'n_tokens_neox': 830, 'n_words': 407}