Software Development Processes in Agile Environments

software development process n.w
1 / 20
Embed
Share

This content provides an overview of various software development processes commonly used in the field of software engineering, with a focus on the Agile/Scrum approach. It discusses the Waterfall model and its stages, emphasizing the importance of requirements gathering, design, coding, testing, and maintenance. The content also highlights the collaborative and organizational aspects of development processes, shedding light on the iterative nature of modern software development practices.

  • Software Development
  • Agile Processes
  • Waterfall Model
  • Requirements Gathering
  • Collaboration

Uploaded on | 0 Views


Download Presentation

Please find below an Image/Link to download the presentation.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.

You are allowed to download the files provided on this website for personal or commercial use, subject to the condition that they are used lawfully. All files are the property of their respective owners.

The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.

E N D

Presentation Transcript


  1. Software Development Process CSCE 315 Programming Studio, Fall 2017 Tanzir Ahmed

  2. Variety of Software Development Processes Traditionally covered in Software Engineering This is just a very brief overview Many are not clear cut ideas Often modified to incorporate ideas from other models; seldom used in pure form Goal here: to familiarize you with some of the basic terminology/ideas We will actually follow one approach: Agile/Scrum in project 2

  3. Development Processes More about the process than the actual development Teamwork/ organization/ management/ collaboration focus Opinion: Lots of words describing basic ideas/processes Attempts to give precise definitions, descriptions to imprecise processes Lots of religious arguments about the best way to approach these processes.

  4. Waterfall Model of Development The traditional / baseline" software engineering approach Series of stages, each a process that converts one product to another Development flows from the top (early processes) through to the bottom

  5. Waterfall Model Requirement Gathering Customer s Needs Requirement Specification Analysis Models, Business Rules Design Software Architecture Coding Testing Software Operations Defect-Free Ongoing Maintenance

  6. Waterfall Model (another view) Requirement Engineering Customer s Needs Requirement Specification Design Design Specification Programming Executable Modules Integration Integrated Software Delivery Maintenance Delivered Product New Requirements

  7. Waterfall Model Lots of Variation Key idea: flow downhill from one end to other Gets more complex Feedback from later stages to earlier ones Verification and Validation testing in each stage Or, a separate testing stage after integration Can extend to incorporate iterative approaches

  8. Waterfall Model Good Points Provides clear structured process, especially useful on large projects Clear requirements, design at beginning can make things much easier and better later on Tend to have good documentation throughout Bad Points Can be tough to know requirements ahead of time Difficult to evaluate how later parts of system will really work in practice Requires more discipline by programmers to implement

  9. Waterfall This is the basis against which other methods are compared. The basic ideas are understood as needing to be addressed in other situations, also The flow is somewhat natural from development: you need requirements to develop for, you need software to maintain It is the one method to be familiar with, if you are familiar with only one method

  10. V-model A version of Waterfall, tying the Validation at each level to the earlier stages User Acceptance Testing System Testing Integration Testing Unit Testing Requirements Analysis System Design Architecture Design Module Design Coding

  11. Iterative Software Development Rather than produce a single product all at once , provide incremental improvements Deliver pieces of the product at various times Time is planned to iterate on the design and implementation of the system Includes user analysis, feedback to improve

  12. Iterative Approach Plan and Design Collect Requirements Implement Test and Evaluate Initial Idea Deliverable

  13. Iterative Methods Prototyping Spiral Model Cleanroom Development Rational Unified Process

  14. Prototyping Deliver early prototypes of the software Not fully functional, or with poor functionality Prototypes should allow one to get user feedback Allows revision of requirements, design Possible problems: Can hide difficulties underlying the prototype Can set expectations too high Provides early design anchoring (less flexible) Attachment by user/developer to prototype, not system

  15. Spiral Model Combines iterative and prototype (and waterfall) approaches Starting from center, (basic requirements), a prototype is created in first iteration Each successive iterative cycle produces a newer, better prototype (spiraling out) When good prototype is found, freeze system Different cycles can use different techniques Adjust the technique to the risk level in that part of the spiral

  16. Cleanroom Development Devised to put control onto Iterative Methods Every iteration gets tested on a very large test data set Provides hard statistical data on how reliable the method is Measure whether iteration has introduced or reduced defects Introducing defects indicates problem go back to previous stage and start over

  17. Incremental Methods Wide variety and variation in methods Includes Agile methods sort of taking over the incremental framework Includes Test Driven Development

  18. Agile Software Methods Newer trend in software development A favorite in the industry Lightweight in contrast to existing heavyweight methods of software development Heavyweight Highly regimented methods, typified by the waterfall model Agile designed to respond/change quickly, but involves much less long-term planning Many methods fall under the Agile heading Extreme programming Scrum Plus, it overlaps with some ideas of iterative development

  19. Agile Methods Tend to involve lots of collaboration Seem to work best with smaller, co-located teams Good for projects where requirements tend to change Will be the focus of the next lecture

  20. Other Processes Lots of other variations in development processes, often with different names: Wikipedia list: Waterfall, Prototyping, Incremental, Iterative, V- Model, Dual Vee Model, Spiral, IID, Agile, Lean, DevOps Cleanroom, TSP, PSP, DSDM, MSF, Scrum, Kanban, UP, XP, TDD , ATDD, BDD, FDD, DDD, MDD Many of these aren t all that different from each other

More Related Content