Y12 Programming Flashcards
framework for development (70 cards)
what are the four stages of framework for development
- Investigate
- Design
- Develop
- Evaluate
in the investigation stage, explain about problem description clarification of specifications
- involves developing team meeting to interpret what the specific needs are.
- achieved through design team analysing the design brief and/or statement from the client, then highlighting key features to determine the requirements
in the investigation stage, explain about problem description performance requirements
- the development team can gain a better understand of a proposed system
- it is used to identify elements of a proposed system that needs to be factored into the new system when created.
- elements may be recorded and referred to, particularly at the evaluation stage
- performance requirements refer to non-functional criteria the system must meet, such as speed (systems responsiveness), capacity (amount of data system can store), availability (systems up-time and accessibility), and security (protecting the system and its data
in the investigation stage, explain about defining requirements
- helps project team gain understanding of how the existing team works and what elements of the existing system need to be carried over to the new system.
- it is used in the planning stage to ensure elements of existing system are factored into the new system
in the investigation stage, explain about the development schedule
- a schedule will be needed and later tracked and managed. they vary, depending on the project, but generally include scheduling methodology, performance measurements and tools and procedures.
- involves identifying tasks based on requirements and determining the sequences of tasks and their required resources.
- project managers use project management software to create schedules by using tools such as Gantt and PERT charts, task lists and calendars.
in the design stage, explain about designing data structures
- a method for organising and storing data in a computer
- the four primary functions are inputting, processing, maintaining and retrieving data.
- data structures allow developers to organise data and present it in a logical manner, which results in more manageable programs and fewer variables
- eight common data structures are arrays, hash tables, objects, linked lists, stacks, queues, trees, heaps and graphs
in the design stage, explain about design and test algoritms
- this is the point where you will use pseudocode or flowcharts to work out problems that may occur during the code
- once you have the basic framework its time to start analysing how efficient the code is and make sure the outcome is correct.
in the develop stage, explain about developing code
- coding is the process of transforming the design of a system into a computer language format
- some goals of coding include:
-> translating the design of a system into a computer language format.
-> reducing the cost of later phases
-> making the program more readable
in the develop stage, explain about debugging code
- debugging is a multistep process that involves identifying a problem, isolating the source of it and then either correct the problem or determine a way to work around it.
- begins when developer locates a code error in a computer program and is able to reproduce it
- the process of debugging a new software program can take more time than it took to write the program
- all bugs are documented along with their solution or workaround
in the develop stage, explain about unit testing and use of live data
- unit testing is powerful tool for software quality.
- provides fundamental check that an application meets its software design specifications and behaves as intended
- unit testing test individual components of a program with a range on inputs and data to ensure it works as expected and doesn’t create any errors
- if there is a failure, then the software must be refactored
- can be manual but most software is tested automatically by testing software
- when they are done well, unit tests:
-> decrease defects and expose them early in the development lifecycle
-> increase code readability
-> enable code reuse
-> improve deployment speed
in the evaluate stage, explain about user acceptance testing and the types of UAT
- software is tested in real-world scenarios by the intended audience
- primary goal is to verify that software can effectively handle the real-world tasks and meet specific development requirements
- users are given the opportunity to interact with the software
- the feedback gathered from the early testers is forwarded to developers who implement final adjustments
- UAT safeguards against the release of faulty, ineffective and incomplete software programs
- some types of UAT include:
-> beta testing - software given to group end users who evaluate the functionality
->alpha testing - tested internally by the development team
-> black box testing - end users test specific functions without the access to internal code
-> operational acceptance testing - focuses on software’s operational readiness
-> contract acceptance testing - tested against specific criteria and specifications
-> regulation acceptance testing - ensures software complies with APPs
in the evaluate stage, explain about developer retrospective and identify what each team member must do and the key features of developer retrospective
- retrospectives are crucial meetings held at the end of each stage
- the team reflects on completed stage, and evaluates the success and challenges, and what needs to be improved.
- each team member contributes by answering the following questions
-> what worked well
-> what didn’t work well
-> what actions can we take to improve
-> what specific steps can we implement - key features include
-> preparation
-> analysis
-> action planning
-> closure
what is software development process
- framework that outlines stages involved in creating the software
- ensures the software is developed in a structured and organised way
what is the linear and iterative approach and list the 6 phases
linear: it is a sequential approach where each phase is completed before moving on
iterative: incremental approach where each phase is repeated several times until desired product is achieved
phase 1: requirement gathering
phase 2: design
phase 3: implementation
phase 4: testing
phase 5: deployment
phase 6: maintenance
what are some characteristics of the iterative approach development process
-> incremental
-> flexible
-> higher risk management
-> continuous improvement
what are some characteristics of the linear approach development process
-> sequential
-> predictive
-> little flexibility
-> high risk
how do you choose the right development process (linear/iterative)
some factors include:
- project size and complexity
- stakeholder expectations and involvement
- team size and experience
- project timeline and budget
when shall i use what?
- linear -> small, well defined projects
- iterative -> large, complex projects
in gpp, explain about validating input
- ensures runtime errors/exceptions don’t occur
- reduces issues of poor data integrity by ensuring high quality data entry
- can be done on expected data type, range, consistency, presence and format
in gpp, explain about commenting
- describe purpose of code and any algorithms used to accomplish purpose
- create documentation for projects because as the project gets more complex, it becomes much easier to track the code
- it helps understand the past code which you may have written a while ago
- other people will find them useful to understand
in gpp, explain about meaningful variable names/modules/functions
- avoid short or ambiguous variable names like ‘temp’ ‘x’ or ‘i’,
- avoid excessively long variable names ‘thisPersonsFavouriteColour’
- be consistent with cases
in gpp, explain about indentation and whitespace
whitespace - reduces the strain on eye and separates code into sections
indentation - clearly defines where a block of control structures start and ends
in gpp, explain about the use of stubs
- essentially a dummy methods or functions that represent an unfinished response/code
an example:
def Calculate_Total(order):
return 10.00
in gpp, explain about version control
- system that tracks changes to a set of files over time
- it helps developers to collaborate effectively, revert to previous verions, experiment etc.
in gpp, explain about backups
- it ensures safety and availability of code in a case of major problem
- how does regular backups contribute to gpp
-> data protection, disaster recovery, version control, testing and development - implementing regular backups effectively
-> increase backup frequency, label and organise backups, use combination of backups