CS26 : Systems development



https://docs.google.com/presentation/d/1iNZEcJ-Nxs-PY4f_IZ_RlfLXdU2YaMmFPpnNaM4Z3UM/preview
Covered in all specifications. This unit is designed as a reference for software development and as such does not have many tasks. However, don't panic - you'll still use all the skills herein defined in the future units ...

We are learning ...
  • About the processes which software developers use to, well, develop software.
So that we can ...
  • Engage in analysis of a problem domain
  • Engage in skilled software design
    - planning data structures
    - modularity (including clearly documented interfaces)
    - designing algorithms
    - user interface (GUI and CLI)
    - planning validation (input sanitisation), verification, authentication routines
  • Engage in skilled software implementation
    - comments / self documentation
    - indentation / structure
  • Engage in skilled testing and evaluation
    - testing for errors; syntactical and semantic
    - use of suitable test data; normal, boundary, erroneous
    - implement suitable testing strategies; black box, white box
    - testing during implementation
    - requirement for refining code during development as a result of testing
    - evaluation against end user requirements

CGP The Revision GuidePage 57, 58
CGP Exam Practice WorkbookPage 66, 67

# Get Ready.png

Modern software development (and life in general) is not linear - it is iterative, forever reflective, improving.


It's a reference guide, that's all!
You could print out the diagram for your folders / notebooks!

Activity 1 Analysis  I   O   A   E 

In the analysis phase of software development, we look carefully at the problem we have been given and identify resources we can use to tackle it. Breaking down a problem into smaller parts often help to make the initial problem easier to solve. Remember that we are writing a computer program so we need to think about opportunities for robustness and real world utility.

https://drive.google.com/file/d/1u2y9IvEUtmmerNJk4vNWJ_WCrfXzOXnQ/preview
Click to engage

Activity 2 Design   I   O   A   E 

During the design phase, we think carefully about the variables and data structures that we might need to use to solve each part of the problem. If our solution needs a user interface, we design this here as well. Again, we must consider opportunities for robustness and real world utility. We are quite likely to use prototyping at this stage as well. Depending on the programming language that you are using, you will either design a Command Line Interface (CLI) or a Graphical User Interface (GUI) - your teacher will show you how to do this if necessary.

https://drive.google.com/file/d/1i9c4nR0JU4UQbJKu6G0-AYP1lOSytmbw/preview
 Click to engage

Activity 3 Implementation   I   O   A   E 

This is a chance for us to show off our programming skills! We must make sure that we test extensively during our development to make sure that things are working correctly before moving on. Our code needs to be easy to follow and debug and we need to keep an eye on the original problem - it's very easy to get carried away!

https://drive.google.com/file/d/1YbizAm7Yt_S1ZOiuE_aM-LszLc5K6UDp/preview
Click to engage

Activity 4 Testing and evaluation  I   O   A   E 

Finally, during each iteration, we need to ensure that we record all the tests that we have performed, whilst making sure that we are testing all normal, boundary and erroneous data. Remember that it's vital we are reflective - is the 'thing' we've made suitable to solve the initial problem we have been given?

https://drive.google.com/file/d/1MTzTx-DxyP7fDjDl2emvT8br6MjfSPnB/preview
Click to engage


If you are lucky, your teacher will give you them!

Click to download revision cards
https://docs.google.com/document/d/1zJFBN7bXh3FG_M4j9FbZQoa2z3lU5SL3yXRyMA3FvR8/export?format=pdf
Remember to print them single sided

https://goo.gl/forms/hmPcD7vhFljO4AsN2
Try to get 5/5!