Week 2 Flashcards
In 2005 what percentage of projects were delivered on time and in budget?
34%
How much did the FBI spend on it’s project and how long did it last before they declared they were not even close to a working system?
$M170
2001-2005
What was project Everest?
Ford Motors
$M200 over budget, abandoned softare project to buy supplies and replace legacy software
What was project Innovate?
McDonalds
$1B budget to monitor all aspects of operations
1999-2002, killed off after $170M wasted by no progress
What are 3 problems often occurring with software development?
Unreliable products - crashes, unexpected behaviour, etc
Expensive Maintenance - usually exceed estimates, often over 90% of effort on maint
Incorrect - bad communication means all parties have a different idea in their head about final product
What are some of the underlying difficulties of software development?
Complexity - programs get very complex very quickly, no two are quite alike
Changeability - operating environment is constantly changing, client’s system may be completely different to users, different platforms etc.
Invisibility - software is not a physical thing - difficult to see progress sometimes
What is software engineering?
application of engineering to software
branch of compsci dealing with large, complex software built by teams to last many years and undergo changes
Involves formal procedures and techniques
What 6 properties does every system have?
Input/Output
A purpose
A boundary and Environment
Subsystems and interfaces
Control with feedback/feedforward
Some emergent property - greater than sum of parts
What elements must every information system have?
Human activity that needs information
Stored data
Input method
Process that turns data into information
output method
In addition to the required properties of information systems, what other properties may information systems have?
Subsystems
Interfaces with other systems
What are 3 types of software?
Custom (bespoke) software
Commercial/Off-the-shelf software
Embedded software
What is bespoke software?
Made for one particular client
Developed in-house or outsourced
Usually unique to the client - i.e. particular set of requirements
What is commercial/off the shelf software?
Software sold on the open market
Often cheaper and more reliable than custom software, but less customisable/flexible
May not fit all client’s needs
Not unique to the client
What is embedded software?
Made for and runs on a particular piece of hardware
User may not even be aware of it
e.g. software inside dvd player or washing machine
What do requirement analysts do?
Work with the customers to identify and document the requirements
what do designers do?
generate a system-level description of what the system is supposed to do
What do programmers do?
Write the lines of code to implement the design
What do testers do?
Test software for faults - try to break it
What do trainers do?
Show users how to use the system
what does the maintenance team do?
Fix faults that show up later, make sure the software is running smoothly
What are the qualities of a software engineer?
Fantastic programmer
Also understands the other roles of software development and has some skill in them, e.g. requirements gathering
Good communicator
This feels like a job application or something…
What is a software lifecycle?
The structure of the project, i.e. what tasks/activities are involved, resources needed, timing, deliverables, tools
What are the 6 steps of waterfall model?
Requirements
Design
Implementation
Testing
Deployment
Maintenance
What does the addition of feedback do to the waterfall cycle?
Means each phase can be revisited after feedback from the next phase
Prototyping can be added as a phase in the waterfall methodology. Where would the prototyping step come in the cycle?
After design, before implementation
What is the evolutionary model?
Similar to waterfall except maintenenance step is replaced by “evolution”, which basically runs the whole cycle again after it completes. So each version of the software is a mini waterfall cycle with revised requirements
What is the spiral model?
4 sections, constantly going through the cycle and repeating
- Identify objectives, constraints, alternatives
- Risk analysis, mitigation, evaluation of alternatives
- Execution and Testing
- Review progress, plan for next phase
What are the 12 basic features of extreme programming?
Customer defines value
Small releases
Metaphor (common vision, common names)
Simple Design
Writing Tests first
Refactoring
Pair Programming
Collective Ownership
Continuous Integration (small incremements)
Sustainable pace (40hrs/wk)
On-site customer
Coding Standard
What are the 5 basic steps of extreme programming?
Architectural spike
Release Planning
Iteration
Acceptance tests
Small releases
What is Unified Software Development process?
Developed by team that created UML
Embodies best practice in system development
Iterative approach with 4 phases
Tasks captures in a series of workflows
What are the 4 phases of Unified Software Development?
Inception
Elaboration
Construction
Transition
What are the workflows within each phase of Unified Software Development?
Requirements
Analysis
Design
Implementation
Test
What techniques are used during requirements capture and modelling?
Requirements elicitation
Use case modeling
Architectural modeling
Prototyping
what are the key deliverables during requirements capture and modelling?
Use case model
Requirements list
Initial Architecture
Prototypes
Glossary (!?!?)
What are the techniques used in requirements analysis?
Communication diagrams
Class and object modelling
Analysis modelling
What are the key deliverables in requirements analysis?
Analysis models
What are the techniques used in system and architecture design?
Deployment modeling
Component modeling
Package modeling
Architectural modeling
Design patterns
What are the key deliverables in system architecture and design?
overview design and implementation architecture
What are the techniques in class design
class and object modeling
interaction modeling
state modeling
design patterns. again. ffs.
What are the key deliverables in class design?
Design models
What are the two types of quality which are criteria for quality software?
External - visible to client
Internal - concern developers, not visible to clients
What are the external criteria for software quality?
Correctness
Reliability
Robust
Efficient
Usable
Safe
Secure
What are the internal criteria for software quality?
Maintainable
Flexible
Modular
Cohesive
Comprehensible
Reusable
Portable