SOFTWARE PROCESSES II Flashcards
Describe the Code-and-fix model
This model starts with an informal general product idea and just develops code until a product is ”ready” (or money/time runs out). Work is in random order.
The most expensive way for maintenance (i.e., maintenance nightmare)
The product is implemented without requirements or
specifications, or any attempt at design.
The developers simply throw code together and rework it as many times as necessary to satisfy the client.
Illustrate the Code and Fix model
*See notes
What are the advantages of the code and fix model
No administrative overhead
Signs of progress (code) early.
Low expertise, anyone can use it!
Useful for small “proof of concept” projects, e.g. as part of risk reduction
What are the disadvantages of the code and fix model
No visibility/control
No resource planning
No deadlines
Mistakes hard to detect/correct
Impossible for large projects because it leads to
communication breakdown and chaos.
The most expensive way for maintenance (i.e., maintenance nightmare)
Describe software design and implementation
The process of converting the system specification into an executable system
Software Design (inputs: specifications)
Design a software structure that realizes the specification;
Implementation
Translate this model / structure into an executable app;
Programming is the implementation of the design.
The activities of design and implementation are closely
related and may be inter-leaved and definitely are using
many modern development processes
Illustrate the general model of the design process
*See notes
Describe the activities that are part of the design process
Architectural design, where one identifies the overall
structure of the system, the principal components
(sometimes called sub-systems or modules or layers,
etc…), their relationships and how they are distributed.
Interface design, where one defines the interfaces
between system components
(Recognize that to the end user, the UI is the application.)
Component design where one takes each system
component and design how it will operate
Database design where one designs the system data
structures and how these are to be represented in a
database.
Describe software validation and verification
Verification and validation (V & V) is intended to show that a system conforms to its specification and meets the requirements of the system customer.
Involves checking and review processes and system
testing.
What is system testing
System testing involves executing the system with test cases that are derived from the specification of the real data to be processed by the system.
Testing is the most commonly used V & V activity.
Illustrate and explain the stages of testing
Development or component testing (Unit testing)
-Individual components are tested independently;
-Components may be functions or objects or coherent
groupings of these entities.
System testing
-Testing of the system as a whole. Testing of emergent
properties is particularly important.
Acceptance testing
-Testing with customer data to check that the system meets the customer’s needs
Describe software evolution
Software is inherently flexible and can change.
As requirements change through changing business
circumstances, the software that supports the business
must also evolve and change.
Although there has been a demarcation between
development and evolution (maintenance) this is
increasingly irrelevant as fewer and fewer systems are
completely new (greenfield)