Systems Development Lifecycle (EXAM #2) Flashcards
Systems Development Lifecycle (SDLC)
-process of developing software or information systems from start to finish
SDLC Phases
- planning
- analysis
- design
- development
- testing
- implementation
- maintenance
- Planning
a. the systems development team makes a plan for the systems development project. during this phase it is vital to conduct several types of feasibility analyses in order to assess whether developing the system is a good idea
b. main actors: project manager, project sponsor (usually VP or other high level manager), senior analysts
c. end result is a formal approval (usually signed off by management) that the project will move forward and high-level requirements matrix
requirements matrix
list of approved features and key characteristics of the new system that are required for success
feasibility analyses
- technical
- economical
- legal
- operational
- scheduling
technical feasibility
is the system realistic, and we have the expertise to develop it?
economical feasibility
do benefits exceed costs?
legal feasibility
does the system meet all regulations and laws?
operational feasibility
will our organization be able to operate the system
scheduling feasibility
is the project timeline realistic given our resources
- Analysis
a. one of the key tasks is to determine user requirements (want do they want the system to be able to do)
- users can be: customers, clients, own organization, or other stakeholders (called requirement gathering or requirement elicitation)
- then compiled in a requirements definition document
b. main actors: system analysts & business analysts
requirements definition document
more detailed version of the requirements matrix
- Design
a. the system is laid out using mockups, and the basic modules and logic for the software portion of the system are outlined
- example screens and windows are developed (like storyboarding) to illustrate basic flow and feel of the system
- hardware requirements are also determined during this phase
b. main actors: project manager, system architect, programmers (support role, not programming), and users (to give input and advice)
- Development (Construction)
a. where actual programming takes place. the primary deliverable during this phase is a prototype or “alpha” system that can then be tested for quality assurance
- testing is actually begun during the development stage and are performed together
b. main actors: programmers, testers
- Testing
a. users try out the system, find bugs, and see if they can break it and provide feedback to the development team in order to refine the system
- testers have to be creative and try to break into the system (system penetration testing or white hat)
b. main actors: testers, programmers
Types of testing:
- unit
- integration
- system
- user acceptance
unit testing
do individual components of the code work properly?
EX: if i click “submit” does my information get stored?
integration testing
test whether individual units work together properly
system testing
does the entire system of groups of units work properly, occurs after integration
user acceptance testint
doe the end user actually use this system the way it is intended, in a manner that allows them to perform their job successfully and will be continually followed by the user after nobody is looking over them
- Implementation
a. when the system is ready to be delivered to the users/customers to “go live” - handle real transactions
- must train users how to use the new system
Approach to implementation
direct conversion
parallel conversion
phased conversion
pilot conversion
direct conversion
switch from the old system to the new one “overnight”
parallel conversion
continue to run the old system until the new one is activated & working
phased conversion
activate the new system one module at a time
pilot conversion
activate and test the new system in one branch of an organization, then implement it in other branches once the pilot branch has figured out all the bugs
- Maintenance
a. includes support for the system even after implementation
- if an error is discovered, the development team will fix it
- if new features are requested, the development team can negotiate for developing the new features
make
the organization will write the software code - or some portion of it - themselves using their own programmers
build
organization will fire an external consulting company to build the system, or some portion of it, for them
buy
the organization will buy some off the shelf software to meet their needs
Consider Advantages/Disadvantages
- availability of commercial packages
- availability of competent personnel
- risk of losing sensitive information
-if not unique, most likely a “commercial off the shelf” (COTS) package
SDLC Methodologies
- waterfall
- agile
waterfall
moves through each of seven phases above in linear, step order fashion in which each phase is executed only once in its entirety
pros: low cost, if everything goes right
cons: if you get to user acceptance and it’s clear the system isn’t going to work back to the beginning
therefore, if a) you expect your requirements to change over time for whatever reason b) can’t adequately gather your requirements in a single effort then consider agile
agile
approaches such as rapid application development (RAD), and Extreme programming (XP) approaches iterate repeatedly through frequent design/develop/test/redesign cycles in order to prototype as often as possible to quickly work out kinks and bugs
quality constraints
These three variables are interdependent
You cannot change one without changing the others
For example, decreasing a project’s timeframe means either increasing the cost of the project or decreasing the scope of the project to meet the new deadline
Increasing a project’s scope means either increasing the project’s timeframe or increasing the project’s cost – or both – to meet the increased scope changes
Project management is the science of making intelligent trade-offs among time, cost, and scope
Reasons for Systems Development Problems
- Important Business Requirements Unclear or Missing
- Skip SDLC Phases
- Failure to Manage Project Scope
- Poor project management
- Changing Technology
Principles of Successful Development
- Keep the Budgets small
- If it doesn’t work, kill it
- Keep requirements to a minimum
- Test and Deliver Frequently
- Assign NON-IT execs to software projects
- [Ask the “dumb” questions]