Lesson 5 System Development Methodologies
Lesson 5 System Development Methodologies
Software
Development
Lesson 5
SYSTEMS DEVELOPMENT METHODOLOGIES
Influencing Factors
Every system is born at some stage, survives its lifespan and has to be replaced.
Systems development projects are influenced by factors such as:
1. Technological obsolescence
2. Increased downtimes
3. Increased overhead costs
4. Bottlenecks
5. Technological advancement
System Development Methodologies
A wide variety of such frameworks have evolved over the years, each with its own
recognized strengths and weaknesses.
One system development methodology is not necessarily suitable for use by all projects.
Each of the available methodologies is best suited to specific kinds of projects, based on
various technical, organizational, project and team considerations.
Types of System Development Methodologies
1. Ideal for supporting less experienced project teams and project managers, or
project teams whose composition fluctuates.
2. The orderly sequence of development steps and strict controls for ensuring the
adequacy of documentation and design reviews helps ensure the quality,
reliability, and maintainability of the developed software.
3. Progress of system development is measurable.
4. Conserves resources.
Weaknesses
1. Inflexible, slow, costly and cumbersome due to significant structure and tight controls.
2. Project progresses forward, with only slight movement backward.
3. Little room for use of iteration, which can reduce manageability if used.
4. Depends upon early identification and specification of requirements, yet users may not be able to clearly
define what they need early in the project.
5. Requirements inconsistencies, missing system components, and unexpected development needs are often
discovered during design and coding.
6. Problems are often not discovered until system testing.
7. System performance cannot be tested until the system is almost fully coded, and under-capacity may be
difficult to correct.
8. Difficult to respond to changes. Changes that occur later in the life cycle are more costly and are thus
discouraged.
9. Produces excessive documentation and keeping it updated as the project progresses is time-consuming.
10. Written specifications are often difficult for users to read and thoroughly appreciate.
11. Promotes the gap between users and developers with clear division of responsibility
Situations where most appropriate
1. Large projects where the requirements are not well understood or are changing
for any reasons such as external changes, changing expectations, budget changes
or rapidly changing technology.
2. Web Information Systems (WIS) primarily due to the pressure of implementing a
WIS project quickly; the continual evolution of the project requirements; the
need for experienced, flexible team members drawn from multiple disciplines;
and the inability to make assumptions regarding the users’ knowledge level.
3. Real-time systems.
4. Event-driven systems.
5. Leading-edge applications.
RAD Methodology
1. Throwaway prototyping – refers to the creation of the model that will eventually be
discarded rather than becoming part of the finally delivered system. After preliminary
requirements gathering is accomplished a simple working model of the system is
constructed to visually show the users what their requirement may look like when they
are implemented into a finished system.
2. Incremental prototyping – The final product is built as a separate prototypes. At the
end the separate prototypes are merged in an overall design
3. Evolutionary prototyping – The goal is to build a very good prototype in a structured
manner so that we can refine it or make further changes. The reason for this is that,
the evolutionary prototype when built forms the heart of the new system and the
improvements and further requirements will be built on it. It is not discarded but
continually refined and built
Strengths
1. “Addresses the inability of many users to specify their information needs, and the difficulty of systems
analysts to understand the user’s environment, by providing the user with a tentative system for
experimental purposes at the earliest possible time.” (Janson and Smith, 1985)
2. “Can be used to realistically model important aspects of a system during each phase of the traditional
life cycle.” (Huffaker, 1986)
3. Improves both user participation in system development and communication among project
stakeholders.
4. Especially useful for resolving unclear objectives; developing and validating user requirements;
experimenting with or comparing various design solutions; or investigating
5. Especially useful for resolving unclear objectives; developing and validating user requirements;
experimenting with or comparing various design solutions; or investigating both performance and the
human computer interface.
6. Potential exists for exploiting knowledge gained in an early iteration as later iterations are developed.
7. Helps to easily identify confusing or difficult functions and missing functionality.
8. May generate specifications for a production application.
9. Encourages innovation and flexible designs.
10. Provides quick implementation of an incomplete, but functional, application.
Weaknesses
1. Approval process and control is not strict.
2. Incomplete or inadequate problem analysis may occur whereby only the most obvious and superficial needs will be addressed,
resulting in current inefficient practices being easily built into the new system.
3. Requirements may frequently change significantly.
4. Identification of non-functional elements is difficult to document.
5. Designers may prototype too quickly, without sufficient up-front user needs analysis, resulting in an inflexible design with
narrow focus that limits future system potential.
6. Designers may neglect documentation, resulting in insufficient justification for the final product and inadequate records for the
future.
7. Can lead to poorly designed systems. Unskilled designers may substitute prototyping for sound design, which can lead to a quick
integration of all other components. While initial software development is often built to be a “throwaway”, attempting to
retroactively produce a solid system design can sometimes be problematic.
8. Can lead to false expectations, where the customer mistakenly believes that the system is “finished” when in fact it is not; the
system looks good and has adequate user interfaces, but is not truly functional.
9. Iterations add to project budgets and schedules, thus the added costs must be weighed against the potential benefits.
10. Iterations add to project budgets and schedules, thus the added costs must be weighed against the potential benefits. Very
small projects may not be able to justify the added time and money, while only the high-risk portions of very large, complex
projects may gain benefit from prototyping.
11. Prototype may not have sufficient checks and balances incorporated.
Situations where most appropriate
1. Project is for development of an online system requiring extensive user dialog, or for a less well-defined
expert and decision support system.
2. Project is large with many users, interrelationships, and functions, where project risk relating to
requirements definition needs to be reduced.
3. Project objectives are unclear.
4. Pressure exists for immediate implementation of something.
5. Functional requirements may change frequently and significantly.
6. User is not fully knowledgeable.
7. Team members are experienced (particularly if the prototype is not a throw-away).
8. Team composition is stable.
9. Project manager is experienced.
10. No need exists to absolutely minimize resource consumption.
11. No strict requirement exists for approvals at designated milestones.
12. Analysts/users appreciate the business problems involved, before they begin the project.
13. Innovative, flexible designs that will accommodate future changes are not critical.
Situations where least appropriate
1. When utilizing a series of mini-Waterfalls for a small part of the system before
moving on to the next increment, there is usually a lack of overall consideration
of the business problem and technical requirements for the overall system.
2. Since some modules will be completed much earlier than others, well-defined
interfaces are required.
3. Difficult problems tend to be pushed to the future to demonstrate early success
to management.
Situations where most appropriate
1. Large projects where requirements are not well understood or are changing
due to external changes, changing expectations, budget changes or rapidly
changing technology.
2. Web information systems (WIS) and event-driven systems.
3. Leading-edge applications.
Situations where least appropriate
1. Key objective is for fast development and delivery of a high quality system at a relatively
low investment cost.
2. Attempts to reduce inherent project risk by breaking a project into smaller segments and
providing more ease-of-change during the development process.
3. Aims to produce high quality systems quickly, primarily through the use of iterative
Prototyping (at any stage of development), active user involvement, and computerized
development tools. These tools may include Graphical User Interface (GUI) builders,
Computer Aided Software Engineering (CASE) tools, Database Management Systems
(DBMS), fourth-generation programming languages, code generators, and object-
oriented techniques.
4. Key emphasis is on fulfilling the business need, while technological or engineering
excellence is of lesser importance.
Basic Principles
1. The operational version of an application is available much earlier than with Waterfall,
Incremental, or Spiral frameworks.
2. Because RAD produces systems more quickly and to a business focus, this approach
tends to produce systems at a lower cost.
3. Engenders a greater level of commitment from stakeholders, both business and
technical, than Waterfall, Incremental, or Spiral frameworks. Users are seen as gaining
more of a sense of ownership of a system, while developers are seen as gaining more
satisfaction from producing successful systems
quickly.
4. Concentrates on essential system elements from user viewpoint.
5. Provides the ability to rapidly change system design as demanded by users.
6. Produces a tighter fit between user requirements and system specifications.
7. Generally produces a dramatic savings in time, money, and human effort.
Weaknesses
1. More speed and lower cost may lead to lower overall system quality.
2. Danger of misalignment of developed system with the business due to missing information.
3. Project may end up with more requirements than needed (gold-plating).
4. Potential for feature creep where more and more features are added to the system course of dev over the
development.
5. Potential for inconsistent designs within and across systems.
6. Potential for violation of programming standards related to inconsistent naming conventions and inconsistent
documentation.
7. Difficulty with module reuse for future systems.
8. Potential for designed system to lack scalability
9. Potential for lack of attention to later system administration needs built into system.
10. High cost of commitment on the part of key user personnel.
11. Formal reviews and audits are more difficult to implement than for a complete system.
12. Tendency for difficult problems to be pushed to the future to demonstrate early success to management.
13. Since some modules will be completed much earlier than others, well-defined interfaces are required.
Situations where most appropriate
1. Project is of small-to-medium scale and of short duration (no more than 6 man-years of development
effort).
2. Project scope is focused, such that the business objectives are well defined and narrow.
3. Application is highly interactive, has a clearly defined user group, and is not computationally complex.
4. Functionality of the system is clearly visible at the user interface.
5. Users possess detailed knowledge of the application area.
6. Senior management commitment exists to ensure end-user involvement.
7. Requirements of the system are unknown or uncertain.
8. It is not possible to define requirements accurately ahead of time because the situation is new or the
system being employed is highly innovative.
9. Team members are skilled both socially and in terms of business.
10. Team composition is stable; continuity of core development team can be maintained.
Situations where most appropriate (Cont’d)