Build using some kind of process either formal or informal
Process includes stages called phases
Phases are related to each other and forms a model
The model the team uses to manage development in its lifecycle
Model diagrams
The Waterfall Method
Pros
easy to understand and use
works for smaller projects
Cons
working software isn’t available until later stages
difficult for large complex projects
changes are expensive
Iterative model
Pros
Not every detail of the requirements need to be known at start
See functioning software before end of project
Less time spent documenting
Cons
Each phase in iteration is rigid
Can be surprises that are costly in late stages
Can be less documented
Incremented model
Pros
Working software available at end of life cycle
Each completed module integrates with previous ones
Flexible allows for evolving details
Cons
Requires good planning and design to fit modules together
Entire system must be planned out before start to break it down
Some Other Models
V Model
Spiral Model
Prototype Model
Rapid Application Model (KAD)
Software Requirements
Requirements provide
Communication bridge between what the customers want and the team who implements the application
Definition for the scope of development project needed to help solve a problem
Requirements management
Needs to be managed at every stage of software development in order to ensure that they are still correct and valid
Requirements in waterfall model
Need to be set up front and most part, cannot change when using waterfall method
Requirements in agile
When requirements change they can be incorporated easier into development cycle
Development requirements
-The first step involved in developing requirements is to seek them out using
the following sources:
• Subject Matter Experts (SMEs)
• Domain knowledge
• Stakeholders within the company
• Business Rules
• Operational Environment
• Customers / Customer Facing Individuals
Techniques for requirement gathering
• Interviews / Hall Testers
• Scenario simulations
• Proof Of Concepts
• Prototypes
• Brainstorming Meetings
• Competition Analysis
• User Stories
Requirement classification
• Functional vs. Non-Functional
• Derived from higher level requirements
• Product or process / workflow related
• Of a certain priority for the customer
• Constrained by scope
• Volatile or changing
Requirement analysis
-The Software products we develop may consist of many moving parts-Each with its own set of functions hat contribute to the overall system.
-To be able to design and develop and implement, test products we need to know exactly ho these parts co-exist and details around the overall operation known as “Operational Analysis”
Why analyze Requirements?
Detect and resolve any inconsistencies between requirements
Discovery any limitations associated with the software application
Further elaborate / define the system requirements to properly support the
software related requirements.
The two important terms in the process of development
VALIDATE
Validate by checking the program against the published system or user
VERIFICATION
Verify by checking it against closely related design documents or specifications.
ASK: did you build it correctly?
Test oracles
Test Heuristics
• “Things to try”
• Based on testing experience
• “Things we know” or “Things we
compare with”
• Based on domain knowledge
• 2b: an authoritative or wise expression or answer
“An oracle is a mechanism for determining whether the program has passed or failed a test.”
Mechanisms
A reference program
• A standard of behavior, either
formal or common enough to be
expected
• A specification document
Why use heuristic?
“Where finding an optimal solution is impossible or impractical,
heuristic methods can be used to speed up the process of finding a
satisfactory solution.
Mental shortcuts that ease the cognitive load of decision making
Using heuristics
We can apply CRUD when testing music player playlists
• Create: - new playlists; new songs added to a playlist
• Read: - view all the playlists; view all songs in a playlist
• Update: - rename a playlist; change songs in a playlist; change order
• Delete: - delete a playlist; remove a song from a playlist
Extra Week Three Content Notes
Scrum aka Scrummage
-Allows team to adapt and change based on how things are going or what you have done so far.
-perusing small goals and deliverables that will get the project done.
-allowing teams to self organize
Scrum Framework
-Product owner prioritizes a backlog of work
-team decide what work an be time given the time usually 2 weeks.
-team tests and develops solution.
-demonstration of work done in two weeks
The Agile Manifesto
Principles behind the Agile Manifesto
We follow these principles:Our highest priority is to satisfy the customerthrough early and continuous deliveryof valuable software.Welcome changing requirements, even late indevelopment. Agile processes harness change forthe customer's competitive advantage.Deliver working software frequently, from acouple of weeks to a couple of months, with apreference to the shorter timescale.Business people and developers must worktogether daily throughout the project.Build projects around motivated individuals.Give them the environment and support they need,and trust them to get the job done.The most efficient and effective method ofconveying information to and within a developmentteam is face-to-face conversation.Working software is the primary measure of progress.Agile processes promote sustainable development.The sponsors, developers, and users should be ableto maintain a constant pace indefinitely.Continuous attention to technical excellenceand good design enhances agility.Simplicity--the art of maximizing the amountof work not done--is essential.The best architectures, requirements, and designsemerge from self-organizing teams.At regular intervals, the team reflects on howto become more effective, then tunes and adjustsits behavior accordingly.
Want to print your doc? This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (