LESSON 2. Software process Flashcards
(30 cards)
A structured set of activities required
to develop a software system.
Software Process
Is an
abstract representation of a process.
Software Process Model
It presents a description of a process from
some particular perspective.
Defining what the system should do
Specification
Defining the organization
of the system and implementing the system
Design and Implementation
Checking that it does what the customer
wants
Validation
Changing the system in response to changing
customer needs
Evolution
Which are the outcomes of a process
activity
Products
Which reflect the responsibilities of the people
involved in the process
Roles
Which are statements
that are true before and after a process activity has
been enacted or a product produced.
Pre- and post condition
Are processes where
all of the process activities are planned in
advance and progress is measured against this
plan.
Plan-driven processes
Planning is incremental
and it is easier to change the process to reflect
changing customer requirements.
Agile processes
In practice, most practical processes include
elements
of
both
plan-driven and
agile
approaches.
There are no right or wrong software processes.
There are separate identified phases in the
waterfall model:
- Requirements Analysis and Definition
- System and Software Design
- Implementation and Unit Testing
- Integration and System Testing
- Operation and Maintenance
The main drawback of the waterfall model is the
difficulty of accommodating change after the
process is underway.
• In principle, a phase has to be complete before
moving onto the next phase.
Inflexible partitioning of the project into distinct
stages makes it difficult to respond to changing
customer requirements.
Is what model problem?
Waterfall model
Reuse-Oriented Software
Engineering
Process Stages
- Component analysis
- Requirements modification
- System design with reuse
- Development and integration
One of benefits:
Reusing existing
software components reduces development time
and costs associated with designing,
implementing, and testing new functionality
from scratch.
Time and Cost Savings
One of benefits
Reused components have
often been tested and used in multiple contexts,
making them more reliable and less prone to
errors.
Improved Quality
Benefits:
Reusing
standardized components promotes consistency
across projects, leading to better maintainability
and easier integration.
Consistency and Standardization:
One of benefits:
By leveraging
reusable components and frameworks,
developers can focus more on solving domain-
specific problems rather than reinventing
common functionalities.
Focus on Core Competencies
One of problems
Reused components may not
always be compatible with the specific requirements,
platforms, or environments of a new project. Integration
problems can arise due to differences in APIs, data
formats, or dependencies.
Compatibility Issues
Problem:
Not all reusable components
are of high quality or well-documented. Using poorly
designed or outdated components can introduce bugs,
security vulnerabilities, or performance issues into the
new system.
Quality and Reliability: