Test 1 Flashcards
What is software?
(1) Instructions: (computer programs) that when executed provide desired features, function, and
performance;
(2) Data Structures: that
enable the programs to adequately manipulate information and
(3) Documentation: that describes the operation and use of the programs.
The IEEE definition of software engineering is:
(1) The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of
software; that is, the application of engineering to software.
(2) The study of approaches as in (1).
What is the layered technology of software engineering?
1: Tools
2: Methods
3: Process Model
4: A “Quality” Focus
What is process framework?
A structured approach that defines the steps, tasks, and activities involved in software development.
It includes Framework/Umbrella Activities
What are the main tasks included in Framework Activities?
1: Communication
2: Planning
3: Modeling
*Analysis of requirements
*Design
4: Construction
*Code generation
*Testing
5: Deployment
What are the main tasks included in Umbrella Activities?
1: Software project tracking and control
2: Risk management
3: Software quality assurance
4: Technical reviews
5: Measurement
6: Software configuration management
7: Reusability management
8: Work product preparation and production
What provides a five step process assessment model that incorporates
five phases: initiating, diagnosing, establishing, acting and learning?
Standard CMMI Assessment Method for Process Improvement
(SCAMPI)
What provides a diagnostic technique
for assessing the relative maturity of a software organization; uses the SEI CMM as the basis for the assessment [Dun01]?
CMM-Based Appraisal for Internal Process
Improvement (CBA IPI)
What standard defines a set
of requirements for software process assessment. The intent of the standard is to assist organizations in developing an objective evaluation of the efficacy of any defined software process. [ISO08]
SPICE—The SPICE (ISO/IEC15504)
What is a generic standard that
applies to any organization that wants to improve the overall quality of the products, systems, or services that it provides. Therefore, the standard is directly applicable to software organizations and companies. [Ant06]
ISO 9001:2000 for Software
What is the Manifesto for Agile Software Development
“We are uncovering better ways of developing
software by doing it and helping others do it.
Through this work we have come to value:
*Individuals and interactions over processes
and tools
*Working software over comprehensive
documentation
*Customer collaboration over contract
negotiation
*Responding to change over following a plan
That is, while there is value in the items on
the right, we value the items on the left
more.”
- Kent Beck et al
What is “Agility”?
- Effective (rapid and adaptive) response to
change - Effective communication among all
stakeholders - Drawing the customer onto the team
- Organizing a team so that it is in control of the
work performedYielding … - Rapid, incremental delivery of software
What are the Agility Principles
- Our highest priority is to satisfy the customer
through early and continuous delivery of valuable software. - Welcome changing requirements, even late in
development. Agile processes harness change for the customer’s competitive advantage. - Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
- Business people and developers must work together daily throughout the project.
- Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
- The most efficient and effective method of
conveying information to and within a development team is face–to–face conversation. - Working software is the primary measure of
progress. - Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
- Continuous attention to technical excellence and good design enhances agility.
- Simplicity – the art of maximizing the amount of work not done – is essential.
- The best architectures, requirements, and
designs emerge from self–organizing teams. - At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
What is Extreme Programming (XP)?
The most widely used agile process, originally proposed by Kent Beck.
What is included in XP Planning?
Begins with the creation of “user stories”
* Agile team assesses each story and assigns a cost * Stories are grouped to for deliverable increment * A commitment is made on delivery date * After the first increment project velocity” is used to help define subsequent delivery dates for other increments
Describe XP Design.
- Follows the KISS principle
- Encourage the use of CRC cards
- For difficult design problems, suggests the creation of “spike solutions”—a design prototype
- Encourages “refactoring”—an iterative refinement of the internal program design
Describe XP Coding
*Recommends the construction of a unit test for a store before coding commences
*Encourages “pair programming”
Describe XP Testing.
*All unit tests are executed daily
- “Acceptance tests” are defined by the customer and executed to assess customer visible functionality
What was originally proposed by Schwaber and Beedle?
Scrum
List the distinguishable features of Scrum.
- Development work is partitioned into “packets”
- Testing and documentation are on-going as
the product is constructed - Work occurs in “sprints” and is derived from a
“backlog” of existing requirements - Meetings are very short and sometimes
conducted without chairs - “demos” are delivered to the customer with
the time-box allocated
List the Engineering Requirements
1) Inception
2) Elicitation
3) Elaboration
4) Negotiation
5) Specification
7) Validation
8) Requirements management
Inception…
When you ask a set of questions that establish:
- Basic understanding of the problem
- The people who want a solution
- The nature of the solution that is desired, and
- The effectiveness of preliminary
communication and collaboration between
the customer and the developer
Elicitation…
elicit requirements from all stakeholders
Elaboration…
When you create an analysis model that identifies data, function and behavioral requirements