SPM Unit-2 Part-1

You might also like

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 19

Selection of an appropriate project approach

Unit-2
Part-1
Content

• Choosing methodologies and technologies


• Steps of project analysis
• Choice of process model
– Waterfall model
– Spiral model
– Software prototyping
– RAD (Rapid Application Development) Model
– Agile methods
• Atern/Dynamic Systems Development Method
• Extreme programming (XP)
• Managing iterative processes
Choosing methodologies and technologies

• Methods as a general way of carrying out a specific task that could be


applicable to any project needed to do that task.
• Techniques and methods are sometimes distinguishable.
• Techniques tend to involve the application of scientific, mathematical or
logical principles to resolve a particular kind of problem. Eg. A software
design.
• Methods often involve the creation of models. Eg Entity relationship
diagram is a model of the structure of the data used by the system.
• Project analysis should select the most appropriate methodologies and
technologies for a project as it can affect:
– The training requirements for development staff
– The types of staff to be recruited
– The development environment- both hardware and software
– System maintenance arrangements
Steps of project analysis
• Identify project as either objective driven or product driven
– A product driven project creates products defined before the start of the project
– An objective driven project will often have come first which will have define the general software solution that is to be
implemented.
• Analyse other project characteristics
– Is a data oriented or process oriented system to be implemented?
– Will the software that is to be produced be a general tool or application specific?
– Are there specific tools available for implementing the particular type of application? Does it involve concurrent
processing? Will the system to be produced make heavy use of computer graphics?
– Is the system to be created safety critical?
– Is the system designed primary to carry out predefined services or to engaging and entertaining?
– What is the nature of hardware and software environment in which the system will operate?
• Identify high level project risks
– Product uncertainty
– Process uncertainty
– Resource uncertainty
• Take into account user requirements concerning implementation
• Some general life cycle approach
– Control system
– Information system
– Availability of users
– Specialised techniques
– Hardware environment
– Safety critical systems
– Imprecise requirements
Choice of process model

• The word ‘process’ emphasizes the idea of a system in action. In order to achieve
an outcome, the system will have to execute one or more activities: this is its
process.
• This applies to the development od computer based applications. A number of
interrelated activities have to be taken to create a final product. These activities can
be organised in different ways and we call these process model.
• The planner selects methods and specifies how they are to be applied.
Waterfall model
Spiral model
Software prototyping
• This is one way in which we can buy knowledge and reduce uncertainty. A prototype is a working model
of one or more aspects of projected systems. It is constructed and tested quickly and inexpensively in
order to test out assumptions.
• Prototype can be classified as:
– Throw away prototype
– Evolutionary

Reasons to put forward for prototyping


– Learning by doing
– Improved communication
– Improved user environment
– Clarity of partially known requirements
– Demonstration of the consistency and completeness of a specification
– Reduced need for documentation
– Reduced maintenance cost
– Feature constraint
– Production of expected results
RAD (Rapid Application Development) Model

• RAD is a linear sequential software development process model that emphasizes a


concise development cycle using an element based construction approach. If the
requirements are well understood and described, and the project scope is a
constraint, the RAD process enables a development team to create a fully
functional system within a concise time period.
• RAD (Rapid Application Development) is a concept that products can be developed
faster and of higher quality through:
– Gathering requirements using workshops or focus groups
– Prototyping and early, reiterative user testing of designs
– The re-use of software components
– A rigidly paced schedule that refers design improvements to the next product
version
– Less formality in reviews and other team communication
The various phases of RAD are as follows:

• 1.Business Modelling: The information flow among business functions is defined


by answering questions like what data drives the business process, what data is
generated, who generates it, where does the information go, who process it and so
on.
• 2. Data Modelling: The data collected from business modeling is refined into a set
of data objects (entities) that are needed to support the business. The attributes
(character of each entity) are identified, and the relation between these data objects
(entities) is defined.
• 3. Process Modelling: The information object defined in the data modeling phase
are transformed to achieve the data flow necessary to implement a business
function. Processing descriptions are created for adding, modifying, deleting, or
retrieving a data object.
• 4. Application Generation: Automated tools are used to facilitate construction of
the software; even they use the 4th GL techniques.
• 5. Testing & Turnover: Many of the programming components have already been
tested since RAD emphasis reuse. This reduces the overall testing time. But the
new part must be tested, and all interfaces must be fully exercised.
When to use RAD Model?
• When the system should need to create the project that modularizes in a short span time
(2-3 months).
• When the requirements are well-known.
• When the technical risk is limited.
• When there's a necessity to make a system, which modularized in 2-3 months of period.
• It should be used only if the budget allows the use of automatic code generating tools.
Advantage of RAD Model
• This model is flexible for change.
• In this model, changes are adoptable.
• Each phase in RAD brings highest priority functionality to the customer.
• It reduced development time.
• It increases the reusability of features.
Disadvantage of RAD Model
• It required highly skilled designers.
• All application is not compatible with RAD.
• For smaller projects, we cannot use the RAD model.
• On the high technical risk, it's not suitable.
• Required user involvement.
Agile methods
• There are various agile approaches including:
– Crystal technologies
– Atern (formerly DSDM)
– Feature driven development
– Scrum
– Extreme programming
Some of the leading proponents of these approaches came together in 2001 to
issue an Agile Manifesto which stated that their various methods shared four
core values:
1. individuals and interaction over processes and tools
2. working together over comprehensive documentation
3. customer collaboration over contract negotiation
4. responding to change over following a plan
Atern/Dynamic Systems Development Method

• An iterative and incremental approach Dynamic system development method


(DSDM) has replaced Structured systems analysis and design method(SSADM).
DSDM has been re-badged as Atern.
• Eight core Atern principles have been enunciated
1. Focus on business need
2. Delivery on time
3. Collaboration
4. Never compromise quality
5. Develop iteratively
6. Build incrementally from firm foundations
7. Communicate continuously
8. Demonstrate control
Life cycle of Atern/ Atern process model
Life cycle phases

• Feasibility/foundation
• Exploration cycle
• Engineering cycle
• Deployment
Extreme programming (XP)
• The approach is called ‘extreme programming’ because according to Beck, ‘XP takes commonsense
principles to extreme levels’.
• Four core values are presented as foundation of XP.
– Communication and feedback
– Simplicity
– Responsibility
– Courage
• Among the core practices of XP are the following
– The planning exercise
– Small releases
– Metaphor
– Simple design
– Testing
– Refactoring
– Pair programming
– Collective ownership
– Continuous integration
– Forty hours weeks
– On-site customers
– Coding standards
Limitations of XP

The successful use of XP is based on certain conditions. If these do not exist,


then its practice could be difficult. These conditions include the following.
• There must be easy access to users, or at least a customer representative who
is a domain expert. This may be difficult where developer and users belongs
to same organisations
• Development staff need to be physically located in the same office
• As users find out about how the system will work only by being presented
with working versions of the code, there may be communication problems if
the application does not have a visual interface
• For work to be sequenced into small iterations of work, it must be possible to
break the system functionality into relatively small and self-contained
components.
• Large, complex systems may initially need significant architectural effort.
This might preclude the use of XP
Managing iterative processes

You might also like