GCSE OCR 3 A451 Computing Professional standards 2-1-1 Fundamentals of computer systems 3
Objectives Understand the need for standards in the development and maintenance of computer systems Give examples of standards in computer systems Understand how standards help to ensure that computer systems are free of errors, easy to maintain and easy to use
Who needs standards? In the UK, we drive on the left Some standards come about through constant usage In the UK, we drive on the left In many other countries, people drive on the right Does this ever cause a problem?
De facto standards De facto standards are ones which come about through common usage Americans write dates in the format MM-DD-YYYY How do we write them? Could this ever cause problems in software usage? Think of some other de facto standards in everyday life and in the context of computing. Are they the same all over the world?
Software development Many computer systems involve tens of thousands or even millions of lines of code Teams of programmers work on the project, each developing a small part of the system People leave, teams change, and new programmers must take over in the middle of a project Good organisation, “rules” and standards are essential!
Stages in creating a computer system Analysis Design Programming Testing Maintenance
Software development standards How to document what the system needs to do How to break the system up into small parts that can be developed by teams of programmers How to allocate staff to teams How to keep track of changes How to code programs How to test How to document the whole system
Standards in Analysis and Design Companies involved in the creation of complex computer systems don’t start from scratch in documenting their design There will be professional standards defining the structure of the document, ensuring that all essential areas are covered You probably know yourself that it is much easier to write a lengthy document explaining your ideas, when you are given a structure to work to
Worksheet 4 Coding standards Then look at Worksheet 5 Suggest how this program could be made easier to understand and amend Then look at Worksheet 5
Programming standards Even a small team of programmers working on a class project would find it difficult to come up with a maintainable system if they had no agreed standards
Developing standards What aspects of the programming and testing need to be agreed on? Suggest some standards that a team of prgrammers might agree before they start
Standards for coding programs Comments in the code Variable names and naming conventions Passing information from one module to another Formatting the code Version names and numbers Suggest some “rules” for certain comments that MUST be included in every module Suggest some “rules” for variable names
Example of standards for program comments Every source code file should begin with a comment block describing the content and its purpose The author and any revision authors should be identified The date of original code and all revisions should be given Comment blocks should be delineated as follows: /********************************/ /Comment Lines….
Benefits of software standards? Efficiency: any member of a software team can work on any part of the software code without having to adapt to a different programming style Fewer errors and easier debugging: standards result in more accurate coding Easy to maintain: any programmer will find it relatively easy to look through the code, understand its structure and find what they are looking for when a change needs to be made
What about the user? Users have certain expectations when they use hardware and software If standards are not followed throughout a piece of software, how does this affect the user? When a user buys a new computer system or a new piece of software, what documentation would they expect to find?
Recap Professional standards cover every phase of software development – analysis, design, development, implementation and maintenance Adherence to standards helps make the development process faster, more efficient, and less error-prone Standards make the end product easier to use Can you give examples to explain each of these points?