diff --git a/24ss/slides/lecture_5.html b/24ss/slides/lecture_5.html index 82555d3..26b4b0e 100644 --- a/24ss/slides/lecture_5.html +++ b/24ss/slides/lecture_5.html @@ -10,7 +10,7 @@ - Thursday, January 25, 2024 + lecture_5 @@ -325,11 +325,10 @@
-
-

Thursday, January 25, 2024

-
-
+
+
+

Thursday, January 25, 2024

@@ -339,6 +338,7 @@

Front Matter

  • Online @ 12:30 p.m. ~ 30 minutes.
+
  • Feedback is always welcomed and appreciated.
  • @@ -367,6 +367,23 @@

    Methodology Evolution

    Not all methodologies adhere strictly to the linear sequence described by the Software Development Life Cycle.

    Methodologies like Agile and DevOps often take a more dynamic approach that iterating or cycling through these stages in a more integrated and flexible manner, adapting to the specific needs of the project.

    +
    +

    Disclaimer

    +


    +
    +
    +
    +
    + +
    +

    Caution

    +
    +
    +

    Please note that the information provided contains some subjective elements, as I do not possess practical experience in the application of all the methods discussed. In practice, these methods are often adjusted or modified, which can lead to a difference between the theoretical intent and practical application. It’s important to consider this when interpreting and applying the information.

    +
    +
    +
    +

    Traditional Models

    @@ -380,6 +397,11 @@

    Waterfall Model: Overview

  • Progress Flows Downwards: Like a waterfall, each phase flows into the next without iteration.
  • +
    +

    Waterfall Model: Visualized

    +


    + +

    BeaoFirst version: Paul Smith, CC BY 3.0, via Wikimedia Commons

    Waterfall Model: Key Facts

      @@ -403,6 +425,10 @@

      Iterative Model: Overview

    • Early Prototypes: Quick initial versions to understand requirements and solutions.
    +
    +

    Iterative Model: Visualized

    + +

    Krupadeluxe, CC BY-SA 4.0, via Wikimedia Commons

    Iterative Model: Key Facts

      @@ -427,6 +453,10 @@

      Incremental Model: Overview

    • Multiple Development Cycles: Each increment represents a slice of the full functionality.
    +
    +

    Incremental Model: Visualized

    + +

    RahulT, CC BY-SA 3.0, via Wikimedia Commons

    Incremental Model: Key Facts

      @@ -450,6 +480,10 @@

      V-Model: Overview

    • Emphasis on Testing: Integration of development and testing throughout the process.
    +
    +

    V-Model: Visualized

    + +

    Herman Bruyninckx, CC BY-SA 3.0, via Wikimedia Commons

    V-Model: Key Facts

      @@ -473,6 +507,10 @@

      Spiral Model: Overview

    • Iterative Approach: Cycles through these phases repeatedly with increasing detail.
    +
    +

    Spiral Model: Visualized

    + +

    Conny derivative work: Spiral_model_(Boehm,_1988).png: Marctroyderivative work: Conan, Public domain, via Wikimedia Commons

    Spiral Model: Key Facts

      @@ -496,6 +534,10 @@

      RAD Model: Overview

    • Rapid Development: Quick iterations with a focus on functional software.
    +
    +

    RAD Model: Visualized

    + +

    Beao, Public domain, via Wikimedia Commons

    RAD Model: Key Facts

      @@ -554,6 +596,10 @@

      Extreme Programming (XP): Overview

    • Continuous Feedback: Integral for project direction and refinement.
    +
    +

    Extreme Programming (XP): Visualized

    + +

    DonWells, CC BY-SA 3.0, via Wikimedia Commons)

    Extreme Programming (XP): Key Practices

      @@ -594,6 +640,10 @@

      Scrum: Overview

    • Empirical Process Control: Based on observation and adaptation.
    +
    +

    Scrum: Visualized

    + +

    Lakeworks, CC BY-SA 4.0, via Wikimedia Commons

    Scrum: Key Roles and Artifacts

    Roles and Artifacts

    @@ -635,6 +685,10 @@

    Kanban: Overview

  • Continuous Workflow Management: Regularly assessing and refining the workflow.
  • +
    +

    Kanban: Visualized

    + +

    Jennifer Falco, CC BY 4.0, via Wikimedia Commons

    Kanban: Practices and Metrics

      @@ -751,6 +805,10 @@

      DevOps: Overview

    • Automation and Integration: Automating repetitive tasks and integrating processes for efficiency.
    +
    +

    DevOps: Visualized

    + +

    Kharnagy, CC BY-SA 4.0, via Wikimedia Commons

    DevOps: Key Practices and Tools

    Practices and Tools

    @@ -783,10 +841,63 @@

    DevOps: Best Practices

  • Iterative Approach: Gradually implementing changes and improvements.
  • Focus on Automation: Automating as much as possible to reduce manual work and errors.
  • +
    +
    +
    +

    Summary of SDLC Models, Agile Methods, and DevOps”

    + +
    +
    +

    Traditional SDLC Models

    +
      +
    • Waterfall Model: Sequential phases; each phase begins only after the previous one is completed.
    • +
    • V-Model: Extension of the waterfall model; emphasizes verification and validation.
    • +
    • Iterative Model: Develops a system through repeated cycles and smaller portions.
    • +
    • Incremental Model: Divides the product into builds, where parts are developed and added in increments.
    • +
    • RAD Model: Rapid Application Development; focuses on quick development and iteration.
    • +
    • Spiral Model: Combines iterative development with the systematic aspects of the waterfall model.
    • +
    +
    +
    +

    Agile Methods

    +
      +
    • Extreme Programming (XP): Emphasizes customer satisfaction and engineering practices.
    • +
    • Scrum: Framework for managing and completing complex projects.
    • +
    • Kanban: Visual approach to managing tasks and workflows.
    • +
    +
    +
    +

    DevOps

    +
      +
    • Integrates development and operations teams to improve collaboration and productivity.
    • +
    • Emphasizes automation, continuous integration, and quick feedback cycles.
    • +
    -
    -

    Next Class

    -

    In the next class we will delve deeper into each approach, discussing its specific methodologies, best practices, and appropriate application contexts.

    +
    +

    Identifying the Best Approach

    +
    +

    The most effective development approach is contingent on a blend of product requirements, team dynamics, and organizational context.

    +
    +
      +
    • Align with Product Needs: Different products may require different development methodologies. Consider the complexity, scope, and market dynamics.

    • +
    • Consider Organizational Dynamics: The choice of methodology should complement the organization’s culture, structure, and workflow.

    • +
    • Team Structure and Skills: The skills, experience, and preferences of the development team are crucial in selecting the most effective approach.

    • +
    • Resource Availability: Assess resource availability, including time, budget, and tools, to support the chosen methodology.

    • +
    • Flexibility and Scalability: Consider how easily a methodology can adapt to changes and scale as the project grows.

    • +
    • Client Involvement: The level of client involvement and feedback can influence the choice between more rigid or flexible methodologies.

    • +
    +
    +
    +
    +

    Coming Up

    + +
    +
    +

    Next Week

    +
      +
    • Tuesday, Quiz 1, online but I will be in class for any question.
    • +
    • Thursday, we will discuss Requirements Engineering.
    • +