Commit 3c735d

Testseite
@@ 1,16 1,141@@
- # Testseite
+ # Satz 1 - Intro, SD activities, Iterative Development Lifecycle, EXTREME programming
- # Satz 8 Refactoring to Patterns
+ Naive View / Problem Specification —-CODING——> Final Program
- ![Image.png](https://res.craft.do/user/full/b8c06e02-9cc9-7334-44af-c59f8a3eba50/doc/784F1EED-3610-46DD-8BD0-4805B6D5BFB9/4C1BBC34-A764-462E-AF16-0A5EBB931532_2/fu11520YHOh4mwm6I3C7JmSSN488yPKKOv1IMjrJwOcz/Image.png)
+ > What ist SE?
- ![Image.png](https://res.craft.do/user/full/b8c06e02-9cc9-7334-44af-c59f8a3eba50/doc/784F1EED-3610-46DD-8BD0-4805B6D5BFB9/0772B7DD-5636-4C10-BDA0-518D17CA7D76_2/QivOnEr4e0yb1qqjIkTFCpYQ24sydOQ1UabXifXFpfUz/Image.png)
+ > ***“state of the art of developing quality software on time and within budget”***
- ![Image.png](https://res.craft.do/user/full/b8c06e02-9cc9-7334-44af-c59f8a3eba50/doc/784F1EED-3610-46DD-8BD0-4805B6D5BFB9/F32C5C22-A1AE-4B3C-A776-34AE0327BBE1_2/yyCGNq0ZqykprtyxbdUBY3mharh1wrfNOCMxBoounZ0z/Image.png)
+ > ***„Multi-Person construction of Multi-Version software“*** - Dave Parnas
- Make it work – First!
+ > ***„SE is different from other engineering disciplines“*** - Ian Sommerville
- ![Image.png](https://res.craft.do/user/full/b8c06e02-9cc9-7334-44af-c59f8a3eba50/doc/784F1EED-3610-46DD-8BD0-4805B6D5BFB9/43E24CE0-8DDD-46F7-B496-B9AE222DAD10_2/KdHzNdHy6nhBNxgtuSJoicllWWkQHtvRWbDKfhe85ycz/Image.png)
+ Trade-off between *perfection* and *actual needs - considering constraints*
- ![Image.png](https://res.craft.do/user/full/b8c06e02-9cc9-7334-44af-c59f8a3eba50/doc/784F1EED-3610-46DD-8BD0-4805B6D5BFB9/D842D29B-79BD-4062-ACA4-EA3F02F493CE_2/yxwjHiSggIgar6FKsHDjaoikRvYwyxdbb08JKPz9BNQz/Image.png)
+ Teamwork
- ![Image.png](https://res.craft.do/user/full/b8c06e02-9cc9-7334-44af-c59f8a3eba50/doc/784F1EED-3610-46DD-8BD0-4805B6D5BFB9/810C5A91-7803-439F-86E2-3775D6D75E91_2/yE1b6zxzFgcxpx3CpyiIDKXR41th56qoSBuVK4QWHZIz/Image.png)
+
+ Change is the norm, not the exception
+
+ Not constrained by physical laws, but political/social forces
+
+ SD Activities:
+
+ - Requirements Collection
+ - often informally, ::incomplete, ambiguous or even incorrect::
+ - Req. will change, Validation needed throughout the whole software lifecycle
+ - ::Analysis is the process of identifying what a system will do or needs to do::
+ - Result: a specification (document)
+ - Analysis results in models of the system which describe:
+ - ::Refined use cases, System architecture, Classes, Relationships::
+ - ::A prototype is a software program developed to test, explore, or validate a hypothesis, that is, to reduce risks::
+ - ***Exploratory PTT***: throwaway, validate reqs, explore choices
+ - UI PTT (user reqs)
+ - Rapid PTT (functional reqs)
+ - Experimental PTT (technical feasability)
+
+ ::Eselsbrücke: ***U & I*** im Trans***rapid*** wäre ein lustiges ***Experiment***::
+
+ - ***Evolutionary PTT***: made to evolve into a finished product
+ - Oft, wenn Spezifikationen nicht im Vorraus entwickelt werden können
+ - > ::System Design::
+ - > Design is the process of specifying how the system behavior will be realized from software components
+ - > result: technical architecture and detailed design documents
+ - > ::Implementation::
+ - > Is the activity of constructing a software solution to the customers reqs
+ - > ::Testing::
+ - > is the process of validating that the solution meets the reqs
+
+ All of the Above are **iterative** activities;
+
+ - ::Maintenance::
+ - Is the process of changing a system after it has been deployed for the first time
+ - Corrective
+ - Adaptive
+ - Perfective
+ - ::Eselsbrücke: 🧢 CAP bro CAP CAP Coradaper Core@Diaper::
+ - Maintenance Activities: Configuration & Version Mngmt, Reengineering, Documentation Updates
+
+ ![Image.png](https://res.craft.do/user/full/b8c06e02-9cc9-7334-44af-c59f8a3eba50/doc/784F1EED-3610-46DD-8BD0-4805B6D5BFB9/DB1643CB-1958-457B-AFAA-133D77CBD0BD_2/JkMDHycEXkGo90Kh1PCFprcoO60J3kG4bIL9Wecf1Hcz/Image.png)
+
+ # The Iterative Development Lifecycle
+
+ ![Image.png](https://res.craft.do/user/full/b8c06e02-9cc9-7334-44af-c59f8a3eba50/doc/784F1EED-3610-46DD-8BD0-4805B6D5BFB9/A4499E39-1A16-453C-BA4A-C309C67B362B_2/V8qfvJiq26Es7RF5rJcU6NDRKpHzTlZsnal3bFUPK58z/Image.png)
+
+ ![Image.png](https://res.craft.do/user/full/b8c06e02-9cc9-7334-44af-c59f8a3eba50/doc/784F1EED-3610-46DD-8BD0-4805B6D5BFB9/EACC65CB-A73A-419C-A971-CB11D43AA834_2/zWzxVUVGOZbBm7sgC9Gx86TjIpuaOMn1sXAtsjemooQz/Image.png)
+
+ (ongoing & parallel, not sequential phases)
+
+ **Classical Software Lifecycle: (is unrealistic)**
+
+ ![Image.png](https://res.craft.do/user/full/b8c06e02-9cc9-7334-44af-c59f8a3eba50/doc/784F1EED-3610-46DD-8BD0-4805B6D5BFB9/0741745E-3C0E-4717-B458-BA8BBA0F9BFA_2/HDKUDYuoYI415OSh4ZyXxqToHiBwBp0VDAyUkjhVBOwz/Image.png)
+
+ Probleme mit dem Modell:
+
+ - Echte Projekte folgen nicht diesem sequentiellem Fluss;
+ - Requirements können nicht so explizit genannt werden wie vom Modell gefordert
+ - Kunden müssen starke Geduld haben - MVP ist erst spät da
+
+ ![Image.png](https://res.craft.do/user/full/b8c06e02-9cc9-7334-44af-c59f8a3eba50/doc/784F1EED-3610-46DD-8BD0-4805B6D5BFB9/819B9EE9-E328-41D3-B150-9FAB497802E8_2/UVkhhiOlpuvkvezmexh8ZO1CDg8s9a02Uqa3IfQbmIgz/Image.png)
+
+ ![Image.png](https://res.craft.do/user/full/b8c06e02-9cc9-7334-44af-c59f8a3eba50/doc/784F1EED-3610-46DD-8BD0-4805B6D5BFB9/AEF20AAB-B704-4BEF-9DA3-82128A253971_2/RO8gvhMNmGFTxXxnSFDUyywa9SR89qdQTX9xXvpxMA0z/Image.png)
+
+ ✨You won't get it right the first time, so
+
+ - Integrate,
+ - Validate,
+ - Test
+
+ > ***“You should use iterative development only on projects that you want to succeed.”*** – Martin Fowler (UML Distilled)
+
+ → ⚠️ In der Praxis ist Entwicklung immer iterativ und alle Aktivitäten passieren parallel
+
+ → Ansatz: INKREMENTELLE UPDATES ; immer running version haben, neue functionalities nach validierung against user requirements integraten
+
+ ![Image.png](https://res.craft.do/user/full/b8c06e02-9cc9-7334-44af-c59f8a3eba50/doc/784F1EED-3610-46DD-8BD0-4805B6D5BFB9/71ABFEB2-7D1C-4448-822F-943DFC0F479E_2/xPTMy6LJEcMuDVOGDDA3z9bxEU26SETBj7C8L41X9A4z/Image.png)
+
+ # Extreme Programming
+
+ → Evolutionary development
+
+ - Planning Game
+ - Stakeholders meet to plan the next iteration, Business People decide, Developers assess
+ - Small releases
+ - MVP, dann release early and often
+ - Metaphor
+ - Organizing Metaphor, easy to remember naming conventions
+ - Simple design
+ - Always use the simplest design possible
+ - Testing
+ - Test first; Write Test, then implement
+ - Refactoring
+ - continously done
+ - Pair programming
+ - 40h-week
+ - devs go home on time ; overtime = serious problem
+ - no tired devs
+ - On-Site customer
+ - Coding standards
+ - everyone has the same standards
+ - Continuous intergration
+ - All changes are integrated into the code-base at least daily
+ - tests have to run 100% before and after the integration
+ - Collective code ownership
+ - Any programmer that sees an opportunity to add value to any portion of the code is required to do so at any time
+
+ Pros:
+
+ - Integrated, simple concept
+ - Low maangement overhead
+ - Continuous risk management
+ - Continuous effort estimation
+ - Emphasis on testing
+
+ Cons:
+
+ - scalability bad (big teams)
+ - big teams need more overhead
+ - good documentation is necessary
+
+ ![Image.png](https://res.craft.do/user/full/b8c06e02-9cc9-7334-44af-c59f8a3eba50/doc/784F1EED-3610-46DD-8BD0-4805B6D5BFB9/6F9D62DB-EF03-4AA8-AAF7-6ADB79E4413B_2/sqLtzNnXLkrwrrcDF0YNjK1p7PcNxxpFvmM511iWvPgz/Image.png)
+
+ ![Image.png](https://res.craft.do/user/full/b8c06e02-9cc9-7334-44af-c59f8a3eba50/doc/784F1EED-3610-46DD-8BD0-4805B6D5BFB9/35BFC4BC-848E-482C-9A53-44E16E553EB6_2/Z6HJA999xrjOtinsJjph0v7SadcIOdvDm5eI6W5F7eoz/Image.png)