Comp 480 Final Exam Review
Chapter 24: Project
Management Concepts
Focus
of Software Project Management
People
Product
Process
Project
The
People
Who’s
involved?
Software
Team
Closed
paradigm
Random
paradigm
Open
paradigm
Synchronous
paradigm
What
are the differences?
Under
what circumstances would you pick one over the others?
The Product
Determination
of software scope
Problem decomposition
The
Process
Selection of an
appropriate process
Process
decomposition
The Project
What
management activities are needed for a successful project?
Chapter 5: Understanding
Requirements
Requirements
engineering
Inception
Elicitation
Problems
of scope
Problems
of understanding
Problems
of volatility
Elaboration
Negotiation
Specification
Validation
Requirements
management
Identifying
stakeholders
Gathering
requirements
Developing
use cases
Negotiating
requirements
Modeling
and documenting requirements
Validating
requirements
Chapter 26:
Estimation for Software Projects
Establishing
project scope
Estimating
resources required
Human
resources
Reusable
software resources
Environmental
resources
Estimation techniques
Decomposition
Problem
based (using LOC or FP)
Process
based
Use-case
based
Empirical
models
The general
form
The
COCOMO model
The
software equation
Chapter 27: Project
Scheduling
Basic
Principles
Compartmentalization
Interdependency
Time
allocation
Effort
validation
Defined
responsibilities
Defined
outcomes
Defined
milestones
Relationship
between people and effort
The software equation
A
Task Set
Work
tasks
Milestones
Deliverables
Types
of projects
Concept
development
New
application
Application
enhancement
Application
maintenance
Reengineering
Scheduling
Task network charts
Task
flow
Critical
path
Timeline
(Gantt) charts
Chapter 28: Risk Management
Characteristics
of Software Risk
Uncertainty
Loss
Risk
Identification
Product-specific
risks
Generic
risks
Risk
Impact
Risk
Projection
Probability
Impact
The
RMMM Plan
Risk Mitigation
(avoidance)
Risk Monitoring
Risk
Management (and contingency planning)
Chapter
8: Design Concepts
Levels of Design
Data/Class Design
Architectural Design
Interface Design
Component-Level Design
Design Diagrams/Models
Scenario-based
Use cases –
text
Use case
diagrams
Activity
diagrams
Swimlane diagrams
Class-based
Class
diagrams
Analysis
packages
CRC models
Collaboration
diagrams
Flow-oriented
Data flow
diagrams
Control-flow
diagrams
Processing
narratives
Behavioral
State
diagrams
Sequence
diagrams
Guidelines for a Quality Design
Design Concepts
Abstraction
Architecture
Patterns
Separation of Concerns
Modularity
Information Hiding
Functional Independence
Refinement
Aspects
Refactoring
Object-Oriented Design
Concepts
Classes and
objects
Inheritance
Messages
Polymorphism
Encapsulation
Coupling and Cohesion
Chapter
11: User Interface Design
The Golden Rule
Place the user in
control
Reduce the user’s memory
load
Make the interface
consistent
User Interface Design Process
Interface analysis and
modeling
Interface design
Interface construction
Interface evaluation
Chapter
25: Process and Project Metrics
Software Measurement
Size-oriented metrics
Function-oriented
metrics
Object-oriented metrics
WebApp
project metrics
Metrics for Software Quality
Measurements for:
Correctness
Maintainability
Integrity
Usability
Defect Removal
Efficiency
A Software Metrics Program
Chapter
14: Quality Concepts
What is Software Quality?
Quality Factors
Functionality
Correctness
Reliability
Usability
Integrity
Efficiency
Maintainability
Flexibility
‘ Testability
Portability
Reusability
Interoperability
User Interface Quality Attributes
Intuitiveness
Efficiency
Robustness
Richness
What is the Software Quality Dilemma?
The Cost of Quality
Prevention costs
Appraisal costs
Failure costs
Internal
External
Achieving Software Quality
Software Engineering
Methods
Project Management
Techniques
Quality Control
Quality Assurance
Chapter
16: Software Quality Assurance
Elements of Software Quality
Assurance
Standards
Reviews and Audits
Testing
Error/Defect Collection
and Analysis
Change Management
Education
Vendor Management
Security Management
Safety
Risk Management
What is Statistical Software Quality
Assurance?
Measures of Reliability and
Availability
MTBF = MTTF + MTTR
Availability = (MTTF/(MTTF+MTTR))x100%
Six Sigma for Software Engineering
The ISO 9000 Quality Standards
Chapter
15: Review Techniques
The Cost of Software Defects
Defect Amplification
Defect Removal
Cost Effectiveness of Reviews
Informal Reviews
Desk Check
Casual Meeting
Pair Programming
Formal Reviews
Walkthroughs
Inspections
Round Robin Reviews
Chapter
17: Software Testing Strategies
Verification and Validation
Testing Strategies
Unit Testing
Integration Testing
Regression Testing
Smoke Testing
Validation Testing
Acceptance
Testing
Alpha
Testing
Beta
Testing
System Testing
Recovery
Testing
Security
Testing
Stress
Testing
Performance
Testing
Debugging
Why is it difficult?
Strategies
Brute force
Backtracking
Deduction
Induction
Writing
User Documentation
Break
down the documentation by task
Plan
for an audience
State
the purpose of the document
Organize
the documentation
Develop
a product visualization
Pick
the appropriate medium
Decide
on a page format and layout
Design
for ease of editing
Sample short
answer questions:
1.
Explain
the concept of information hiding in
software design?
2.
Give
an example of a user interface feature that “reduces the user’s memory load”.
3.
What
is meant by software validation?
4.
With
respect to software quality management, what is meant by “quality control”.
5.
Identify
five quality attributes of software.
6.
Describe how you would design your user
documentation to make it easy to change?
7.
What is regression testing?
8.
Explain the backtracking strategy in
debugging?
9.
Give one of the main differences
between software walkthroughs and software inspections?
10.
What metric(s) would you use to measure
the reliability of a software system?
Sample essay
questions:
1. Suppose
you worked for a software company that did not have a process for reviewing the
software designs or code produced by individual developers before formal
testing. What arguments could you use to
try to convince your company's management to change the process to include
reviews as a routine practice, and what kind of a review process would you
recommend? That is, what are the advantages of design and code reviews, and how
would one begin to implement a change to incorporate reviews?
2. Explain
how measurement can be used to improve product quality. That is, identify what metrics you would use,
and how you would use the information obtained to improve product quality.
3. Suppose
that you have been appointed as a project manager for a small software products
company. Your job is to build a
breakthrough product that combines virtual reality hardware with
state-of-the-art software. Because competition
for the home entertainment market is intense, there is significant pressure to
get the job done quickly. What team
structure would you choose and why? What
software process model(s) would you choose and why?
4. Suggest some practical methods by which a
manager can monitor compliance with costs and schedules defined in the Software
Project Plan.
5. Can a program be correct and still not
exhibit good quality? Explain your answer.
6. Aside from finding errors what are
additional objectives of testing?
7. Explain
how software measurement can be used to improve the accuracy of estimates in
future projects. That is, specifically
identify the metrics you would use, and how you would use the information
obtained to improve the quality of the estimation process in the future.
8. For
one of the user interface design principles, describe how the system your team
is developing has been designed to ensure that this principle is being
followed? That is, identify one of the
design principles for user interfaces and identify the planned features or
functions of your system that support it
9. How do you know when you have done
enough testing for a software product?
10. Suppose
one of the significant risks for a software project that you are managing is
that many of the software engineers assigned to the project are not familiar
with the programming language you are required to use. (E.g., you can assume that the project is
being developed for the Department of Defense, and they require that Ada be used as the programming language.) Even though the company may have some expert Ada developers, these individuals are in short supply, and
only a small number have been assigned to your project. Develop an RMMM plan for this risk. In particular, specify what steps you would
take to try to mitigate the risk, how you would monitor the situation, and what
your contingency plan would be if it appeared that a lack of Ada knowledge was adversely affecting the project cost or
schedule.