Software Engineering 7
3) map
A ______ defines the software engineering work by describing the technical tasks to be conducted, the resources that will be required, the work products to be produced and the work schedule. 1) stake 2) case 3) map 4) test
Package of classes
A collection of related classes that work together to achieve some end result
Anchor point milestones
A combinations of work products and conditions that are attained along the path of the spiral - are noted for each evolutionary pass
Template
A consistent method for describing problem solutions within the context of the software process
Software process
A framework for the activities, actions, and tasks that are required to build high-quality software
Process pattern
A process related problem that is encountered during software engineering work, identifies the environment in which the problem is encountered, and suggest s that one or more solutions to the problem
Prescriptive process models
Define a prescribed set of process elements and a predictable process work flow
Incremental model
Delivers a series of releases, called increments that provide progressively more functionality for the customers as each increment is received.
Formal methods
Encompasses a set of activities that leads to formal mathematical specification of computer software Enables you to specify, develop, and verify a computer based system by applying a rigorous, mathematical notation
Component based development
Evolutionary in nature, demanding an iterative approach to the creation of software. However, the _____ model constructs applications from prepackaged software components
Parallel process flow
Executes one or more activities in parallel with other activities (e.g.) Modeling one aspect of the software might be executed in parallel with construction of an other aspect of the software
Evolutionary process flow
Executes the activities in a "circular" manner. Each circuit through the five activities leads to a more complete version of the software.
PSP High level design
External specifications for each component to be constructed are developed and a component design is created. Prototypes are built when uncertainty exists. All issues are recorded and tracked
PSP High level design review
Formal verification methods are applied to uncover errors in the design. Metrics are maintained for all important tasks and work results
4) A clear vision is essential of a software project.
From the following, identify a software engineering principle stated by David Hooker. 1) The audience for any product of software development is potentially small. 2) An industrial strength software system is constructed in a vacuum. 3) A system with a short lifetime has more value 4) A clear vision is essential of a software project.
Task set
Identifies the tasks that are to be completed, the work products that will be produced, the quality assurance points that will be required and the milestones that will be used to indicate progress
PSP Development
The component level design is refined and reviewed. Code is generated, reviewed, compiled, and tested. Metrics are maintained for all important tasks and work results
TSP
The goal of ____ is to build a self-directed project team that organizes itself to produce high-quality software.
Quality Focus
The bedrock that supports software engineering is a __________.
map
A(n) ______, a software project plan, defines the software engineering work by describing the technical tasks to be conducted, the risks that are likely, the resources that will be required, the work products to be produced, and work schedule.
Map
A(n) __________, a software project plan, describes the software engineering work by describing the technical tasks to be conducted, the risks that are likely, the resources that will be required, the work products to be produced, and a work schedule.
conceptual integrity * David Hooker's principles ** (1) The Reason It All Exists - provide value to its user. Ask "does it add real value to the system?" ** (2) KISS (Keep It Simple, Stupid) - all design should be as simple as possible ** (3) Maintain the Vision - A clear vision is essential to the success of a software project. Projects require conceptual integrity ** (4) What You Produce, Others Will Consume - always specify, design, and implement knowing someone else will have to understand what you are doing ** (5) Be Open to the Future - try to solve general problems, and not specific ones ** (6) Plan Ahead for Reuse - Planning ahead for reuse reduces the cost and increases the value of both the reusable components and the systems into which they are incorporated ** (7) Think! - Placing clear, complete thought before action almost always produces better results.
According to David Hooker's principles, without _____ _____, a system threatens to become a patchwork of incomplete designs, held together by the wrong kind of screws.
conceptual integrity
According to David Hooker's principles, without __________, a system threatens to become a patchwork of incompatible designs, held together by the wrong kind of screws.
Reuse
According to the principles proposed by David Hooker, _____ saves time and effort.
Reuse
According to the principles proposed by David Hooker, __________ saves time and effort.
AAT
Activities, Actions, or Tasks
Concurrent development
Allows a software team to represent iterative and concurrent elements of any of the process models described in this chapter
Spiral model
An evolutionary process model that couples the iterative nature of prototyping with the controlled and systemic aspects of the waterfall model Provides the potential for rapid deployment of increasingly more complete versions of the software
D. Software increment
Communication, planning, modeling, construction, and deployment are applied repeatedly through a number of project iterations. Each iteration produces a __________. A. Software feature B. Software decrement C. Software drop D. Software increment
4) Never design yourself into a corner
Identify a statement that is true of David Hooker's fifth principle: Be open to the future. 1) Adopt a vision of work 2) Recognize management as a profession for organization of the processes and for co-ordination of the roles 3) Equip specialized tools for the roles and processes 4) Never design yourself into a corner
2) They should be agile and adaptable
Identify an accurate statement about software engineering processes. 1) All software engineering process should be disposed after using them for the first time 2) They should be agile and adaptable 3) They should not be agile and adaptable 4) They are rigid prescriptions that must be followed dogmatically by software teams.
B. Software configuration management.
Identify an umbrella activity that manages the effects of change throughout the software process. A. Work product preparation B. Software configuration management. C. Re-usability management D. Measurement
4) Once we write the program and get it to work, our job is done 1) Until I get the program running I have no way of assessing its quality 5) The only deliverable work product for a successful project is the working program. * software engineering will make us create voluminous and unnecessary documentation and will invariably slow us down.
Identify statements that are considered as practitioner's myths. (Check all that apply). 1) Until I get the program running I have no way of assessing its quality 2) If we get behind schedule, we can add more programmers to catch up 3) If I decide to outsource the software project to a third party, I can just relax and let the firm build it 4) Once we write the program and get it to work, our job is done 5) The only deliverable work product for a successful project is the working program.
A. The only deliverable work product for a successful project is the working program. B. Once we write the program and get it to work, our job is done. C. Until I get the program running I have no way of assessing its quality.
Identify statements that are considered as practitioner's myths. (Select all that apply.) A. The only deliverable work product for a successful project is the working program. B. Once we write the program and get it to work, our job is done. C. Until I get the program running I have no way of assessing its quality. D. If I decide to outsource the software project to a third party, I can just relax and let that firm build it. E. If we get behind schedule, we can add more programmers to catch up.
4) Communicating (with customer) 1) Planning (map "software project plan") 3) Modeling ("sketch") * Construction (design is built) * Deployment (software delivered to customer)
Identify the activities of the generic process framework for software engineering. (Multiple answers) 1) Planning 2) Thinking 3) Modelling 4) Communicating
B. Planning C. Communicating D. Modeling
Identify the activities of the generic process framework for software engineering. (Select all that apply.) A. Thinking B. Planning C. Communicating D. Modeling
C. Assess software progress. E. Maintain the schedule.
Identify the functions of software project tracking and control in umbrella activities. (Check all that apply.) A. Establish mechanisms to achieve reusable components. B. Uncover and remove errors. C. Assess software progress. D. Define criteria for work and product reuse. E. Maintain the schedule.
1) Keep it Simple, stupid. 2) Maintain the Vision 4) Plan ahead for reuse
Identify the principles proposed by David Hooker in software engineering practice. (Check all that apply) 1) Keep it Simple, stupid. 2) Maintain the vision 3) Focus on frequent delivery of products 4) Plan ahead for reuse
A. Plan ahead for reuse. B. Maintain the vision. D. Keep it simple, stupid.
Identify the principles proposed by David Hooker in software engineering practice. (Check all that apply.) A. Plan ahead for reuse. B. Maintain the vision. C. Focus on frequent delivery of products. D. Keep it simple, stupid.
4) Construction
Identify the process framework activity in which the design of a software is created. 1) Deployment 2) Testing 3) Planning 4) Construction 5) Modeling
1) Always specify design, and implement knowing someone else will have to understand what you are doing.
Identify the statement that is true of David Hooker's fourth principle: what you produce, others will consume. 1) Always specify design, and implement knowing someone else will have to understand what you are doing. 2) A collaborative effort and cooperative approach between software engineers and stakeholders is essential 3) It focuses on the software engineering process and addressing the analysis, and test phases with novel approaches. 4) It concentrates particularly on how to manage tasks within a team-based development environment
B. Management myth
Identify the type of myth shown in the example below. Myth: If we get behind schedule, we can add more programmers to catch up (sometimes called the "Mongolian horde concept"). Reality: If an organization does not understand how to manage and control software projects internally, it will invariably struggle when it outsources software projects. A. Practitioner's myth B. Management myth C. Customers myth D. Programmer's myth
1) Management Myth
Identify the type of myth shown in the example below. Myth: If we get behind schedule, we can add more programmers to catch up (sometimes called the "Mongolian horde concept"). Reality: if an organization does not understand how to manage and control software projects internally, we will invariably struggle when it outsources software projects. 1) Management myth 2) Customers myth 3) Practitioner's myth 4) Programmer's myth
2) Risk Management 4) Measurement 5) Reusability management
Identify the umbrella activities that are applied to a software project. (Check all that apply) 1) Construction 2) Risk Management 3) Modeling 4) Measurement 5) Reusability management
V Model
Illustrates how verification and validation actions are associated with earlier engineering actions
Object-oriented
In David Hooker's principles, the reuse of codes and designs has been proclaimed as a major benefit of using __________ technologies.
object-oriented
In David Hopper's principles, the reuse of codes and designs has been proclaimed as a major benefit using _____ technologies.
quality focus
The bedrock that supports software engineering is a _____ _____.
1) task * process is a collection of activities, actions and tasks that are performed when some work product is to be created. **activity - strives to achieve a broad objective and is applied regardless of the application domain, size of the project, complexity of the effort, or degree of rigor with which software engineering is applied. ** action - encompasses a set of tasks that produce a major work product ** task - focuses on a small, but well-defined objective that produces a tangible outcome
In a software process, a ____ focuses on small, but well-defined objective that produces a tangible outcome. 1) task 2) method 3) risk 4) tool
C. Task
In a software process, a __________ focuses on a small, but well-defined objective that produces a tangible outcome. A. Risk B. Tool C. Task D. Method
(In order) 1) Understand the problem 2) Plan a solution 3) Carry out the plan 4) Examine the result
In the context of software engineering, arrange the steps for problem solving outlined by George Polya in the correct order. (Not in order) 1) Plan a solution 2) Carry out the plan 3) Examine the result for accuracy 4) Understand the problem
3) design
In the essence of software engineering practice, _____ serves as a road map plan for the system that one would want to build. 1) implementation 2) beta-testing 3) design 4) alpha-testing
1) The validity of the results should conform to the data, functions, and required features should be considered. 4) The possibility of testing each component of software should be considered
In the essence of software engineering practice, identify the factors that should be considered while examining the result of software. (Check all that apply) 1) The validity of the results should conform to the data, functions, and required features should be considered. 2) The reusable elements of the solution should be considered 3) The possibility to represent smaller problems that may be easier to understand should be considered 4) The possibility of testing each component of software should be considered
A. The possibility of testing each component of software should be considered. C. The validity of the results that should conform to the data, functions, and required features should be considered.
In the essence of software engineering practice, identify the factors that should be considered while examining the result of software. (Check all that apply.) A. The possibility of testing each component of software should be considered. B. The reusable elements of the solution should be considered. C. The validity of the results that should conform to the data, functions, and required features should be considered. D. The possibility to represent smaller problems that may be easier to understand should be considered.
1. Construction: B 2. Deployment: C 3. Communication: A
Match the process framework activities with its functions. 1. Construction 2. Deployment 3. Communication A. The intent is to understand stakeholders' objectives for the project. B. This activity combines code generation and testing. C. The software as a complete entity or as a partially completed increment is delivered to the customer.
1. Communication: C 2. Planning: A 3. Modeling: D 4. Construction: E 5. Deployment: B
Match the process framework activities with what it states. 1. Communication 2. Planning 3. Modeling 4. Construction 5. Deployment A. A software product can be simplified if a map exists. B. The software as a complete entity or as a partially completed increment is delivered to the customer. C. The intent is to understand the stakeholders' objectives for the project. D. Software engineers create models to better understand software requirements. E. This activity combines code generation and the testing that is required to uncover errors in the code.
1. Understand the problem: D. Communication and analysis 2. Plan a solution: C. Modeling and software design 3. Carry out the plan: A. Code generation 4. Examine the result for accuracy: B. Testing and quality assurance
Match the software engineering practices outlined by George Polya with their activities. 1. Understand the problem 2. Plan a solution 3. Carry out the plan 4. Examine the result for accuracy A. Code generation B. Testing and quality assurance C. Modeling and software design D. Communication and analysis
Aspects
Mechanisms beyond subroutines and inheritance for localizing the expression of a cross-cutting concern Ex. User interfaces, collaborative work, distribution, persistency, memory management, transaction processing, security, integrity, and so on
Communication - The intent is to understand the stakeholders' objectives for the project. Planning - A software can be simplified if a map exists. Modeling - Software engineers create models to better understand software requirements Construction - This activity combines code generation and the testing that is required to uncover errors in the code Deployment - The software as a complete entity or as a partially completed increment is delivered to the customer
Process framework activities
Construction - This activity combines code generation and testing Deployment - The software as a complete entity or as a partially completed increment is delivered to the customer. Communication - The intent is to understand stakeholders' objectives for the project.
Process framework activities
PAD
Prototyping, Analysis, Design
Pattern template
Provides a consistent means for describing a pattern
1) myths
Software development _____ are erroneous beliefs about software and the process that is used to build it. 1) myths 2) tools 3) methods 4) activities
Waterfall model
Suggests a systemic, sequential approach to software development that begins with customer specification of requirements and progresses through planning, modeling, construction, and deployment, culminating in ongoing support of the completed software.
UP Production phase
The _____ phase of the UP coincides with the deployment activity of the generic process. During this phase, the ongoing use of the software is monitored, support for the operating environment (infrastructure) is provided, and defect reports and requests for changes are submitted and evaluated.
3) software requirements continually change, but can be easily accommodated because software is flexible
The reality "when requirements changes are requested early, the cost impact is relatively small" clarifies the myth "_____" 1) once we write the program and get it work, our job is done 2) If we get behind schedule, we can add more programmers and catch up 3) software requirements continually change, but can be easily accommodated because software is flexible 4) if a firm decides to outsource the software project to a third party, it can relax and let the other firm build it
C. Software requirements continually change, but change can be easily accommodated because software is flexible.
The reality "when requirements changes are requested early, the cost impact is relatively small" clarifies the myth "__________." A. If a firm decides to outsource the software project to a 3rd party, it can just relax and let that other firm build it.. B. Once we write the program and get it to work, out job is done. C. Software requirements continually change, but change can be easily accommodated because software is flexible. D. If we get behind schedule, we can add more programmers to catch up.
PSP Planning
This activity isolates requirements and develops both size and resource estimates. In addition, a defect estimate (the number of defects projected for the work) is made. All metrics are recorded on worksheets or templates. Finally, development tasks are identified and a project schedule is created
False
True or false: The only deliverable work product for a successful project is the working program.
True
True or false: When software requirements changes are requested early, the cost impact is relatively small. However, as time passes, the cost impact grows rapidly.
PSP Postmortem
Using the measures and metrics collected (this is a substantial amount of data that should be analyzed statistically), the effectiveness of the process is determined. Measures and metrics should provide guidance for modifying the process to improve its effectiveness.
4) It provides technical how-to's for building software
What is the function of the methods layer? 1) It establishes milestones after every work product 2) It establishes software configuration management 3) It reapplies definition and development phases to existing software 4) It provides technical how-to's for building software
Crosscutting concerns
When concerns cut across multiple system functions, features, and information
computer-aided * software engineering methods provide the technical how-to's for building software (tasks include: communication, requirements analysis, design modeling, program construction, testing, and support)
When software engineering tools are integrated so that information created by one tool can be used by another, a system for the support of software development, called _____-_____ software engineering, is established.
Computer-aided
When software engineering tools are integrated so that information created by one tool can be used by another, a system for the support of software development, called __________ software engineering, is established.
Blocking states
Where some project team members must wait for other members of the team to complete dependent tasks
A. Construction
Which is the process framework activity that combines code generation and the testing that is required to uncover errors in the code? A. Construction B. Installation C. Review D. Maintenance
4) Software engineers should plan ahead for reuse
Which of the following is a software engineering principle stated by David Hooker? 1) Always stick to the methods and procedures that worked well in the past. 2) Reuse wastes time and effort 3) Software engineering is not a layered technology 4) Software engineers should plan ahead for reuse
4) Every software project is precipitated by some business need.
Which of the following statements is true about software engineering? 1) In software engineering, a system with a long lifetime has less value 2) Software engineering is not a layered technology 3) In reality, software engineering will make us create voluminous and unnecessary documentation 4) Every software project is precipitated by some business need.
3) Technical review *Typical Umbrella Activities ** Software project tracking and control - allows the team to assess progress against the project plan and take any necessary action to maintain the schedule ** Risk management - assesses risks that may affect the outcome of the project or the quality of the product ** Software quality assurance - defines and conducts the activities required to ensure software quality ** Technical reviews - assess software engineering work products in an effort to uncover and remove errors before they are propagated to the next activity ** Measurement - defines and collects process, project, and product measures that assist the team in delivering software that meets stakeholders' needs. Can be used in conjunction with all other framework and umbrella activities ** Software configuration management - manages the effects of change throughout the software process ** Reusability management - defines criteria for work product reuse and establishes mechanisms to achieve reusable components ** Work product preparation and production - encompass the activities required to create work products such as models, documents, logs, forms and lists.
Which umbrella activity assesses software engineering work products in an effort to uncover and remove errors before they are propagated to the next activity? 1) Re-usability management 2) Risk management 3) Technical Review 4) Software project tracking
UML
____ contains a robust notation for the modeling and development of object-oriented systems. By 1997, this became a de facto industry standard for object-oriented development
UP Inception phase
_____ of the UP encompasses both customer communication and planning activities. By collaborating with stakeholders, business requirements for the software are identified; a rough architecture for the system is proposed; and a plan for the iterative, incremental nature of the ensuring project is developed
UP Elaboration phase
_____ of the UP encompasses the communication and modeling activities of the generic process model. _____ refines and expands the preliminary use cases that were developed as part of the inception phase and expands the architectural representation to include five different views of the software: the use case model, the requirements model, the design model, the implementation model, and the deployment model
UP Construction phase
_____ of the up is identical to the construction activity defined for the generic software process. Using the architectural model as input, the _____ phase develops or acquires the software components that will make each use case operational for end users.
UP Transition phase
_____ phase of the UP encompasses the latter stages of the generic construction activity and the first part of the generic deployment (delivery and feedback) activity. Software is given to end users for beta testing and user feedback reports.
PSP
_____emphasizes personal measurement of both the work product that is produced and the resultant quality of the work product. In addition, ____ makes the practicioner responsible for project planning (e.g., estimating and scheduling) and empowers the practitioner to control the quality of all software work products that are developed.
Unified Process
a framework for object oriented software engineering using UML. The iterative, incremental model proposed by the ___ can and should be adapted to meet specific project needs
Aspect oriented
a relatively new software engineering paradigm that provides a process and methodological approach for defining, specifying, designing, and constructing aspects
Aspectual requirements
crosscutting concerns that have an impact across software architecture.
Scripts
define specific activities (i.e. project launch, design, implementation, integration and system testing, postmortem) and other more detailed work functions (e.g., development planning, requirements development, software configuration management, unit test) that are part of the team process.
Concurrent modeling
defines a series of events that will trigger transitions from state to state for each of the software engineering activities, or tasks
Process flow
describes how the framework activities and the actions and tasks that occur within each framework activity are organized with respect to sequence and time
Linear process flow
executes each of the five framework activities in sequence, beginning with communication and culminating with deployment
Self-directed team
has a consistent understanding of its overall goals and objectives, defines roles and responsibilities for each team member; tracks quantitative project data (about productivity and quality); identifies a team process that is appropriate for the project and a strategy for implementing the process; defines local standards that are applicable to the team's software engineering work; continually assesses risks and reacts to it; and tracks, manages, and reports project status.
Workflow
in the context of UP, ______ is analogous to a task set. That is, a ____ identifies the tasks required to accomplish an important software engineering action and the work products that are produced as a consequence of successfully completing the task.
Iteration
occurs as the prototype is toned to satisfy the needs of various stakeholders, while at the same time enabling you to better understand what needs to be done
Iterative process flow
repeats one or more of the activities before proceeding to the next
Elicitation
requirements gathering
State
some externally observable mode of behavior
Analysis model correction
triggering the requirements analysis action from the done state to the awaiting changes state