Software Development Flashcards
What does the SDLC represent?
The development of software as phases or sets of activities
What causes the SDLC?
The desire to define a predictable process to improve quality
What does the SDLC involve?
Creating processes that can be effectively managed
What are the 5 broad categories of the SDLC?
- Requirement Analysis
- Design
- Implementation
- Testing
- Evolution
What is Requirement Analysis?
What business/scientific problem is the system addressing?
What will the system do? Who are the users?
What is Design?
Hardware, software and network requirements
What parts are in-house, and what is externally developed or bought of the shelf
What is Implementation
The process of turning a software design into a working system by writing code, integrating components, and deploying it for use.
What is Testing?
The process of evaluating software to ensure it works as expected, is free of bugs, and meets user requirements.
What is Evolution?
Has system accomplished its goals, are there any modifications
Also includes maintenance of the system
What are the 4 Software Development Methodologies?
- Waterfall
- Prototyping
- Rapid Application Development
- Agile Development
What is a Waterfall?
Breaks process down into distinct sequential phases
- Each phase needs sign-off befoore moving to the next
- Leads to very well documented projects
What is Rapid Application Development?
A fast, flexible software development method that emphasizes user feedback, quick iterations, and prototyping over extensive planning.
- Often development deadlinne prioritised over requirements.
What is Agile Development?
A flexible, collaborative software development method focused on delivering small, functional pieces of software quickly and adapting to change.
What is Prototyping?
Creating a simplified, working model of the software to test ideas, gather feedback, and refine before the final version is built.
What are the advantages of Agile Development
- User engagement
- Rapid Development of a usable product
- Early testing catches bugs and results in a high quality product
- Small incremental changes mitigate potential risk of introducing large change to system
What is a Scrum?
A framework within Agile development that organizes work into short, focused cycles called sprints (typically 2-4 weeks) to deliver small, workable software increments.
What is a Sprint planning meeting?
Part of a scrum that focuses on:
- Which items will be worked on
- Identify sprint tasks
- Divide the sprint into timeboxes
What is a Daily scrum meeting?
Part of a scrum that focuses on:
- Summarising previous day’s work and coming day’s work
- Intended to foster collaboration
What is a sprint review meeting?
Part of a scrum that focuses on:
What are the advantages of OOP?
- Encapsulation/information hiding
- Inheritance
- Polymorphism
What is the difference with OOP in comparison to procedural programming?
Puts code into objects, in contrast to procedural programming where no relationships are defined for each entity.
What should classes in OOP include and how does encapsulation sometimes cause issues?
- Classes in OOP should usually be specified to include only code
related to their specific function. - Encapsulation can cause issues with tightly coupled classes that rely
heavily on each other’s members. - This creates a lot of work in designing functions to access those -
members. - These issues are more common in GUI programming.