System Design Flashcards
Abstraction
simplifying problems by removing unnecessary information or irrelevant detail
Activity Diagram
can appear quite similar to flow charts, but serve the purpose of both a flow chart and a data flow diagram in agile methodology. They show processes involved in a single use case from beginning to end
Adaptive Maintenance
changing the system to meet new needs, generally due to external factors, i.e., changing to update VAT or tax rates
Agile Development
a cyclical approach to software development involving continuous improvement, shorter development cycles, wider market windows and early customer feedback
Argument
when a parameter is given a specific value
Behaviours
the functions of the object or what the object does in Object Orientated Programming
Bespoke Software
software that is custom written and tailored for a specific task or customer, that is costly and time consuming to produce and works exactly as required
Class
a template used to create objects of that class
Class Diagram
says the name, attributes and methods of a class, often drawn as a hierarchy showing how features of the super class are inherited by the derived classes
Communication Diagram
these show the interaction between objects in a system
Compatibility Evaluation
looks at whether the system will work with existing system, specifically looking at whether any bus have been identified, is it reliable, and are access times to data acceptable
Complexity of a Problem
taken to be the worst case complexity of the most efficient algorithm which solves the problem
Computational Complexity
a measure of how economical an algorithm is with time and space
Computational Thinking
an idea developed by Jeanette Wing that means to think like a computer scientist
Control Abstraction
process by which programmers define new control constructs
Corrective Maintenance
fixing faults in the program, i.e. bug fixing
Data Abstraction
enforces a clear separation between the abstract properties of a data type and the concrete details of its implementation
Data Dictionary
a collection of data and attributes about data elements that are being used in a database, describing the meanings and purpose of data elements within the projects context and provides guidance on interpretation
Data Flow Diagrams
show entities, processes, data flows and data stores
Development Phase
involves production of programs, tailoring of software and modification of code. Traditionally, the system is fully specified, programmers work to the requirements specification and this is usually used on large systems developed by large teams
Direct Implementation
at a convenient time, the old system is stopped and the new one is started
Economic Feasibility
whether or not you can afford to solve a problem within the current budget
Encapsulation
combining a record with the procedures and functions that manipulate it ot form a new data type, a class in Object Orientated Programming
Entities
sources of data
ERD
Entity Relationship Diagram
shows how different entities relate to each other in an application or database
Environmental Feasibility
whether or not a system is environmentally acceptable
Ethical Feasibility
whether or not a system is socially and ethically acceptable to produce the system
Evaluation
a systematic assessment of whether something meets its objectives or specifications or how well it meets the latter in terms of effectiveness, usability and maintainability
Extreme Programming Methodology
a variant of agile methodology focused on improving software quality and responsiveness to changing customer requirements
Feasibility Study Report
describes whether the system is a feasible solution to the problem, looking at various types of feasibility
Functional Abstraction
where the implementation detail of the computational method is hidden
Gradual Changeover
one part or module of the system is changed over separately; the new part is then checked, before the next part of the system is changed, thus, it may take a long time to changeover the whole system
Human-Computer Interaction
the study, planning and design of what happens when a computer and human work together
Implementation
involves replacing the old system with the new
Implementation Plan
explains how to backup the current system, switch over to the new system, deactivate the old system, activate the old system, migrate data from the old system to the new and disaster recovery
Information Hiding
where a class encapsulates its private attributes and methods which are exposed only through its interface
JSD
Jackson Structure Diagrams
provides an overview of the design using the top-down approach. It breaks the system into components and shows links between them
Legal Feasibility
whether the technology needed to solve the problem is legal
Maintainability
how easy it is to fix bugs, change parameters and respond to changing requirements
Maintainability Evaluation
looks at whether a system will be easy to maintain, whether any modifications or shortcomings have been identified, whether any new modules are needed and whether the data is secure against unauthorised access and complying with any relevant legislation
Maintenance
fixing bugs, changing parameters and responding to changing requirement
Model
abstraction of an entity in the real world or in the problem that enables an automated solution, is a representation of the problem that leaves out unnecessary detail
Modular Programming
breaking up a program into smaller, more manageable units called modules, with each module responsible for a specific task
Module
manageable units of code that the main code has been broken up into
Object Diagram
a diagram to show instances of a class which may be named or anonymous
Off the Shelf Software
software that can be brought in, generally cheaper and quicker to gain a result from, that may require a chance in how the customer works
Parallel Run
the old and new system run alongside one another for a period of time. The results and outputs are compared. Once confidence in the new system is gained, the old system can be discontinued
Perfective Maintenance
improving the system to make it work better, i.e. improving performance or ease of use
Phased Changeover
one part or module of the system is changed over separately; the new system is then checked before the next part of the system is changed, thus, it may take a long time to changeover the whole system
Pilot Changeover
the new system is implemented for a few users or places, such as one branch of a nationwide bank; the results from the pilot users are compared to other uses who are still using the old system, and once confidence is gained, the new system is rolled out
Polymorphism
giving an action one name that is shared up and down a class hierarchy; each class in the hierarchy implements the action in a way appropriate to itself
Problem Definition Document
document laying out the issues with the current system that need to be fixed in the new system
Problem Reduction
the process of generalising or reducing a problem to one that has already been solved
Procedural Abstraction
the ability to design a well-abstracted procedure that is generalised as far as possible
Project Manager
oversees the whole project, that all members of the team are communicating, monitors the progress, liases with the team and the customer and ensures the project is completed on tie and on budget
Prototype
early or trial working version of the proposed system developed to test possible solution
Prototyping
building a working model, demonstration system, simplified version, rough copy or trial piece of software to help an analyst
RAD Methodology
Rapid Application Development Methodology
a programming methodology that put less emphasis on planning and more emphasis on an adaptive process
Return Code
a piece of data sent by function to the point of invocation
Requirements Specification Documentation
forms a contract between system developer and client user, forming the basis for the next steps in development, test strategies, designs, and needs to be precise and unambiguous because failure to meet requirements means client will not pay for product
Robust Code
where a program will function reliably and not crash or go into infinite loops, even with incorrect inputs or unpredictable values
Screen Scraper
the action of using a computer program to copy data from a website
Sequence Diagram
these diagrams show the flow of program logic and the order in which messages are passed between objects, with vertical dashed lines as timelines, horizontal arrows as messages and rectangles as objects
Social Feasibility
whether it is socially acceptable to produce a system
Software House
a company that builds and implements custom software solutions for its clients
Spiral Model Methodology
a risk-driven software development process model based on the unique risk patterns of a given project
State Machine Diagrams
shows the behaviour of an object during its lifetime
Stepwise Refinement
another name for decomposition
System Evaluation
the completed system is evaluated against the original system requirements
System Level Response Time
time taken to respond when disregarding stuff out of our control
Systems Flowchart
shows processes and activities to be carried out with storage, inputs, outputs, master and transaction files
Systems Lifecycle
a method of developing a new system using an iterative cycle made of a series of fixed stage completed in sequence
Feasibility Study
purpose is to ascertain the problem to solve and whether it is solvable, usually done by a systems analyst or a business consultant, resulting in feasibility study report and problem definition document. The aim is to produce a clear unambiguous description of the problem
Systems Analysis
involves looking at the current system to find out how it works and its strengths and weaknesses
Systems Analyst
must bridge the gap between users who are an expert on their problem but don’t understand what a computer system can achieve and developers who are experts in system development but don’t understand the problem
Test Phase
involves producing and carrying out a suitable testing strategy using a test plan that specifies the tests to be completed. Tests are based on user requirements specification, involve the production of test data and specifies expected results
Acceptance Testing
where customer test the system
Alpha Testing
where developers do testing
Beta Testing
where selected end-users do testing
Performance Testing
tests that the system runs fast enough
System Testing
where the whole system is tested at once
User Testing
test a single code module or program
Waterfall Methodology
a linear sequential approach to software development
Usability
ease with which a user interface can be used by its intended audience to achieve defined goals
Usability Evaluation
looks at whether the system is easy to use, what are the training needs of users and have they been met, is online help available and useful, do the users have rapid access to data, and most importantly does the system meet the user requirements listed in the requirements specification?
Use Case Diagram
a use case is a service that the system can provide; a stickman is shown as the initiator of the service