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)
What is Extreme Programming?
A methodology that is considered agile and that focuses on communication, timely feedback and a close working relationship between the user and the developer.
It also involves frequent integration and integration tests, pair programming and short iterations.
What are the Extreme Programming Rules?
- Planning
- Managing
- Designing
- Coding
- Testing
What are the roles in Extreme Programming?
Customer: Writes user stories, functional tests
Developer: Estimate stories, define tasks, write unit tests, write code, refactor, continuously integrate
Manager: define/update planning rules, monitor planning, fix deviations, release and iteration planning, monitor progress, track defects
Coach: Ensure application of extreme programming practices in project
What is the Unified Process?
Described by a set of phases and workflows, the Unified Software Development Process or Unified Process is an iterative and incremental software development process framework.
What is the Agile Unified Process?
Describes an approach to software development using agile techniques and concepts yet still remaining true to the unified process.
Includes test driven development (TDD), agile modelling (AM), agile change management, and database refactoring to improve productivity.
What is System Analysis and Design?
Uses a use-case-driven, architecture-centric, iterative and incremental information systems development approach.
What is the Unified Modeling Language (UML)?
A standard set of diagramming techniques that provide a graphical representation rich enough to model any systems development project from analysis through implementation.
What is a Data Flow Diagram?
A data flow diagram (DFD) is a graphical tool that
allows system analysts (and system users) to
depict the flow of data in an information system.
What three things does a context diagram show?
- All external entities
- Entities must be nouns, not verbs.
- The major information flows between the external entities and the system.