Skip to content

Commit

Permalink
lecture 5
Browse files Browse the repository at this point in the history
  • Loading branch information
loudinb committed Jan 25, 2024
1 parent 391e885 commit 174bdc8
Showing 1 changed file with 142 additions and 7 deletions.
149 changes: 142 additions & 7 deletions 24ss/slides/lecture_5.html
Original file line number Diff line number Diff line change
Expand Up @@ -483,7 +483,27 @@ <h2>V-Model: Overview</h2>
<section id="v-model-visualized" class="slide level2">
<h2>V-Model: Visualized</h2>

<img data-src="https://upload.wikimedia.org/wikipedia/commons/f/f9/V-model.svg" class="r-stretch quarto-figure-center"><p class="caption">Herman Bruyninckx, <a href="http://creativecommons.org/licenses/by-sa/3.0/">CC BY-SA 3.0</a>, via Wikimedia Commons</p></section>
<img data-src="https://upload.wikimedia.org/wikipedia/commons/f/f9/V-model.svg" class="r-stretch quarto-figure-center"><p class="caption">Herman Bruyninckx, <a href="http://creativecommons.org/licenses/by-sa/3.0/">CC BY-SA 3.0</a>, via Wikimedia Commons</p><aside class="notes">
<p>This visual representation of the V-Model clearly delineates the structured and disciplined approach of this methodology, emphasizing the parallel importance of development and testing at each stage of the software lifecycle. It is often described as an extension of the waterfall model, emphasizing verification and validation.”</p>
<p>V-Shape Structure: The V-shape of the model is prominent in the image. The left side of the V represents the development phases (Requirements, System Design, Architecture Design, Module Design), and the right side represents the testing phases (Unit Testing, Integration Testing, System Testing, Acceptance Testing).”</p>
<p>Sequential Phases: Note how each phase on the left correlates directly to a phase on the right. This demonstrates the model’s sequential approach, where each step must be completed before the next one begins.</p>
<p>Emphasis on Testing: The image emphasizes the importance of testing in the V-Model. For every development stage, there is a corresponding testing phase, highlighting the model’s focus on quality and risk management.</p>
<p>Requirements and Acceptance Testing: At the top of the V, you’ll see the Requirements phase on the left and Acceptance Testing on the right, showing the direct relationship between initial requirements and final testing to ensure the product meets these requirements.”</p>
<p>Detailing of Each Phase: Each descending step of the V represents a more detailed phase of development and testing. The image may depict this through increasingly detailed representations or symbols at each level.”</p>
<p>Feedback Loops: While the V-Model is often seen as a strictly sequential process, it is typical to visualize feedback loops indicating that findings in the testing phases can lead to revisions in the development phases.</p>
<p>Project Completion: The bottom of the V, where Module Design and Unit Testing meet, represents the culmination of detailed design and testing before moving towards integration and system testing.</p>
<style type="text/css">
span.MJX_Assistive_MathML {
position:absolute!important;
clip: rect(1px, 1px, 1px, 1px);
padding: 1px 0 0 0!important;
border: 0!important;
height: 1px!important;
width: 1px!important;
overflow: hidden!important;
display:block!important;
}</style></aside>
</section>
<section id="v-model-key-facts" class="slide level2">
<h2>V-Model: Key Facts</h2>
<ul>
Expand All @@ -510,7 +530,27 @@ <h2>Spiral Model: Overview</h2>
<section id="spiral-model-visualized" class="slide level2">
<h2>Spiral Model: Visualized</h2>

<img data-src="https://upload.wikimedia.org/wikipedia/commons/e/ec/Spiral_model_%28Boehm%2C_1988%29.svg" class="r-stretch quarto-figure-center"><p class="caption">Conny derivative work: Spiral_model_(Boehm,_1988).png: Marctroyderivative work: Conan, Public domain, via Wikimedia Commons</p></section>
<img data-src="https://upload.wikimedia.org/wikipedia/commons/e/ec/Spiral_model_%28Boehm%2C_1988%29.svg" class="r-stretch quarto-figure-center"><p class="caption">Conny derivative work: Spiral_model_(Boehm,_1988).png: Marctroyderivative work: Conan, Public domain, via Wikimedia Commons</p><aside class="notes">
<p>This visual conveys the Spiral Model’s unique approach to software development, blending iterative refinement with systematic aspects of the waterfall model, and its strong emphasis on early risk identification and mitigation.”</p>
<p>Spiral Design: At the center of the image, you’ll notice the spiral shape, which represents the iterative nature of this model. Each loop in the spiral is a phase in the process, symbolizing the gradual refinement of the project through successive iterations.</p>
<p>Four Phases of the Spiral: The Spiral Model is divided into four major phases: Planning, Risk Analysis, Engineering, and Evaluation. These phases are depicted along the spiral’s path, indicating their repeated application in each cycle of the project.</p>
<p>Emphasis on Risk Analysis: A key feature of the Spiral Model is its focus on risk analysis. The image may show a detailed risk assessment phase, where potential risks are identified and strategies are developed to address them.”</p>
<p>Iterative Development: Illustrate the iterative development process. With each iteration, the project moves one loop further along the spiral, signifying progress and increasing levels of detail.</p>
<p>Client Feedback and Prototyping: Notice the incorporation of client feedback and prototyping in the image. This reflects the model’s emphasis on involving the client at various stages and using prototypes for requirement gathering and refinement.”</p>
<p>Scaling of the Spiral: The spiral typically expands to represent the increasing cost, time, and effort at each phase of the project, highlighting the model’s adaptability to project size and complexity.</p>
<p>Final Product Delivery: The end of the spiral indicates the final product delivery. This shows the culmination of all the iterative phases and the comprehensive risk analysis leading to a well-developed product.</p>
<style type="text/css">
span.MJX_Assistive_MathML {
position:absolute!important;
clip: rect(1px, 1px, 1px, 1px);
padding: 1px 0 0 0!important;
border: 0!important;
height: 1px!important;
width: 1px!important;
overflow: hidden!important;
display:block!important;
}</style></aside>
</section>
<section id="spiral-model-key-facts" class="slide level2">
<h2>Spiral Model: Key Facts</h2>
<ul>
Expand All @@ -537,7 +577,25 @@ <h2>RAD Model: Overview</h2>
<section id="rad-model-visualized" class="slide level2">
<h2>RAD Model: Visualized</h2>

<img data-src="https://upload.wikimedia.org/wikipedia/commons/5/53/Rapid_application_software_development.svg" class="r-stretch quarto-figure-center"><p class="caption">Beao, Public domain, via Wikimedia Commons</p></section>
<img data-src="https://upload.wikimedia.org/wikipedia/commons/5/53/Rapid_application_software_development.svg" class="r-stretch quarto-figure-center"><p class="caption">Beao, Public domain, via Wikimedia Commons</p><aside class="notes">
<p>This image provides a visual overview of the Rapid Application Development (RAD) model, a type of Agile software development methodology. TNotice the emphasis on speed and flexibility. RAD is characterized by rapid prototyping, iterative development, and the minimization of planning to accommodate changes quickly.</p>
<p>Phases of RAD: The RAD process is typically divided into four phases: Requirements Planning, User Design, Construction, and Cutover. These are depicted in a circular or iterative flow to highlight the ongoing nature of the process.</p>
<p>User-Centered Design: The image should feature close interaction between users and developers, illustrating the user-centered design approach of RAD. This interaction is crucial for frequent feedback and iterative testing.</p>
<p>Prototyping: Prototypes are a key component of RAD. Observe how the image shows various stages of prototyping, indicating that development is based on continually refined prototypes instead of a single final product.</p>
<p>Collaborative Teams: The image might depict teams working together in dynamic, collaborative environments. This represents the team-oriented and flexible nature of RAD teams.</p>
<p>Adaptability and Iteration: RAD is known for its adaptability to changes. The image might show an iterative cycle of development, with feedback loops and adjustments being made continuously.</p>
<style type="text/css">
span.MJX_Assistive_MathML {
position:absolute!important;
clip: rect(1px, 1px, 1px, 1px);
padding: 1px 0 0 0!important;
border: 0!important;
height: 1px!important;
width: 1px!important;
overflow: hidden!important;
display:block!important;
}</style></aside>
</section>
<section id="rad-model-key-facts" class="slide level2">
<h2>RAD Model: Key Facts</h2>
<ul>
Expand Down Expand Up @@ -599,7 +657,27 @@ <h2>Extreme Programming (XP): Overview</h2>
<section id="extreme-programming-xp-visualized" class="slide level2">
<h2>Extreme Programming (XP): Visualized</h2>

<img data-src="https://upload.wikimedia.org/wikipedia/commons/8/84/Extreme_Programming.svg" class="r-stretch quarto-figure-center"><p class="caption">DonWells, <a href="https://creativecommons.org/licenses/by-sa/3.0">CC BY-SA 3.0</a>, via Wikimedia Commons)</p></section>
<img data-src="https://upload.wikimedia.org/wikipedia/commons/8/84/Extreme_Programming.svg" class="r-stretch quarto-figure-center"><p class="caption">DonWells, <a href="https://creativecommons.org/licenses/by-sa/3.0">CC BY-SA 3.0</a>, via Wikimedia Commons)</p><aside class="notes">
<p>This visual representation encapsulates the dynamic, iterative, and collaborative essence of Extreme Programming. It shows how various practices and principles interconnect to create an efficient, responsive, and high-quality software development process.</p>
<p>Core Principles Highlighted: Notice how the image emphasizes the five core principles of XP: Communication, Simplicity, Feedback, Courage, and Respect. These principles are represented as foundational blocks supporting the entire process.</p>
<p>Collaborative Environment: In the center, there’s a group of developers working closely together. This depicts the collaborative and team-oriented nature of XP. Emphasize the importance of continuous communication among team members.</p>
<p>Customer Involvement: Look at the figure representing the customer, integrated into the team. This highlights the XP practice of having the customer on-site, providing constant feedback and requirements clarification.</p>
<p>Development Cycle: The circular flow around the team illustrates the iterative development cycle of XP. Point out the stages like ‘Planning,’ ‘Design,’ ‘Coding,’ and ‘Testing,’ showing the rapid and continuous loops of development.”</p>
<p>Practices like Pair Programming: Observe the pairs of developers at one workstation. This is pair programming, a key practice in XP, where two developers write code together, improving code quality and knowledge sharing.</p>
<p>Test-Driven Development: The image also includes symbols indicating test-driven development (TDD). Highlight how developers write automated tests for new features before writing the actual code.</p>
<p>Continuous Integration and Refactoring: Notice the continuous integration server and the refactoring steps. Explain how code is integrated and tested frequently, and the design is continuously improved for simplicity.</p>
<style type="text/css">
span.MJX_Assistive_MathML {
position:absolute!important;
clip: rect(1px, 1px, 1px, 1px);
padding: 1px 0 0 0!important;
border: 0!important;
height: 1px!important;
width: 1px!important;
overflow: hidden!important;
display:block!important;
}</style></aside>
</section>
<section id="extreme-programming-xp-key-practices" class="slide level2">
<h2>Extreme Programming (XP): Key Practices</h2>
<ul>
Expand Down Expand Up @@ -640,10 +718,31 @@ <h2>Scrum: Overview</h2>
<li><strong>Empirical Process Control</strong>: Based on observation and adaptation.</li>
</ul>
</section>
<section id="scrum-visualized-simplified" class="slide level2">
<h2>Scrum: Visualized (simplified)</h2>

<img data-src="https://upload.wikimedia.org/wikipedia/commons/5/58/Scrum_process.svg" class="r-stretch quarto-figure-center"><p class="caption">Lakeworks, <a href="%3Chttps://creativecommons.org/licenses/by-sa/4.0">CC BY-SA 4.0</a>, via Wikimedia Commons</p></section>
<section id="scrum-visualized" class="slide level2">
<h2>Scrum: Visualized</h2>

<img data-src="https://upload.wikimedia.org/wikipedia/commons/5/58/Scrum_process.svg" class="r-stretch quarto-figure-center"><p class="caption">Lakeworks, <a href="%3Chttps://creativecommons.org/licenses/by-sa/4.0">CC BY-SA 4.0</a>, via Wikimedia Commons</p></section>
<img data-src="https://upload.wikimedia.org/wikipedia/commons/d/df/Scrum_Framework.png" class="r-stretch quarto-figure-center"><p class="caption">Dr ian mitchell, CC0, via Wikimedia Commons</p><aside class="notes">
<p>The image prominently features the Scrum framework, which is characterized by fixed-length iterations known as Sprints, typically lasting two to four weeks. This visual encapsulates the Scrum process, highlighting its iterative, team-centric approach that aims to deliver value quickly and respond effectively to change.</p>
<p>Scrum Roles: You’ll notice three key roles represented: the Product Owner, Scrum Master, and the Development Team. The Product Owner is responsible for the product backlog and prioritizing work; the Scrum Master facilitates the process and addresses impediments; and the Development Team focuses on delivering the product increment.</p>
<p>Sprint Cycle: The cycle of a Sprint is illustrated here. It begins with Sprint Planning, where the team selects items from the product backlog to work on. The cycle continues with Daily Stand-ups, Sprint Review, and concludes with a Sprint Retrospective.</p>
<p>Daily Stand-up Meetings: Notice the depiction of a daily stand-up meeting, emphasizing quick, daily check-ins where the team discusses progress and challenges.</p>
<p>Product and Sprint Backlogs: The image shows both a product backlog and a sprint backlog. The product backlog is a prioritized list of features, while the sprint backlog contains items selected for the current Sprint.</p>
<style type="text/css">
span.MJX_Assistive_MathML {
position:absolute!important;
clip: rect(1px, 1px, 1px, 1px);
padding: 1px 0 0 0!important;
border: 0!important;
height: 1px!important;
width: 1px!important;
overflow: hidden!important;
display:block!important;
}</style></aside>
</section>
<section id="scrum-key-roles-and-artifacts" class="slide level2">
<h2>Scrum: Key Roles and Artifacts</h2>
<h3 id="roles-and-artifacts">Roles and Artifacts</h3>
Expand Down Expand Up @@ -688,7 +787,24 @@ <h2>Kanban: Overview</h2>
<section id="kanban-visualized" class="slide level2">
<h2>Kanban: Visualized</h2>

<img data-src="https://upload.wikimedia.org/wikipedia/commons/b/b4/Abstract_Kanban_Board.svg" class="r-stretch quarto-figure-center"><p class="caption">Jennifer Falco, <a href="https://creativecommons.org/licenses/by/4.0">CC BY 4.0</a>, via Wikimedia Commons</p></section>
<img data-src="https://upload.wikimedia.org/wikipedia/commons/b/b4/Abstract_Kanban_Board.svg" class="r-stretch quarto-figure-center"><p class="caption">Jennifer Falco, <a href="https://creativecommons.org/licenses/by/4.0">CC BY 4.0</a>, via Wikimedia Commons</p><aside class="notes">
<p>This image illustrates the Kanban method, a visual approach to managing work as it moves through a process in Agile project management.</p>
<p>Kanban Board Overview: At the forefront of the image is a Kanban board divided into columns such as ‘To Do,’ ‘In Progress,’ and ‘Done.’ This board is a key tool in Kanban for visualizing work, limiting work-in-progress, and maximizing flow.</p>
<p>Visual Signals: Notice the cards or sticky notes in each column. Each card represents a task. This visual representation helps teams understand their workload and progress at a glance.</p>
<p>Limiting Work in Progress: Point out the limits above each column. These are WIP (Work in Progress) limits that prevent overloading the team and help identify bottlenecks in the process.</p>
<p>Continuous Flow: Highlight the continuous flow of tasks from left to right. Kanban focuses on the smooth flow of work, emphasizing the completion of tasks before new ones are started.</p>
<style type="text/css">
span.MJX_Assistive_MathML {
position:absolute!important;
clip: rect(1px, 1px, 1px, 1px);
padding: 1px 0 0 0!important;
border: 0!important;
height: 1px!important;
width: 1px!important;
overflow: hidden!important;
display:block!important;
}</style></aside>
</section>
<section id="kanban-practices-and-metrics" class="slide level2">
<h2>Kanban: Practices and Metrics</h2>
<ul>
Expand Down Expand Up @@ -808,7 +924,26 @@ <h2>DevOps: Overview</h2>
<section id="devops-visualized" class="slide level2">
<h2>DevOps: Visualized</h2>

<img data-src="https://upload.wikimedia.org/wikipedia/commons/0/05/Devops-toolchain.svg" class="r-stretch quarto-figure-center"><p class="caption">Kharnagy, <a href="https://creativecommons.org/licenses/by-sa/4.0">CC BY-SA 4.0</a>, via Wikimedia Commons</p></section>
<img data-src="https://upload.wikimedia.org/wikipedia/commons/0/05/Devops-toolchain.svg" class="r-stretch quarto-figure-center"><p class="caption">Kharnagy, <a href="https://creativecommons.org/licenses/by-sa/4.0">CC BY-SA 4.0</a>, via Wikimedia Commons</p><aside class="notes">
<p>This visual captures the essence of the DevOps model – its focus on breaking down silos between teams, automating processes, and fostering a culture of continuous improvement to deliver high-quality software rapidly and reliably. This image depicts the DevOps model, a methodology that emphasizes collaboration, communication, and integration between software developers and IT operations.</p>
<p>Infinity Loop Symbolism: The infinity loop, representing the unending collaboration and iterative process between development (Dev) and operations (Ops).</p>
<p>Two Halves of the Loop: The loop is divided into two halves. The left half signifies the development aspects, including planning, coding, and building. The right half represents the operations aspects, like releasing, operating, and monitoring.”</p>
<p>Continuous Integration and Deployment: The crossover of the loop illustrates continuous integration and deployment, showing how code is continuously integrated, tested, and deployed in a seamless manner.”</p>
<p>Feedback Mechanism: On the operations side of the loop, there’s an emphasis on monitoring and feedback. This feedback flows directly into the development side, symbolizing the responsive nature of DevOps to operational data.”</p>
<p>Collaboration and Communication: The intertwining of the loop segments underlines the core DevOps principle of ongoing collaboration and communication between developers and IT operations.”</p>
<p>Rapid Iteration and Improvement: The image should convey a sense of rapid iteration and continuous improvement, with the loop cycling quickly to represent the fast-paced nature of DevOps methodologies.”</p>
<style type="text/css">
span.MJX_Assistive_MathML {
position:absolute!important;
clip: rect(1px, 1px, 1px, 1px);
padding: 1px 0 0 0!important;
border: 0!important;
height: 1px!important;
width: 1px!important;
overflow: hidden!important;
display:block!important;
}</style></aside>
</section>
<section id="devops-key-practices-and-tools" class="slide level2">
<h2>DevOps: Key Practices and Tools</h2>
<h3 id="practices-and-tools">Practices and Tools</h3>
Expand Down

0 comments on commit 174bdc8

Please sign in to comment.