SWE 3313 Midterm part 2
List three of the typical kinds of nonfunctional requirements.
Performance - how much time it will take to read input or to sort a file.
Real-time - processing needs to be performed in a specific amount of time. There is also a need to choose an algorithm with the best worst case performance.
Modifiability - this is defined as the life expectancy of the program. Modifiability is also used if you plan to modify the program in the future.
a description of what tasks needs to be performed in what sequence under what conditions by whom to achieve the "desired results"
process model
reason for having a process model
to provide guidance for a systematic coordination and controlling of the tasks and the personnel who perform the tasks
- Waterfall: earliest process and coping with no process
- Incremental: coping with decomposing the large systems
- Spiral: coping with risk management
- Rational Unified Process: coping with multiple development and management issues
recognition of the need for formal processes
1. requirements must be specified
2. four main tasks must be completed in sequence: requirements, design, code, and test, followed by integration
3. output of one stage feeds into the next stage in sequence and thus is easily tracked by management
waterfall model
1. each "major requirement/item" is developed separately through the same sequence of: requirement, design, code, and unit test
2. as the developed pieces are completed, they are continuously merged and integrated into a common bucket for integrated system test
3. each small set of requirements is developed, packaged, and released in a multiple release fashion
incremental model
- software development model designed to control risk
- a "risk-averse" process first proposed by Barry Boehm
spiral model
Provides a framework for breaking down the development of software into four phases:
1. Inception
2. Elaboration
3. Construction
4. Transition
rational unified process (rup)
1. initial
2. repeatable
3. defined
4. managed
5. optimizing
original "capacity maturity model" (CMM)
The set of generic and specific conditions for permitting a process to go forward with a defined task, e.g. test phase. The purpose of entry criteria is to prevent a task from starting which would entail more (wasted) effort compared to the effort needed to remove the failed entry criteria.
entry criteria
The set of generic and specific conditions, agreed upon with the stakeholders for permitting a process to be officially completed. The purpose of exit criteria is to prevent a task from being considered completed when there are still outstanding parts of the task which have not been finished. Exit criteria are used to report against and to plan when to stop testing.
exit criteria
- Staged: similar to the CMM assessment of organization
- Continuous: better for assessing maturity of each process
two representations of CMMI
There are 25 processes covering 4 major categories. Those major categories are...
Process Management, Project Management, Engineering, Support
a family of software development methodologies that produce software in short iterations and allow for greater changes in design.
agile processes
1. short releases and iterations
2. incremental design
3. user involvement
4. minimal documentation
5. informal communication
6. change
(pg. 84)
agile methods
1. lengthy development times
2. inability to cope with changing requirements
3. assumption that requirements are completely understood before the project begins
4. too much reliance on heroic developer effort
5. complex methodology
6. waste/duplication of effort
(pg. 85)
problems with traditional software processes
- frequent communication
- simplicity
- feedback at many different levels
- courage to implement hard but necessary decisions
core values of XP
1. rapid feedback
2. simplicity
3. incremental change
4. embracing change
5. quality work
fundamental principles of XP
1. planning
2. short releases
3. metaphor
4. simple design
5. test-driven deployment
five XP practices
- use larger methodologies for larger teams
- use heavier methodologies for more critical projects
- give preference to lighter methodologies, because weight is costly
- give preference to interactive, face-to-face communication rather than formal, written documentation
- understand that people vary within a team and with time
- assume that people want to be good citizens
factors the Crystal family considers