Which development approach should I use?
6.11.3 Bottom-up development
The bottom-up approach is the opposite of the top-down approach in that you begin by coding the lowest levels first before bringing these components together to produce the fully working system. For example, in the case of Figure 6.7, you might begin by working on the Long-Term Analysis component of the system first. This may involve the develop- ment and implementation of a complex algorithm so you might want to ensure that you can get this working sooner rather than later in your project. You will probably under- stand that the higher level components for example, the Main Menu will be easy to complete, so it would make sense to tackle the harder parts of the system first rather than leave these until the end. Applying a bottom-up development approach to the program in Figure 6.7 results in coding the modules in the order shown in Table 6.3. As you continue to build the lower-level components of your system, you need to consider how you will bring these together in the final system. This should be done incrementally, where the components are added to the system as they are completed and the system ‘grows’ over time. However, before a module is added to the system it should be tested in isolation to ensure that it behaves in the way it is intended. Quite often, developers will produce test harnesses – structures of code that enable lower level modules to be tested in isolation. However, these structures take time to write and you may be better coding higher levels of the system to act as harnesses to save time. While the bottom-up approach enables you to test out the lower levels of detail in your program sooner, it does have a number of disadvantages. For example, there is no visible system until the end of the development when the higher levels are developed. This can mean that progress appears slow and may mean that any major design omis- sions are not spotted until near the end of the project when it is too late. In theory, you could swap the implementation of some modules around and still be pursuing a particular top-down or bottom-up development approach. For example, there would be no harm in swapping over the implementation of Long-Term Analysis and 136 Chapter 6 n Software development Short-Term Analysis. In this case, the Short-Term Analysis function may be more difficult to implement, so you might want to tackle this sooner in order to get it working. You will probably want to complete Data Entry before Data Analysis although in theory they could be swapped in any approach as you will want to have ‘read in’ some data to work with before you can implement and test the Data Analysis and its sub-functions. In practice you should mix and match the approach to the development you are undertaking. It may be appropriate, for example, to code some components from the bottom-up to test out a difficult algorithm or routine and then tackle the remainder of the system top-down to provide the user with a tangible view of the system overall. Once again, whatever you decide to do, you should be able to justify this to your supervisor and examiners, and you may have to include some discussion on your chosen approach in your final report. •6.12 Verification, validation and testing
6.12.1 Introduction
There are three ways that you can deal with errors in your program:1. Prevent or avoid introducing them in the first place. You achieve this through
practice and experience, and following a development process such as those out- lined earlier.2. You can detect and remove the errors. You should hope to do this as early as possible
as the longer errors remain in your code the greater the impact they will have and the greater effort will be required to remove them later when the code has grown even more. Verification, validation and testing VVT are concerned with this issue.3. You can tolerate them. There may be a certain level of quality that your client, user,
supervisor and examiner are willing to accept or tolerate. You will know from your dealings with them what is acceptable and what is not. If a high level of quality is required it may be better to reduce the scope of your system in order to minimise the number of errors within it. However, if your user is demanding a high level of functionality, they may be willing to compromise a little on quality to get what they want. It is probably better to have an 80 functional system working 100 correctly than a 100 functional system working 80 correctly – the former appearing much more professional and robust. In addition, in the former case, the remaining 20 of functionality you have left out could always be identified as further work in your report and the 20 of problems in the latter case may take a long time to sort out if the code is badly written. Discuss these alternatives with your supervisor and client so that an appropriate balance can be reached. Of these three options, this section is concerned primarily with VVT.6.12.2 Verification
Verification is the process of checking that we are performing our development correctly. In other words, are we sticking to our project plan and are we performing the stages of the development process properly? For example, looking at the conventional waterfall model, verification involves checking that we are performing each of the stages correctly – byParts
» Projects in Computing and Information Systems A Student's Guide 0273721313 Pearson 2009
» Introduction What are computing projects?
» Computing project types What are computing projects?
» Programming in computing projects
» Degree structures Degree requirements
» Degree requirements for projects
» Overview Your supervisor Stakeholders
» Clients and users Stakeholders
» Evaluators and testers Stakeholders
» Overview How this book is arranged
» Taught degree projects versus research degrees
» Summary Projects in Computing and Information Systems A Student's Guide 0273721313 Pearson 2009
» A definition What is research?
» Originality What is research?
» Gaincontribution What is research?
» Knowledge and understanding What is research?
» Identify the broad area of study.
» Plan how you will perform the research.
» Gather data and information.
» Analyse and interpret these data.
» Present the results and findings.
» Review the field – i.e., perform a literature survey.
» Build a theory – based on your understanding and interpretations of the field.
» Test the theory – does it work?
» Reflect and integrate – i.e., update your ideas based on your ‘tests’ and contribute
» Intellectual discovery The research process
» Research methods Research methods
» List or multiple choice. Provides the respondent with a number of options to
» Scale. Used to rate the respondent’s feelings towards something.
» Ranking. Used to order a series of options. You should not provide too many
» Complex grid or table. Used to gather similar responses on a range of questions.
» Open-ended. Used to obtain extended, qualitative answers.
» Summary Further reading Action points
» Techniques and Information Sources
» Additional considerations Choosing a project
» Follow any guidelines precisely. Most institutions require specific information; for
» Proofread thoroughly and get someone else to check it. Any errors or omissions
» Introduction to the subject area. This will provide the reader with an under-
» Current research in the field. This will emphasise that your project is not based in
» Identify a gap. You should be able to identify some aspect of the field that requires
» Identify how your work fills the gap. Having identified a gap in the field, your
» Identify risks and solutions. It is also useful in a project proposal to highlight any
» Explicit sections Preparing a project proposal
» Reviewing your proposal Preparing a project proposal
» Exercise Projects in Computing and Information Systems A Student's Guide 0273721313 Pearson 2009
» The project process Introduction
» Definition The project’s stages
» Planning The project’s stages
» Initiation The project’s stages
» Control The project’s stages
» Closure. The project’s stages
» Complete a literature search and literature review of existing stock market prediction
» Develop a suitable artificial neural network model.
» Identify and collect suitable data for analyses and evaluation.
» Evaluate the model using appropriate statistical techniques.
» Complete final report. Setting objectives
» Step 1 – Work Breakdown Project planning
» Step 2 – Time estimates Project planning
» Step 3 – Identify milestones Project planning
» Step 4 – Activity sequencing Project planning
» Step 5 – Scheduling Project planning
» Step 6 – Re-planning Project planning
» Rolling wave planning Project planning
» Risks. Include a list of critical risk factors and means of dealing with these risks
» Organisation. If you are undertaking a group project it would be worthwhile
» Alleviate critical risks Introduction
» Identify risks Risk management
» Alleviate critical risks Risk management
» Controlling risks Risk management
» Research degrees versus taught degree projects
» A starting point Introduction
» The literature survey process
» Format of information Literature searching
» Tracing the information Literature searching
» Inter-library loans Literature searching
» Some tips for performing a literature search
» Critical evaluation Writing literature reviews
» Overview The past Introduction
» Introduction The software development life cycle SDLC
» Requirements definition Requirements capture
» Requirements specification Requirements capture
» Functional specification Requirements capture
» Design The software development life cycle SDLC
» Build The software development life cycle SDLC
» Test The software development life cycle SDLC
» Implementation The software development life cycle SDLC
» The earliest ’model’: build-and-fix
» The stage-wise and classical waterfall models conventional models
» explore the requirements of the system with the user – requirements capture, andor
» explore the technical feasibility of a system – experimental prototyping.
» Which development approach should I use?
» Which programming language should I use?
» Introduction Top-down and bottom-up development
» Top-down development Top-down and bottom-up development
» Bottom-up development Top-down and bottom-up development
» Verification Verification, validation and testing
» Validation Verification, validation and testing
» Testing Verification, validation and testing
» Who is involved with testing and evaluation?
» Test plans Miscellaneous testing types
» Quality assurance and quality control
» Exercises Projects in Computing and Information Systems A Student's Guide 0273721313 Pearson 2009
» Getting started – project initiation
» Managing the five project elements
» Introduction Dealing with problems
» Weakening Dealing with problems
» Personal problems Dealing with problems
» Hardware failure Dealing with problems
» Data availability Dealing with problems
» Discovering your workresearch has been done before
» Analyse what you are currently doing.
» Change what you are doing to achieve your aims.
» eliminate activities you don’t need to do; and
» be more efficient doing the things you have to do.
» Time management tips Procrastination
» Using your supervisor effectively
» Introduction Working in teams
» Team development Working in teams
» Managing the team Working in teams
» Teamwork tips Working in teams
» Considerations Writing and structuring reports
» Approaches to writing Writing and structuring reports
» When should I start writing?
» Identify structure. This relates to the content of your report, using a report break-
» Identify presentational style. You should also try to set standards at this stage on
» Draft the introduction. The introduction gives the reader an idea of the
» Develop the main body. The main body of your report is the next part you
» Articulate conclusions and make recommendations. Quite clearly, your conclu-
» Complete the introduction. As part of the evolutionary approach to writing,
» Write the abstract. You cannot really write a clear abstract for your report until
» Add references and appendices. Although you will be collating references and
» Arrange contents list, index. Leave the completion of an index if one is required
» Proofread, check and correct. It is vitally important to proofread your report after
» Introductionliterature review – the first chapter of your report should always be
» Main body – the content of which depends on the type of project you are un-
» Conclusionsrecommendations – summarises the contribution of the work and
» Style Writing and structuring reports
» Word processing Writing and structuring reports
» Tips Writing and structuring reports
» Presenting charts and graphs
» Common mistakes Data presentation
» Miscellaneous charts Data presentation
» Other data presentation Data presentation
» Introduction Referencing material and avoiding plagiarism
» Citing references Referencing material and avoiding plagiarism
» Listing references Referencing material and avoiding plagiarism
» Commenting program code Documenting software
» Writing user guides Documenting software
» The presentation content Visual aids
» Introduction. One or two slides that introduce you and your talk.
» Main body. The slides that constitute the bulk of your presentation and cover the
» Summaryconclusion. A few slides that summarise your presentation and perhaps
» Dealing with questions Oral presentations
» Poster preparation tips Poster presentations
» Introduction Preparation Demonstrating software
» Demonstration tips Demonstrating software
» Introduction Viva voce examinations
» Introduction Examiners and the marking of your project
» General. Examiners will look at the relevance and appropriateness of the topic
» Report. Examiners will look for clarity, consistency, an appropriate use of
» Defence. Examiners will assess the types of arguments you have made to support
» Other. Examiners will review the administrative issues of your project. For example,
» What was the research question?
» Is it a ‘good’ question? This involves a comprehensive literature review to ensure
» Has the student answered the question adequately?
» Has the student made an adequate contribution to knowledge?
» The project approach from a technical perspective i.e., not a project management
» General project considerations subject independent
» Literature reviewproject foundation Assessment criteria
» Project approachmethods Assessment criteria
» Results and contributions Assessment criteria
» Introduction Taking your project further
» Seeking funding Developing commercial software packages
» Copyright and patents Taking your project further
Show more