week 1 - software design methodologies Flashcards
What does SDLC stand for?
System Development Life Cycle
What is System Development Life Cycle (SDLC) a process of?
Understanding how an information system (IS) can support business needs by designing a system, building it, and delivering it to users.
Ex. payroll system, library system and human resources information system
What type of development strategies can System Development Life Cycle (SDLC) do?
Structured or unstructured.
What is a methodology?
A formalized approach to implementing the System Development Life Cycle (SDLC).
What things are used to develop software?
Cost, Scope, Time and Quality
What are some software methodologies?
Waterfall, Agile, Iterative Unified Process
What is the Waterfall Model?
Moves from one phase to the next by completing each phase entirely.
It is heavy on documentation.
Difficult to move backwards or iterate.
What is Rapid Application Development (RAD)?
Rapid Application Development involves prototyping in order to reduce the amount of time it takes to get the product to the customer.
It takes an iterative approach (ex, people make a prototype, get user feedback and then adapt it by going back and making changes)
What is the agile model?
Agile is the ability to create and respond to change. It is an adaptive model which is responsive to change.
What are some agile values?
Individuals and interactions over processes and tools.
Working software over comprehensive documentation.
Customer collaboration over contract negotiation.
Responding to change over following a plan.
Agile software development includes what?
Frameworks such as Scrum, Extreme Programming, or Feature-Driven Development (FDD).
It espouses practices such as pair programming, test-driven development, stand-ups, planning sessions and sprints.
What are some shortfalls to agile?
- One size fits all lifecycle (so difficult to scale)
- Does not care about risks
- Geared towards centralized teams
- Low documentation
What is Scrum?
A lightweight framework that helps teams generate value through adaptive solutions for complex problems. Daily Scrum meetings attended by the product owner, ScrumMaster and the entire Scrum team to discuss requirements and plan short sprints.
What is Extreme Programming?
A development framework that aims to produce higher quality software, and higher quality of life for the development team. Uses the concept of pair programming to enhance quality and reduce effects.
What are the roles in Scrum?
Product Owner: the person who’s ultimately
responsible for the product and must relay the vision
accurately to developers
Scrum Master: Kind of like a development
lead, who liaises between the team members and the
product owner, coordinating activities
Team Members: all with
different roles (QA, architect, developer)