1 of 20

Software Development�Life Cycle

Mrs. Whitlock

Chattahoochee High School

2 of 20

What is System Development?

System Development is the process of defining, designing, testing and implementing a software application

3 of 20

Computational Thinking

  • Developing software requires computational thinking.
  • Computational thinking is defined as the thought processes involved in formulating problems and their solutions so that the solutions are represented in a form that can be effectively carried out by an information process agent.
  • CT involves: Connecting computing, abstracting, analyzing problems & artifacts, communicating and collaborating

4 of 20

Phases of the Software Development Life Cycle (SDLC)

  • Identify & define a problem or need
  • Requirements analysis
  • Design
  • Code
  • Test
  • Deployment & Configuration
  • Maintenance

5 of 20

Identify Problem/Need

  • Get an idea!!!
  • Identify a problem that you think you can solve or identify a need because something is missing.
  • Gather information from the intended audience/user about their specific needs
  • Brainstorm big solutions…could this need be filled with an app, a website, a game, etc.?
  • Analyze problems & artifacts to define the problem to be solved (market research)

6 of 20

Requirements Analysis

  • Planning
  • Who are your stakeholders? Financial backers, users, developers, owners, etc.
  • Create a specific feature list
  • Identification of data in / data out

7 of 20

Design

  • START WITH THE DATA: Know exactly what data is coming in and what data is going out
  • Hardware & Software requirements
  • Development language(s)
  • User interface (looks & navigation)
  • Pseudocode/flowchart the development process

8 of 20

Code

  • Main focus is on the developer(s).
  • Actual coding or programming begins
  • Project is often divided into units
  • Usually the longest phase of the life cycle
  • Bottom up vs top down coding

9 of 20

Testing

  • Debugging: Fixing problems in code while you are coding.
  • Unit testing (by programmers): Individual components are tested to validate that the software performs as designed (all devices, platforms & scenarios)
  • QA: Group that tries to break your software to find flaws

10 of 20

Deployment/Configuration

The product is delivered to team stakeholders and ultimately delivered to the customer or user when team has signed off on release.

11 of 20

Maintenance

  • Fixing any problems or issues that users find during use
  • Commonly referred to as version releases, updates, etc.
  • Integer means major release and decimal place is minor bug fixes or incremental feature release
  • Examples: Windows 8.1, Windows 10.0

Mrs. Whitlock Chattahoochee High School

12 of 20

Waterfall Development Model

  • Single pass – you go through sequential steps one time only. No going back to previous steps
  • Works well for very small projects
  • Only build features that are in design document. Period.
  • Only one deployment. Your customers could be waiting a long time for a product.

13 of 20

Waterfall Development Model

14 of 20

Waterfall Development Model

Problems with the Waterfall model?

15 of 20

Iterative and Incremental �Development Model

  • Cyclical approach
  • Starts with planning and ends with deployment
  • Iterations of design, programming and testing take place in between planning and deployment
  • Only one deployment. Your customers will still be waiting a long time for a finished product.

16 of 20

Iterative and Incremental

Development Model

Image Source: https://study.com/academy/lesson/systems-development-life-cycles-software-development-process.html

17 of 20

Agile Process Model

  • Software is developed in incremental cycles
  • Each release is thoroughly tested
  • Prototypes released at each increment
  • Customers, developers and testers interact
  • User feedback is a source of information to improve the next cycle.
  • Initial phases may be referred to as beta testing.

18 of 20

Agile Model

19 of 20

Agile results in many iterations of this cycle with product releases at the end of each iteration. Feedback is used to drive the requirements and planning of the next iteration.

20 of 20

Agile Process Model – Another look…