SPM Unit 2 Notes
SPM Unit 2 Notes
Software Processes
The term software specifies to the set of computer programs, procedures and associated
documents (Flowcharts, manuals, etc.) that describe the program and how they are to be
used.
A software process is the set of activities and associated outcome that produce a software
product. Software engineers mostly carry out these activities. These are four key process
activities, which are common to all software processes. These activities are:
What is RAD?
Rapid application development is a software development methodology
that uses minimal planning in favor of rapid prototyping. A prototype is
a working model that is functionally equivalent to a component of the
product.
In the RAD model, the functional modules are developed in parallel as
prototypes and are integrated to make the complete product for faster
product delivery. Since there is no detailed preplanning, it makes it easier
to incorporate the changes within the development process.
RAD projects follow iterative and incremental model and have small
teams comprising of developers, domain experts, customer
representatives and other IT resources working progressively on their
component or prototype.
The most important aspect for this model to be successful is to make sure
that the prototypes developed are reusable.
RAD Model Design
RAD model distributes the analysis, design, build and test phases into a
series of short, iterative development cycles.
Following are the various phases of the RAD Model −
Business Modelling
The business model for the product under development is designed in
terms of flow of information and the distribution of information between
various business channels. A complete business analysis is performed to
find the vital information for business, how it can be obtained, how and
when is the information processed and what are the factors driving
successful flow of information.
Data Modelling
The information gathered in the Business Modelling phase is reviewed
and analyzed to form sets of data objects vital for the business. The
attributes of all data sets is identified and defined. The relation between
these data objects are established and defined in detail in relevance to the
business model.
Process Modelling
The data object sets defined in the Data Modelling phase are converted
to establish the business information flow needed to achieve specific
business objectives as per the business model. The process model for any
changes or enhancements to the data object sets is defined in this phase.
Process descriptions for adding, deleting, retrieving or modifying a data
object are given.
Application Generation
The actual system is built and coding is done by using automation tools
to convert process and data models into actual prototypes.
Testing and Turnover
The overall testing time is reduced in the RAD model as the prototypes
are independently tested during every iteration. However, the data flow
and the interfaces between all the components need to be thoroughly
tested with complete test coverage. Since most of the programming
components have already been tested, it reduces the risk of any major
issues.
1. Feasibility Study:
It establishes the essential business necessities and constraints
related to the applying to be designed then assesses whether or not
the application could be a viable candidate for the DSDM method.
2. Business Study:
It establishes the use and knowledge necessities that may permit the
applying to supply business value; additionally, it is the essential
application design and identifies the maintainability necessities for
the applying.
5. Implementation:
It places the newest code increment (an “operationalized” prototype)
into the operational surroundings. It ought to be noted that:
• (a) the increment might not 100% complete or,
• (b) changes are also requested because the increment is placed
into place. In either case, DSDM development work continues by
returning to the useful model iteration activity.
Extreme Programming
ITERATIVE PROCESS
Modern software development processes have moved away from the
conventional waterfall model, in which each stage of the development
process is dependent on completion of the previous stage. The economic
benefits inherent in transitioning from the conventional waterfall model
to an iterative development process are significant but difficult to
quantify. As one benchmark of the expected economic impact of process
improvement, consider the process exponent parameters of the
COCOMO II model. (Appendix B provides more detail on the
COCOMO model) This exponent can range from 1.01 (virtually no
diseconomy of scale) to 1.26 (significant diseconomy of scale). The
parameters that govern the value of the process exponent are application
precedentedness, process flexibility, architecture risk resolution, team
cohesion, and software process maturity. The following paragraphs map
the process exponent parameters of CO COMO II to my top 10 principles
of a modern process.
• Application precedentedness. Domain experience is a critical factor
in understanding how to plan and execute a software development
project. For unprecedented systems, one of the key goals is to confront
risks and establish early precedents, even if they are incomplete or
experimental. This is one of the primary reasons that the software
industry has moved to an iterative life-cycle process. Early iterations in
the life cycle establish precedents from which the product, the process,
and the plans can be elaborated in evolving levels of detail.
• Process flexibility. Development of modern software is characterized
by such a broad solution space and so many interrelated concerns that
there is a paramount need for continuous incorporation of changes. These
changes may be inherent in the problem understanding, the solution
space, or the plans. Project artifacts must be supported by efficient
change management commensurate with project needs. A configurable
process that allows a common framework to be adapted across a range of
projects is necessary to achieve a software return on investment.
• Architecture risk resolution. Architecture-first development is a
crucial theme underlying a successful iterative development process. A
project team develops and stabilizes architecture before developing all
the components that make up the entire suite of applications components.
An architecture-first and component-based development approach forces
the infrastructure, common mechanisms, and control mechanisms to be
elaborated early in the life cycle and drives all component make/buy
decisions into the architecture process.
• Team cohesion. Successful teams are cohesive, and cohesive teams are
successful. Successful teams and cohesive teams share common
objectives and priorities. Advances in technology (such as programming
languages, UML, and visual modeling) have enabled more rigorous and
understandable notations for communicating software engineering
information, particularly in the requirements and design artifacts that
previously were ad hoc and based completely on paper exchange. These
model-based formats have also enabled the round-trip engineering
support needed to establish change freedom sufficient for evolving
design representations.
• Software process maturity. The Software Engineering Institute's
Capability Maturity Model (CMM) is a well-accepted benchmark for
software process assessment. One of key themes is that truly mature
processes are enabled through an integrated environment that provides
the appropriate level of automation to instrument the process for
objective quality control.
The key parameters which define the quality of any software products,
which are also an outcome of the Cocomo are primarily Effort &
Schedule:
1. Organic
2. Semidetached
3. Embedded