Exam 2 Study Flashcards
Software Process
A general term describing the over-arching process of developing software.
What are the five elements of the Software Process?
Requirements Gathering Design Implementation Testing Maintenance
What is the primary object-oriented methodology?
The unified process
an adaptive methodology for software construction
Unified Process
The phases of the unified process
requirements workflow analysis workflow design workflow implementation workflow test workflow
What is meant by a phase of the Unified Process?
A phase is a series of smaller steps in a larger process
Who is responsible for the correctness of a product?
SQA Group (Software Quality Assurance)
What are the 5 levels of CMM (Capability Maturity Models)?
- Initial Level
- Repeatable Level
- Defined Level
- Managed Level
- Optimizing Level
What are CASE tools used for?
Software tools that assist software engineering teams in developing and maintaining software.
Democratic Teams
Strengths
High-quality code
good with hard problems
Weakness
senior members may resent appraisals
cannot be externally imposed
Classical Chief Programmer Teams
Strength
Major success of The New York Times project
Weakness
Impractical
Modified Chief Programmer Teams
Strength
Many Successes
Weakness
No successes on a large scale
Modern Hierarchical Programming Teams
Strengths
Team Manager structure eliminates the need for a chief programmer
scales up
supports decentralization when needed
Weakness
Problems can arise unless areas of responsibility of the team manager and the team leader are clearly delineated
Synchronize-and-stabilize teams
Strength
Encourages creativity
Ensures that a huge number of developers can work toward a common goal
Weakness
No evidence so far that this method can be utilized out side of microsoft
Agile Process Teams
Strengths
Programmers do not tes their own code
Knowledge is not lost if one programmer leaves
Less-experienced programmers can learn from others
Weakness
Still too little evidence regarding efficacy
Open-Source Teams
Strength
A few projects are extremely successful
Weakness
Narrowly applicable
Must be led by a superb motivator
Require top caliber participants
Name the 7 types of Team Organizations
Democratic Teams Classical Chief Programmer Teams Modified Chief Programmer Teams Modern Hierachical Programming Teams Synchronize and Stabilize Teams Agile Process Teams Open-Source Teams
What is Brook’s Law?
Adding manpower to a late software project makes it later
Pair Programming Advantages and Disadvantages
Strengths
Team members benefit from each others experience
Programs have fewer bugs
Weaknesses
requires large blocks of uninterrupted time
does not work for shy or overbearing programmers
S.P.I.C.E
Software Process Improvement Capability Determination
ISO 9000
International Organization for Standardization ISO9000
Version Control Tool
A tool that help maintain multiple version of an artifact
Configuration Control Tool
A tool that tracks and controls revisions
Walkthrough vs Testing
Testing takes less time and has few steps
Failure
A fault as it is observed by a user
Fault
a mistake in the software caused by a human
Fault Density
A metric to measure the ratio of faults. Such as faults per 1000 lines of code.
CMM: Maturity Level 1: Initial Level
No sound software engineering management practices
Most cost and time overruns
Little planning
Team constantly responding to crisis
CMM: Maturity Level 2: Repeatable Level
basic project management practices in place
planning and management based on experience
team begins to gather metrics
Respond to problems as they arise
CMM: Maturity Level 3: Defined Level
Fully documented processes
Reviews are used to achieve quality goals
Should Introduce Case Tools
CMM: Maturity Level 4: Managed Level
Set quality and productivity goals for all projects
Continual measurement and review of metrics
Statistical Quality Controls
CMM: Maturity Level 5: Optimizing Level
Continuous process improvement
Statistical quality and process control techniques
Incorporate positive feedback loop
Effort
a metric measured in person per month
Duration
a metric to determine an amount of time
Verification
the process of determining whether a workflow has been correctly carried out
Validation
an intensive evaluation process that ensures a product is ready to be delivered to a customer
Correctness Proof
a mathematical technique for showing that a thing is correct, or that is satisfies specifications
Correctness
The degree to which the product satisfies specifications
Performance
response times and space
Robustness
Robustness is a softwares ability to cope with errors during execution and or erroneous input.
Reliability
the frequency of critical failure
Utility
The extent to which the user’s needs are met