Home
Subjects
Textbook solutions
Create
Study sets, textbooks, questions
Log in
Sign up
Upgrade to remove ads
Only $35.99/year
Science
Computer Science
Software Engineering
Software Development Processes
STUDY
Flashcards
Learn
Write
Spell
Test
PLAY
Match
Gravity
Terms in this set (81)
The Software Process
• A structured set of activities required to develop a software system
• Many different software processes but all involve:
- Specification - defining what the system should do;
- Design and implementation - defining the organization of the system and implementing the system;
- Validation - checking that it does what the customer wants;
- Evolution - changing the system in response to changing customer needs.
• A software process model is an abstract representation of a process. It presents a description of a process from some particular perspective.
Typical development processes activities
• Requirements engineering
• System analysis
• High-level
design/architecture
• Low-level design
• Coding
• Integration
• Design and code reviews
• Testing
• Maintenance
• Projectmanagement
• Configuration management
Software process descriptions
• When we describe and discuss processes, we usually talk about the activities in these processes such as specifying a data model, designing a user interface, etc. and the ordering of these activities.
• Process descriptions may also include:
- PRODUCTS, which are the outcomes of a process activity;
- ROLES, which reflect the responsibilities of the people involved in the process;
- PRE AND POST CONDITIONS, which are statements that are true before and after a process activity has been enacted or a product produced.
Plan-driven and agile processes
• Plan-driven processes are processes where all of the process activities are planned in advance and progress is measured against this plan.
• In agile processes, planning is incremental and it is easier to change the process to reflect changing customer requirements.
• In practice, most practical processes include elements of both plan-driven and agile approaches.
• There are no right or wrong software processes.
Life cycle models
• Combine the development processes and activities in different ways (different order, once or repeated ...) to model the life cycle of a project
• By making models of the life cycle of successful software projects can help us design better approaches to plan the life cycle of future projects
• There are several 'generic' life cycle models that are often used or used as a basis for design of custom life cycle models
Generic software process models
The waterfall model
- Plan-driven model. Separate and distinct phases of specification and development.
Incremental development (Evolutionary development)
- Specification, development and validation are interleaved. May be plan-driven or agile.
Reuse-oriented software engineering (Component-based software engineering)
- The system is assembled from existing components.
There are many variants of these models e.g. formal development where a waterfall-like process is used but the specification is a formal specification that is refined through several stages to an implementable design.
Identifying a Task Set
• A task set defines the actual work to be done to accomplish the objectives of a software engineering action.
- A list of the task to be accomplished
- A list of the work products to be produced
- A list of the quality assurance filters to be applied
A process pattern
- describes a process-related problem that is encountered
during software engineering work,
- identifies the environment in which the problem has been encountered, and
- suggests one or more proven solutions to the problem.
• Stated in more general terms, a process pattern provides you with a consistent method for describing problem solutions within the context of the software process.
Process Pattern Types
• Stage patterns
• Task patterns
• Phase patterns
Stage patterns
defines a problem associated with a framework activity for the process.
Task patterns
defines a problem associated with a software engineering action or work task and relevant to successful software engineering practice
Phase patterns
define the sequence of framework activities that occur with the process, even when the overall flow of activities is iterative in nature.
Standard CMMI Assessment Method for Process Improvement (SCAMPI)
provides a five step process assessment model that incorporates five phases: initiating, diagnosing, establishing, acting and learning.
CMM-Based Appraisal for Internal Process Improvement (CBA IPI)
provides a diagnostic technique for assessing the relative maturity of a software organization; uses the SEI CMM as the basis for the assessment
SPICE—The SPICE (ISO/IEC15504)
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.
Recommended textbook explanations
Introduction to Algorithms
3rd Edition
Charles E. Leiserson, Clifford Stein, Ronald L. Rivest, Thomas H. Cormen
709 explanations
Engineering Electromagnetics
8th Edition
John Buck, William Hayt
483 explanations
Introduction to the Theory of Computation
3rd Edition
Michael Sipser
389 explanations
Starting Out with Python
3rd Edition
Tony Gaddis
610 explanations
Sets with similar terms
Software Engineering 9th Ed by Sommerville - Chapt…
34 terms
Midterms - Software Engineering Chapter2(Part3)
43 terms
Software Engineering
43 terms
Chapter 2
10 terms
Sets found in the same folder
Agile Software Development
73 terms
Software Engineering 9th Ed by Sommerville - Chapt…
25 terms
software engineering ch 3 - Agile software develop…
50 terms
Software Engineering
95 terms
Other sets by this creator
Genki Chapter 9 Kanji
15 terms
PSYC 102 - CHAPTER 11 DEVELOPMENT
126 terms
Genki Chapter 5: Kanji
23 terms
Genki - Chapter 3 - Vocabulary
67 terms
Verified questions
COMPUTER SCIENCE
Implement the following C code in MIPS assembly. What is the total number of MIPS instructions needed to execute the function? $$ \begin{array} { l l } int \quad fib\left(int \quad n\right)\{ \\ \quad if \quad \left(n= =0\right) \\ \quad \quad return 0; \\ \quad else \quad if \left(n = = 1\right) \\ \quad \quad return 1; \\ \quad else \\ \quad \quad return \quad fib\left(n−1\right) + fib \left(n−2\right); \end{array} $$
COMPUTER SCIENCE
A string literal in Python must be enclosed in a. parentheses. b. single-quotes. c. double-quotes. d. either single-quotes or double-quotes.
COMPUTER SCIENCE
Prove that the fractional knapsack problem has the greedy-choice property.
COMPUTER SCIENCE
A Python string literal can span multiple lines if enclosed with a) " b) ' c) """ d) \
Other Quizlet sets
Chapter 5: Thermochemistry--- Energy Changes in Re…
98 terms
World Civilization Chapter 23,24,19,22( midterm)
50 terms
Expresiones Para el Speaking + Traducciones
24 terms
SOC CH 10
32 terms
Related questions
QUESTION
(Ch. 7) A software engineering design team that does not have any views of an architecture structure means there is not a structure in their software project.
QUESTION
What is the difference between a relational database management system (RDBMS) and an object oriented (OO) system?
QUESTION
3 essential ingredients of software engineering
QUESTION
What is the list of work the team must address during the next sprint?