Software Engineering
What affects the complexity of software probably more than any other factor?
Size
Each iteration of the spiral model consists of the following steps:
1) Identify critical product objectives and constraints 2) Evaluate project/process alternatives that could be used to achieve objectives 3) Identify risks 4) Resolve a subset of risks 5) Plan for future cycles by updating the project plan 6) Have stakeholders review iteration deliverables and determine whether to proceed
Several software engineering principles are listed in the text book. They are:
1) Make quality number 1 2) High-quality software is possible 3) Give products to customers early 4) Use an appropriate software process 5) Minimize intellectual distance 6) Inspect code 7) People are the key to success
The activities within a software development project can include:
1) Planning 2) Requirements elicitation (i.e. identifying requirements) 3) Determining how the software should be constructed to address the requirements 4) Implementing the software 5) Evaluating the quality of the work products
Which of the following could cause a software project to be unsuccessful?
1) Poor estimates of necessary development time 2) Managers failed to identify and manage risks 3) Unrealistic project goals 4) Poor communication among developers, customers and users 5) Inability to recognize and manage the complexity of the system
A software project would be unsuccessful if:
1) The project is over-budget and/or misses its scheduled release date 2) The performance of the software fails to meet expectations 3) The system is difficult to use 4) The quality of the software is too low 5) The system does not meet the requirements identified by the customer
During development, the FBI Virtual Case File system was abandoned after ____ dollars had been spent. As a result, ____ lines of code were also abandoned.
170 million 700,000
The NATO conference that coined the term "software engineering" occurred in the year ___
1968
Explain the difference between a software process and a software process model.
A software process is a certain framework for carrying out the activities of a project in an organized and disciplined manner. A software process model is a specific software process implementation such as the waterfall process.
Chapter 3 describes the various ____ that occur withing the development phases. Then it describes various kinds of software process ____ .
Activities Models
For software, detailed design usually identifies particular ____ and data ____.
Algorithms Structures
Software design is normally considered in two levels: The ____ and the ____ design.
Architecture Detailed
The "product" of a software development effort includes more than source code -- and more than documentation. It also include test plans/results, and productivity measurements. All of these products are called "work products" or ______________.
Artifacts
The sprint backlog represents the "to-do" list for the sprint. It represents a subset of the product ____ and it represents only those items for which the team has made a specific ____ . For each item in the sprint backlog, the team identifies a set of specific that will be used to implement the user story. A task board is typically used to represent the status of the sprint. Each row on the board is associated with a particular ____ . Within a row each of the tasks is classified as "to do", "in progress", or ____ .
Backlog Commitment Tasks User story Done
To use a house analogy, software architecture is analogous to the overall ____ for a house and detailed design is analogous to details of the plumbing and wiring.
Blueprints
Compare and contrast (i.e., identify similarities and differences based on a "point of comparison") the spiral model with the Unified Process.
Both of the models involve several iterations; however, the goals for each iteration differs between the two processes. In the Spiral model, each iteration is designed to lower the degree of risk while increasing the degree of definition and implementation in the project. For the Unified Process, each iteration is build on the core architecture of the project while redefining project plans and requirements before the construction phase.
The Scrum diagram that show "what is left to do" is called a ____ chart. The horizontal axis is associated with ___ and the vertical axis indicates how much has been ___ , usually in terms of effort. The amount of effort on "day zero" represents the total amount of ____ that has been estimated for the sprint. The far-right point on the horizontal axis indicates when the sprint will ____ .
Burn Time Completed Effort Finish
For the spiral model, project starts at the ____ and each cycle of the spiral represents one ____ .
Center Iteration
When I am tracking changes to artifacts or dealing with multiple versions of artifacts, I am engaged in ____________ management.
Configuration
When the Unified Process (UP) is used, the system (as a whole) is tested during the ___________ phase.
Construction
For the spiral model, the goal of each cycle is to increase the degree of system ____ and ____ , while decreasing the degree of ____ .
Definition Implementation Risk
For the Unified Process (UP), requirements [elicitation], analysis & design, deployment are called _______________.
Disciplines
In the Unified Process (UP) requirements analysis or testing are considered ____ . Whereas inception is a ____ .
Disciplines Phase
When the Unified Process (UP) is used the core architecture is usually implemented iteratively during the ______________ phase.
Elaboration
Software engineering is equivalent to "writing high-quality software" (T/F)
False
The Unified Process (UP) assumes that most requirements are known at the start of the project. (T/F)
False
The spiral model is not good for large-scale software projects. (T/F)
False
Things have greatly improved since the NATO conference of 1968. Today very few large software projects end in disaster. (T/F)
False
The Ariane 5 was purposely exploded, only 40 seconds after launch, because a floating point operation caused an Operand Error. The function in which this occurred was "correct". So, what was the source of the problem?
Having too many people involved in a large project. This makes it prone to simple errors such as this. Terrible functional requirements.
Each user story should:
Identify the user (or users) who will benefit Describe the desired functionality State why it is valuable Estimate how much work would be required to implement it State the acceptance requirement
In your own words, explain how the spiral model utilizes risk analysis and risk mitigation.
In each iteration, project risks are identified and analyzed and a plan for the iteration is created that includes mitigating some or all of the risks.
In which of the UP phases are project risks considered?
Inception Elaboration Construction Transition
In which of the UP phases can requirements be discovered/identified?
Inception Elaboration Construction Transition
The waterfall model begins with the requirements phase -- it does not include ____ or ____ phases. Each phase is represented by the production of a ____ , e.g., a requirements specification after the requirements phase.
Inception Planning Document
Name the four UP phases, in the order that they would be used:
Inception Elaboration Construction Transition
Testing is performed at three levels:
Individual modules are tested by developers Several modules are integrated then tested that they cooperate correctly After all of the modules are integrated then the entire system is tested.
In addition to programming, the implementation phase usually involves ____ , i.e., the assembly of the various software parts into an entire system.
Integration
For iterative development, a self-contained min-project is called an [1] -- something with a well-defined outcome.
Iteration
Iterative and incremental development recognizes that software is more naturally developed in a ____ manner, where part of the system is developed and tested, ____ is gathered, and based on the feedback more of the system is developed.
Iterative Feedback
The Unified Process was originally conceive for projects whose size is ____ , consequently it might be overkill for projects whose size is ____ .
Large Small
Scrum is a ___ software process, as opposed to a "heavy" process that is document-driven. It's mantra is ____ and ____ , which means that the process intentionally tries to improve both the product and the process during development.
Lightweight Inspect Adapt
The stakeholders who are responsible for monitoring the progress of a project -- as well as establishing the schedule and budget -- are the project ________________.
Managers
Software process models typically differ in terms of the ____ and ____ of the phases.
Order Frequency
One of the advantages of incremental development is that it allows several iterations to be developed in ____.
Parallel
Work on a prototype usually occurs in ____ with regular work. The risks are ____ and the elements with the highest risk are constructed first.
Parallel Prioritized
What are the four P's of software engineering? (Recall them without consulting the book.) Briefly describe each.
People - Project stakeholders. Product - The software product plus associated documents. Project - The activities carried out to produce the product. Process - Framework within which the team carries out the activities necessary to build the product.
A software process identifies when activities should be performed during software development. It usually identifies different ____ , how they are ordered, how frequently they occur, and the project ____ .
Phases Deliverables
Typically a software project is organized into ____ . The software process describes how these phases are related in terms of order and ____ . Also, the process identifies the ____ plus the ____ for moving from one phase to the next.
Phases Frequency Deliverables Criteria
If I am trying to determine whether it is feasible to develop a product, then I am in the _________________ phase.
Planning We will assume that feasibility is determined during the inception phase (which is consistent with the Unified Process). Note: This differs from the general definition of inception in the text).
In scrum, this person initiates user stories
Product owner
In scrum, this person owns the product backlog
Product owner
In scrum, this person prioritizes items in the product backlog
Product owner
In scrum, this person represents customer and stakeholders
Product owner
Name the three scrum roles:
Product owner Scrum master Team member
A working version of software that targets a particular capability (e.g., the graphical user interface) that is associated with high risk is called a ____ .
Prototype
What is an important risk management technique?
Prototyping
When I am determining what a customer wants and needs I am engaged in ____ analysis. This is done at a more detailed level compared to what is done during the ____ phase.
Requirements Inception
Identify the phases of the waterfall model, in the order in which they would occur: ____ , ____ , ____ , ____ , and ____.
Requirements Design Implementation Testing Maintenance
There are several disadvantages associated with the waterfall model. Please be familiar with all of them listed in the text. Some of these are:
Requirements must be known "on day one" No feedback until after the testing phase Difficult to estimate cost and schedule
Any potential event or situation that can adversely affect the success of the system is considered to be a ____ .
Risk
Explain why the outer spiral of the spiral model utilizes the waterfall process, and how the spiral model mitigates the inherent disadvantages of the waterfall process.
Risks are reduced before they become problematic. By the time of the last iteration, the risks are inherently smaller while the degree of definition and implementation are increased. This makes it easier to implement the waterfall process while mitigating the inherent disadvantages.
During the inception phase the major functions and the project ____ are identified. In addition, target ____ and market segments are identified.
Scope Customers
In scrum, this person coaches
Scrum master
In scrum, this person facilitates
Scrum master
In scrum, this person is a peer within the team
Scrum master
In scrum, this person is set apart by knowledge and responsibilities, but not by rank
Scrum master
A Scrum team usually consists of about ____ people, "plus or minus". (Another reference suggests that the team should be based on how many people two pizzas would feed. Too many people, too many pizzas.) In Scrum parlance, when a team works in short, sustainable bursts it is called a ____ .
Seven Sprint
When using the Unified Process (UP), each iteration is usually relatively __________.
Short
Similar to protoypes, feasibility studies allow developers to determine whether particular requirements can actually be implemented. A feasilibity study can involve a partial implementation or a ____ .
Simulation
The main document produced during the planning phase is called the ____________.
Software Project Management Plan
The document that serves as input to the design phase is the formal __________________.
Software Requirements Specification
Q: Which process model is good at identifying risk early and throughout the process? A: The [1] model.
Spiral
The software architecture identifies the ____ (or modules) and software ____ among them.
Subsystems Interfaces
In scrum, this person completes user stories
Team member
In scrum, this person creates and owns estimates
Team members
IEEE definition of Software Engineering
The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software.
The number of iterations in the spiral model is determined by
The size of the project The number of risks identified The rate at which risks are removed or mitigated
Compare and contrast the waterfall model with the sprial model.
The waterfall model may incorporate feedback loops as the definition and requirements of the project are better described. For the spiral model, rather than going through a single cycle, the model iterates in a "spiral". Each iteration of the spiral is designed to analyze and mitigate the risk of the project as the definition and the implementation of the project moves along
Each UP phase consists of one or more iterations. (T/F)
True
Each phase of the UP may involve multiple iterations.(T/F)
True
Feedback is allowed to occur within the waterfall model.
True
Figure 3.11 shows the relative cost associated with each discipline with respect to time. (T/F)
True
For an agile process, the documentation that is produced may be of questionable value. (T/F)
True
For the Unified Process (UP) a discipline may occur during more than one phase. (T/F)
True
In the sprial model, it is possible that the project could be cancelled at the end of any iteration. (T/F)
True
Software engineering is concerned with completing a project within budget and within schedule. (T/F)
True
The Unified Process uses the term "phase" differently compared to common usage. (T/F)
True
The radiation overdose example illustrates how time-related issues in software can be very difficult to detect. (T/F)
True
People who have a vested interest in the development and use of a software system are called stakeholders. (T/F)
True.
Poor programming skills is not listed in Section 1.3 as a reason why software projects are unsuccessful. (T/F)
True. This question does not imply that programming skills are unimportant. However, it does say that factors that cause project fail are "other more important factors" -- factors that you may not consider until you are in an actual production environment. In other words, knowing how to write "good code" is not sufficient for project success.
During which process phase(s) would each of the following activities occur? Creating a project schedule Determining the need for a bar code reader Reqesting the addition of a file backup capability Performing a feasibility analysis Documenting the software interface to an SQL database Acceptance of the sofware application by the customer
UPDATEME
In any project there is a set of generic activities that the authors call ____ activities. For example, risk management is one of these generic activities. Other generic activities are ____ , ____ , and ____ .
Umbrella Project Management Configuration Management Quality Management
The product backlog contains a prioritized list of _______. These backlog items could describe features, bug ____ , documentation ____ , or anything else that takes time and commitment. The highest priority items should be ____ , i.e., specific and limited. Toward the lower end of the list the items will be ____ and much less well ____.
User stories Fixes Changes Small Larger Understood
The simplest software process is called the ____ process (i.e., model). Its phases are executed in a strictly ____ order.
Waterfall Sequential
What analogy was used at the NATO conference to describe how we build [software] systems?
We build systems like the Wright brothers built airplanes - build the whole thing, push it off the cliff, let it crash, and start over again.
Requirements describe ____ the application should do, whereas a design descirbes ____ the software should be built.
What How
Maintenance includes more than fixing ____ -- it also includes enhancements (i.e., adding new features) and adapting the software for new environments. Note: The text is not as clear as it should be on this. Their third reason should be associated with adapting to new environments (rather than simply improving the software).
defects
With the waterfall model, a major problem relates to when testing is performed. Testing is not performed until the ___ of the development cycle.
end
After the FBI Virtual Case File project was abandoned, investigators concluded poorly defined ____ -- in addition to poor networking ____ and poor development ____were to blame.
requirements plans plans