1/120
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced | Call with Kai | Chat |
|---|
No analytics yet
Send a link to your students to track their progress
Benefits of using prompts to generate code
quick code generation
increased productivity for the rest of the team
enables non-developers to create code
automated documentation
Disadvantages of using prompts to generate code
potential for bugs and errors
risk of vulnerabilities
copyright concerns
limited situation understanding
Benefits of automated debugging and testing
real time identification of issue
improved code quality
Disadvantages of automated debugging and testing
reduced opportunities for developers and testers
dependency on training data
Functional Requirements
what the system should do and how it should behave in response to different inputs and conditions
Non-functional requirements
Non-functional requirements are attributes or qualities of a system that specify how it should behave or perform, rather than what it should do. Including: usability, reliability, portability, robustness and maintainability.
Data dictionaries
Used to design the data of a solution and useful at later stage when code needs to be modified later by other programmers and the purpose of the variable is unknown.
Mockups
A detailed diagram that illustrates how software modules’ interface will look. Annotations used to explain how design principles and characteristics of UX have been incorporated.
Object descriptions
Used to design an object within a solution. Includes the name, list of attributes/properties and the methods. Establish the naming conventions for the system, and document OOP principles.
Input process output charts
Provide brief overview of the inputs and outputs of a task and outline the processes required to generate outputs.
Pseudocode
Structured english which clearly depicts algorithms in a way that does not require technical knowledge. Helps break down complex problems. Helps identify logical erros early in development.
Character
Represents a single text symbol, contains one byte of memory
String
Represents a sequence of characters. Use string if the number has a leading 0 such as phone numbers or any other number that is dependent on the specific structure of the number.
Integer
Represents whole numbers, positive, negative and zero values. measurements such as mm
Floating point
Represents numbers with decimals, used for measurements such as cm and metres
Date/time
represents date and time information, enables mathematical operations with dates
Boolean
Use to store default true or false data
Data structure
Method of organising data to allow particular operations to be performed on them efficiently
One dimensional array
Linear data structure where elements are accessed by a single index. It represents a list of elements that are all of the same data type. Each element in the array can be accessed using an integer index.
Two dimensional array
Two dimensional array represents a grid of data, rows and columns. This requires accessing elements using two indices rather than one.
Records
Basic data structure for collections of related elements. These elements may or may not be of the same data type.
Fields
Are what make up records and have their own data type.
XML
File structure made up of user defined, self descriptive tags that are customizable. Ensures that data received from a source is in an ‘as expected’ format. XML will continue to work if data is modified or added.
CSV
Text file where data is seperate by comma, can store two dimensional arrays, much simpler design.
XML vs CSV
XML is easier to move data bewteen systems as it conforms to standard structure
XML is more human readable
XML can store hierachial complex data
changing csv by adding more columns may require code altercations where changing XML doesn’t
Managing XML requires more complex code than CSV
OOP
Code that is reusable and modular that revolves around objects which are from classes that hold data or code and organized in methods.
Abstraction
Hiding the complex implementation details of a class and only exposing the necessary and relevant parts to the user
Encapsulation
Process of restricting direct access to an objects components by modifying only through exposed methods. Improves the security and integrity of the data.
Inheritance
When a subclass inherits common attributes and methods from an existing super class. Allows the subclass to reuse code, extend its functionality and promote hierarchial structure. Any changes made to the methods in the super class will be affected in the subclass.
Generalisation
The process of finding common characteristics among a set of classes and abstracting them into a parent class.
Benefits of inheritance and generalisation
Code reusability, Ease of maintenance and Scalability
Public modifier
Scope is global as they are accessible from any part in the program. Their lifetime extends throughout the entire runtime of the program.
Protected modifier
Accessible only within the class they are defined in and by any subclasses inherited from that class.
Private modifier
Accessible from within the exact class which they were declared and lifetime limited to the the extent in which the method or specific class in running for.
Local variable
Are declared inside a function and can only be accessed within that specifc function. Their lifetime is limited to whne they are created when the function is called and destroyed when the function completed it execution.
Global Variable
Are declared outside any function and can be accessed throughout the entire program.
Sequence
A set of instructions that executes line by line, each line is run in the order is is written.
Selection
Lines of code are run only when a condition is met, based on a Boolean condition. (IF statements)
Iteration
Is used to repeat sections of code multiple times until a condition is met. (WHILE, DO/WHILE, FOR and REPEAT/UNTIL)
Function
A reusable block of code designed to perform a specific task
Method
A function that called from the object in which it was declared
Class
A template for objects with predetermined variables and behavior, which can be instantiated as objects or be used by another class.
Objects
An instance of a class that represents a specific entity with its own unique state
Naming conventions
Is a set of rules that is used when creating variables, making them easy to read and understand. Should tell the purpose and data type or structure.
Hungarian notation
same as camel case but has data type as prefix
Snake case
Joins words using an underscore
Camel case
when each word after the first begins with a capital letter
Internal documentation
Helps other developers to understand what the code does such as data structures, helps reduce the amount of time required for maintaining and debugging. Useful for future software updates. Improves efficiency
Selection sort
Comparing the first element of the list to each other element to find the smallest value and moving it to the front
Quick sort
Method of sorting an array by splitting and swapping values in that array.
Quick sort vs selection sort
Quick sort is much more efficient than selection sort as it uses the divide and conquer method. Exponentially faster. Where as selection sort checks every value in the list and compares it to the smallest which is much less efficient.
Linear search
Method of searching an UNSORTED list, going through each element first to last. Simple to implement, but extremely inefficient is a large data set is used.
BInary search
Method of searching a SORTED list, by dividing the data set in half until the value is found. Harder to implement as requires sorted array but is much more efficient than linear. List must be sorted in order of the element trying to search for.
Syntax error
erros in code that prevent a solution from being compiled as a result of a programming language’s syntax not being followed
Logic errors
errors in code that result in the solution generating incorrect output
Run-time erros
errors that arise during program execution that result in the solution crashing if not handled correctly
Over flow error
When a calculation produces a result that exceeds the storage capacity of the data type used to store it.
Index out of range
When a program attempts to access an element at an index that is outside the bounds of an array or collection.
Type mismatch
When values of incompatible data types are combined in an operation.
Techniques for debugging
Breakpoints, debugging statements
Breakpoints
Markers set by a developer in a code editor or debugger that pauses the execution. Allows developers identify and fix issues in their code
Debugging statements
Lines of code that offer insight into how the data is being manipulated. Can be inefficient as the whole program has to be run. Commenting out code
Testing techniques
Boundary condition tests
Reasons for developing software
Increasing productivity and efficiency, reducing costs, identifying opportunities in the market and meeting organizational objectives.
Features of design brief
problem outline, proposed users, language to use, feasibility, originality
Milestones
Represent the achievement of a significant stage such as the development stage, analysis stage etc.
Dependencies
The commencement of some tasks depends directly on the tasks that is completed before
Critical path
Sequence of tasks which contains no slack time, the minimum possible amount of time which all
Monitoring the progress of projects
Annotate the Gantt to log any unforeseen changes or using a project change log
Interviews
A method of collecting in depth qualitative data, can ask follow up questions. Quite costly in labour and time and can only interview small number of people
Survey
Mix of quantitative and qualitative questions, can be statistically analysed, can reach out to many participants being geographically diverse
Observations
Observing user behaving normally in natural environment, useful to collect data bout current system. Potential for observer bias, but does not rely on users’ opinion.
Reports
summarises information about a system, used to analyse an existing system
Economic constraint
financial limitations and time considerations that may affect the ability of a project to be developed
Legal Constraint
Laws and regulations that must be adhered to in the development of the project
Social constraint
Refer to the constraints of the system to accommodate for users with varying technical knowledge and accessibility needs
Technical constraints
The restrictions related to the technology used in the project
Scope
Outlines what the solution will and will not address, some requirements may not be addressed due to identified requirements
Scope creep
When a client increases the scope of a project during the life cycle of the project. This can be very expensive for the developer in terms of time and money.
Context diagram
Used to represent the data flows between a system and external entities are Level 0.
Data cannot flow directly between two entities
Data flows cannot cross each other
Each data flow should only represent a single set of information being transferred.
Data flow diagram
Depict the flow of data within a system, illustrating how data is provided, processed, stored and output. Level 1.
Data cannot flow directly between entities
Data cannot flow directly between data stores
data cannot flow directly between an entity and data stores.
data flows cannot cross each other
a process must have at least one input and one output
output name from process should be different to the name for the input
data store must have at least one input and one output.
all external entities must at least provide one input or receive one output from the system
Use case diagram
Visually represents the interactions between users and a system
SRS
a document that summarises the findings of the analysis stage
User characteristics
Technical proficiency, cognitive abilities and demographic information
Components of SRS
requirements, constraints, scope, user characteristics, technical environments and analytical tools.
Version control
Ensures the files that developers are working on are up to date and allows them to ‘roll back’ to any previous point in the development if issue develops with current version
Backup scheme
frequency of backup, backup media, location of backup, testing, backup media, backup type, restoration, retention period, amount of data
Archive vs backup
Archiving is moving files from one place to another whereas backup copies files from one place to another
Full backup
copy everything to new storage is time consuming and needs large amount of storage.
Differential backup
Full backup first and any changed files different to this are saved in the next backup. More complicated to implement and restore backups
Incremental
full backup first and any changed files different to previous increment, very quick, complicated to restore as full back up and then all increments in order
File security
Access control, file permissions and encryption
Disposal
The removal of files tat are no longer needed, ensures that storage space is optimised and sensitive information is protected
Mood boards
used to collate imagery, colours, typography and code samples to explore and inspire the overall direction of the design of the software solution.
Brainstorming
The unstructured collation of related ideas, based around a central theme/concept
Mind maps
a structured collation of related ideas, based around a central theme/concept
sketches
unrefined illustrations that briefly depict an interface or indicate how different components of the software solution could be linked or interact
Annotations
can be used to organise thoughts and highlight or justify design considerations within design ideas. Justify design principles and characteristics of user experience.
Efficiency of solution
how well the solution utilises resources and performs tasks minimising cost and time and speed of processing
Effectiveness of solution
The ability to achieve its intended goals, accessibility, accuracy, attractiveness, clarity, communication of message, completeness, maintainability, readability, relevance, timeliness and usability