Software Development & Management Flashcards
What are the software process activities ?
Evolution, Validation, specification, development
What are the advantages of the incremental delivery over waterfall methodologies ?
Faster delivery of products, cheaper to make changes, and better for business systems
What are the best systems to use the waterfall method ?
Embedded systems and safety critical systems
What is the most popular agile development methodology ?
SCRUM
What are the stages of reuse oriented appoarch
Requirements specification, software discovery and evaluation, requirements refinement, application system configuration, component adaptation and configuration
What happens during the software discovery and evaluation process in the reuse oriented approach
A search for the software and components that provide the required functionality will be done they will be checked to see if they meet the requirements that were made prior.
What may happen if the modifications to the reused software or components is impossible
Alternative solutions will be looked for
What happens during the application system configuraition ?
This is in the event that an off the shelf software that meets all the requirements is found this will be configured to become the entire solution
Why would we use use and system requirements ?
This is so that different people need different things
What are user requirements ?
Broad statements that will state the services that the system provides
What are system requirements
These are high level descriptions of the system that will state the functions and services that the system would do
What are functional requiments ?
These are statements of how a system would respond to input, this would contain explicitly what the system should do
What are lehmans laws of reasons to evolve a system
Changing environment of the system, wanting to satisfy users, feedback systems, system structure to be kept simple,
What are the reasons to not CHANGE a legacy system
high business value high quality, expensive, integral part of the business model
What is black box testing ?
Where the behaviour of the system is tested with test cases
What is white box testing ?
Where the code is tested against test cases
What is acceptance testing ?
A team of testers will test the system to see if it meets the requirements of the user, they will see whether the system is fit for purpose or requires more development
What is release testing ?
This is when the system is tested prior to its release if the software is custom it will be tested by the customer against all requirements, if it is a general purpose software the public features will be tested before being realesed
What are the categories that a legacy system can fall into?
high business value
What is grey box testing ?
Combination of black box and white box testing
What are the reasons for testing a system ?
To make sure that the system is fit for purpose can be used in the environment that it was meant to be used in
What is unit testing ?
Where classes and objects will be tested against a series of inputs
What is component testing ?
This is where a combinaiton of individual units are combined to form components and are tested
What is system testing ?
This is where the system as a whole is tested against the requiirements
What is defect testing ?
This is where the system will tested to find errors and defects
What is SOA ?
service oriented architecture, is the way that the software will communicate
What is a product backlog ?
This is a list of things that will need to be accomplished in a sprint
What is a scrum master ?
Someone who will interface with the organisation about the progress of the scrum and relay new information to the engineers, keep the developers on task and without distraction, they will manage the product backlog, and schedule daily meetings
What are metrics in software quality
The degree of measurements that are within a piece of software such as the amount of errors that are experience by a user per hour
What is a function point in software quality
This is a quantitive measurement of the amount of code that is written used to show developers the implementation size of their code
What is the issue in using LOC to measure the quality of software ?
This is subjective because code that is long is said to be of lower quality rather than more compact code
Why would someone want to use waterfall methodology over an agile development methodology ?w
Because they are developing large systems / critical systems that require a lot of planning documentation and rigid software structure
What are the principles of agile development ?
PEOPLE NOT PROCESS, CUSTOMER INVOLVEMENT, INCREMENTAL DELIVERY,
What is system validation and verification ?
validation is where a system will
What are the reasons for system failures ?
poor requirements gathering and poor specification
Describe a control flow graph and what it is used for
this is the flow of a program, this is used to identity faults within a component of a system
How are requirements gathered in XP ?
story cards are developed with customers as they will be toghether developing scenarios on the situations that someone will use the system in
What is UML used for ?
Unified modelling language,
What is a use case ?
This will show how a user will use the system with a certain goal in mind
What is bottom up estimation in software planning
This is where the effort cost be estimated by the development of each component of the system
What are experience based techniques
Basing the effort cost in people months of how long it will take to develop the system, team of people will estimate the length of time to complete an activity, this will calculate the time taken
What are the factors that impact productivity
The environment they work in, the support they get, the process quality and the project size
What is avoid single point failure ?
This means that they cannot fail at one portion of security and be locked out of their account they have to fail multiple things to be locked of their account
What is the difference between alpha and beta testing
Alpha is where users will come to the development site and work with the developers and test the software there. In beta the users will be given a release version of the software to use in their own environment
What is top down estimation
This is where they asses the effort cost based on the sub systems being used
What are examples of object oriented design processes
Atchitectural design, sequence modelling, use cases, design models, process stages, object class identification
What are examples of object oriented design processes
Architectural design, sequence modelling, use cases, design models, process stages, object class identification
What goes in a test case
Expected result, actual result, test case ID, test data, preconditions, summary of test, what will happen in the test
What happens to a legacy system if the business value is low and the quality is low
GET RID OF IT REMODEL THE BUSINESS
If quality is high low business value
CONTINUE, if it gets to expensive REMOVE IT
If quality is high low business value
CONTINUE, if it gets to expensive REMOVE IT
If quality is high HIGH business value
Maintain the system
LOW QUALITY HIGH VALUE
Re engineer it and improve quality and improve maintainability
LOW QUALITY HIGH VALUE for legacy systems
Re engineer it and improve quality and improve maintainability
How do you measure the quality of software
The amount of errors, change requests and how complex the system is (cyclical complexity)
What are the types of maintenance ?
FAULTY REPAIR, CHANGE FUNCTIONALITY on request, change for the environment that is already changing
What are the factors that will impact the systems lifetime
Replacement cost, return of investment, investment cost,
What are 8 software attributes 4 being the main ones ?
MAINTAINABILITY, DEPENDABILITY, USABILITY,EFFICIENCY, ROBUSTNESS, SECURE
What is refactoring and why would it be done ?
Cleaning up and restructuring code, so that the system structure doesnt degrade
What are the metric dos and donts ?
Dont ignore data, don’t use one metric, provide feedback, select and state clear goals, dont measure individuals
What is refactoring and why would it be done ?
Cleaning up and restructuring code, so that the system structure doesn’t degrade
What are the metric dos and donts ?
Don’t ignore data, don’t use one metric, provide feedback, select and state clear goals, don’t measure individuals
What is the purpose of SOA ?
To provide programs with services such as specialised processing or access to data and information as well as storage resources
What are the benefits of SOA
They are promoting loose coupling, many organisations services can communicate, promote reuse, as they are geared towards that
What are the pitfalls of SOA
No transition plan, not standerdised
What are the 3 layers of SOA and what languages are used in first gen ?
Application Business and orchestral, WSDL, XML, SOAP
What is SOAP used for ?
Communication between the services
What are the key properties of SOA ?
Autonomy as the serivces have control over the logic they have, loose coupling, resuability, composability, composite services are created with individual services included
What is WSDL ?
The description of a service, creates the point o contact between the requester and service endpoint
What are the factors that will impact a system lifetime
RETURN OF INVESTMENT, REPLACEMENT COST, INVESTMENT COST, DEPENDENCIES, BREAKAGE IN THE CASE OF REPLACEMENT ( RISK OF CHANGE)