3.6 System Development Methodology (Doshi) Flashcards
What is agile?
An approach of project management that is utilized in software development. It allows the programmer to start writing a program without spending much time on pre-planning documentation.
Agile development project
In an Agile development project, a larger development team is broken up into smaller teams of five to nine developers and a leader, and the project deliverable are broken up into smaller pieces that can each be attained in just a few weeks.
Prototyping
Is the process of creating systems through controlled trial and error
Risk of prototyping
Focuses too much on what customer wants, and may miss control . Finish system may present a potential risk because of poor controls.
Rapid application development (RAD)
Relies on the usage of a prototype that can be updated continually to meet changing user or business requirements
Object Oriented System development (OOSD)
A programming technique and not a software development methodology. Object here refers to small piece of program that can be used individually or in combination with other objects.
Benefit of object oriented:
the ability to reuse objects.
Encapsulation:
A technique uses by object oriented in which one object interacts with another object.
Component based development:
It’s an outgrowth of object-oriented development. reflects the software architecture of an application.
Reverse Engineering:
Reverse engineering is the process of studying and analyzing an application and the information is used to develop a similar system.
It’s often refers to process of major changes in a system.
Risk associated to agile development
lack of documentation
Why agile approach reviews are done?
To identify lessons learned for future use in the project.
Waterfall approach:
It’s suitable when requirements are well defined and understood.
It’s not suitable when requirement are frequently changing.
Prototyping advantages:
Provide significant cost and time savings
When is Top-down testing methods most effective?
During the initial approach of prototyping
Major advantage of a component-based development approach:
The support of multiple development environments
Agile Development:
- Dictionary meaning of agile is ‘able to move quickly and easily’.
- Agile allows the programmer to just start writing a program without spending much time on preplanning documentation.
- Less importance is placed on formal paper-based deliverables, with the preference being to produce releasable software in short iterations, typically ranging from 4 to 8 weeks.
- At the end of each iteration, the team considers and documents what worked well and what could have worked better, and identifies improvements to be implemented in subsequent iterations.
- Some programmers prefer agile because they do not want to be involved in tedious planning exercises.
In any given scenario, major risk associated with agile development is
lack of documentation.
In any given scenario, in agile approach reviews are done to
identify lessons learned for future use in the project.
Object Oriented System Development:
- OOSD is a programming technique and not a software development methodology.
- Object here refers to small piece of program that can be used individually or in combination with other objects.
- In Object oriented language, application is made up of smaller components (objects).
- One of the major benefits of object-oriented design and development is the ability to reuse objects.
- OO uses a technique known as ‘encapsulation’ in which one object interacts with another object. This is a common practice whereby any particular object may call other object to perform its work.
In any given scenario, a major benefit of object-oriented development is
the ability to reuse objects.
Prototyping:
- Prototyping is the process of creating systems through controlled trial and error.
- A prototype is an early sample or model to test a concept or process. A prototype is a small scale working system used to test the assumptions. Assumptions may be about user requirements, program design or internal logic.
- This method of system development can provide the organization with significant time and cost savings.
– By focusing mainly on what the user wants and sees, developers may miss some of the controls that come from the traditional systems development approach; therefore, a potential risk is that the finished system will have poor controls.
Rapid Application Development:
RAD includes use of:
(1) Small and well trained development teams.
(2) Prototypes
(3) Tools to support modeling, prototyping and component reusability.
(4) Central repository
(5) Rigid limits on development time frames
In any given scenario, important advantage of prototyping is
that it provides significant cost and time savings.
In any given scenario, Top-up testing methods is
MOST effective during the initial phases of Prototyping.
In any given scenario, Rapid Application Development (RAD) uses
a prototype approach that can be updated continually to meet changing user or business requirements.
Rapid Application Development (RAD) relies on
the usage of a prototype that can be updated continually to meet changing user or business requirements.
RAD enables the organization to develop systems
quickly while reducing development cost and maintaining quality. This is achieved by use of above techniques.