Topic 8 Real World Programming

today we started the topic 8 notes, so far we have been learning the programming side to the software development, but topic 8 is all about the other stages.

The stages of the software development cycle are as follows:

Analysis:-the main purpose of this stage is to be absolutely clear about what the program is supposed to do. We must turn a rough idea of what we want the program to do into a detailed description of how it will behave, by asking questions on what the I/O are, and what type of computer it will run on etc. Through this we create the software specification, agreed on by both the client and the developer. This is a very important document and it is a basis of a contract between the client and the developer. It sets out exactly what the client is paying the developer to produce. It can be used at the end of development to resolve any disputes.

Design:- a lot of people just jump into implementation when giving a task. But you MUST not do this, you need to design the program your going to create. Designing the program before implementaion will make is easier. Create Structured Diagrams, or Pseudocode to make it easier to see what steps are needed to make the program work. In real-world programming a test plan is created before implementation begins. The test plan is based on the software specification.

Implementation:- This is where you change the program design into a programming language. This is done by a team of programmers, a team approach is possible if the code used modular program design. Modular programming allows you to re-use section of pre-tested code.

Advantages of modular programming are:

  • it allows programmers to work indepentandly on different sections of the software.
  • Any modules developed with me well documented for inclusion into a module library for future use.
  • and Sections of the overall software can be tested independantly as their developed, this making tracking and destroying bugs easier.

Testing:- Testing is a vital part of any development process.

their are two types of testing. Systematic and Comprehensive.

Systematic Testing: this means that the testing is planned and structured, rather than just random tests. A test plan is developed during the design stage.

Comprehensive Testing: this means that everything is tested. Every part of every module, and aswell as the whole program. Comprehensive testing inclused testing under Normal, Extreme and Exceptional circumstances. The criteria for passing the test stage will have been laid down in detail in the software specification

Testing Normal Conditions: Making sure the program does what i should do when used “normally”. E.g. a program where you enter a number between 1 and 10. Entering numbers such as 4,5,6 are testing it normally.

Testing Extreme Conditions: Making sure the program can handle situations that are at the edge of what would be considered normal. E.g. the same example above, numbers such as 1 and 10 would be testing the extreme conditions.

Testing Exceptional conditions: making sure it can handle unexpected situations of inputs that its not designed to cope with. E.g. The same example as above, numbers such as 15, -98, 11 are all testing the exceptional conditions.

Documentation:- When you buy a peice of software, their are usually two peices of documentation inside. The user guide, and the technical guide.

The user guide tells you how to use the product, and might also include a tutorial, taking you through the uses of it step by step.

the Technical guide gives you technical information of the product. E.g. The software requirements how much RAM the software needs to run, the OS that it works on and how fast the processor needs to be. It should also contain instructions on how to install the software.

Evaluation:- Evaluation involves reviewing the software under 8 headings. These headings are:

1. Is the program fit for purpose?
2. Is the user interface good to use?
3. Is the program code readable
4. Is the program robust?
5. Is the program reliable?
6. Is the program portable?
7. Is the program efficient?
8. Is the program maintainable?

The definition of all the words in Itallic are all in the software development glossary that you were given out. If you do not have this glossary you can find it here.

THIS IS VERY IMPORTANT FOR THE COURSEWORK!

One thought on “Topic 8 Real World Programming”

  1. I liked the link to the SD glossary 🙂
    Why did it feel like I was reading the notes, I had just finished reading out to the class?
    Try and put your own slant on the notes, use words and terms with which you are happy. It’s your notes you are writing, not mine.
    Very good post though 🙂

Comments are closed.