Presentation on theme: "The Fun Filled World of Methodologies By Eric DeLisle & Sasan Rastegarlari."— Presentation transcript:
The Fun Filled World of Methodologies By Eric DeLisle & Sasan Rastegarlari
Presentation Overview WWhat is a Methodology? WWho uses Methodologies? WWhat are Methodologies used for? SSeveral types of Methodologies Waterfall SDLC RAD Agile Object-Oriented
What is a Methodology? Multi-step approach to systems development Influences the quality of the Final product Comprehensive Consistent method with the Organizations management style.
Who Uses Methodologies? Most Organizations and Firms Today IBM, Microsoft, Monsanto, NASA, AT&T, Drury Hotels, Edward Jones, A.B. Majority of Organizations and Firms use a specific type of methodology that is tailored to their needs.
What Are Methodologies Used For? Systems Development Guidelines or References Step by Step process Leads to final product Analysis Information Gathered and Used to help the development process
History of Methodologies Computer-based Info Systems began in the 1950’s. 1980’s introduced microcomputers CASE tools development System developers went from builders to integrators. 1990’s brought systems integration. Visual programming environments. Present day Info Systems Internet, Intranet, and Extranets.
Popular Methodologies The Waterfall Methodology The SDLC Methodology The RAD Methodology Agile Methodologies eXtreme Programming (XP) Object-Oriented Methodologies Rational Unified Process (RUP)
Overview Introduced by W.W. Royce in 1970 It was later redesigned using a more iterative process, unfortunately this way was ignored resulting in the current Waterfall methodology Most System Analysts do not like the Waterfall Method Each phase must be completed perfectly There is no overlap or moving backward in phases
Waterfall Methodology Phases Requirements: The requirements of the system are collected and set in stone. Design: A blueprint is made for the programmers using the previously collected requirements. Implementation: System components are designed by coders and integrated together. Testing: After integration the system is tested and bugs are removed. Installation & Maintenance: The final installation of the system is done at this phase. Users are trained and the system is maintained by the system designers.
Waterfall Methodology PPros Time spent early in production can save a company hundreds of thousands of dollars. More emphasis is placed on documentation than any other methods. CCons Impossible to know exactly what is needed in each phase of the software process before some time is spent in the phase following it. Requirments are locked in too early leaving no room for user feedback and modification. Too much emphasis on deadlines rather than user requirments.
Systems Development Life Cycle (SDLC) Planning First phase Analysis Second phase Design Third phase Implementation Fourth phase Maintenance Fifth phase
Systems Development Life Cycle (SDLC) Overview Traditional Methodology Used to develop, maintain, and replace info systems Common method for systems development Contains several phases Planning, Analysis, Design, Implementation, Maintenance.
Systems Development Life Cycle (SDLC) Phases Planning Identification phase Needs are examined as a whole Analysis Studies current procedures and Info Systems Sub phase - Requirement determination Design Convert alternative solutions Inputs and Outputs Reports, databases, computer processes Implementation System and Written specs turned over to programmers Implementation process Coding, testing, installation Maintenance Systems are in operation Specific problems or changes are made
Rapid Application Development (RAD) Requirements Planning User Design Construction Cutover
Rapid Application Development (RAD) Overview Methodology used to decrease time in development process. Efficient and Cheaper Allows systems developers and end users work together from the beginning. Becoming a more legitimate way of developing Web Based systems. E-business applications VisualAge Generator, Java, WebSphere Stuido etc.
Rapid Application Development (RAD) Phases RAD phases are similar to SDLC Shortened and Combined – simplifies the development process. Systems are analyzed in isolation to other systems. Eliminates time consuming activities. Coordinating with existing standards and systems during the Design and Development phases RAD focuses on Prototyping similar to JAD Prototyping becomes the basis for the new system
eXtreme Programming (XP)
Overview An Agile Methodology invented about 8 years ago by Kent Beck Successful because it stresses customer satisfaction and software creation on demand Responsive to changing customer requirements even late in the life cycle Improves software projects in four essential ways; communication, simplicity, feedback, and courage.
eXtreme Programming (XP) Phases Planning: User stories are collected from the customer. Feedback is given to the customer to help better understand the requirements. Designing: Primary focus is on keeping the design simple. Constant communication with the customer is used to design and redesign over and over again until they have reached an acceptable solution. Coding: Very iterative process usually done with teams of 2 programmers at a time. Customer feedback is constantly used during the coding process. Testing: Consistently done after each portion of code is created. If bugs are found the code is reworked and retested. Releases: These are usually done in small portions. Final product is then thoroughly tested upon release.
eXtreme Programming (XP) PPros Code will be developed, tested, and implemented into the system within a few hours after it has been written. XP is governed by very simple rules and practices. Pair programming used in XP produces more and better communication among developers, higher levels of productivity, higher quality code, and reinforcement of the other practices in XP, such as the code-and-test discipline. CCons Really there are no cons to XP besides the fact that it may not be applicable to every project.
Rational Unified Process (RUP) Simple Diagram
Rational Unified Process (RUP) Detailed Diagram
Rational Unified Process (RUP) Overview An Object-Oriented iterative software development process created by the Rational Software Corporation (a division of IBM since 2003) around 1998. RUP is like an online mentor that provides guidelines, templates, and examples for all aspects and stages of program development. The RUP uses six key principles in its development process. 1.Adapt the process: Decide on the right size project and budget for the organization. 2.Balance stakeholder priorities: Determines business goals and stakeholder needs. 3.Collaborate across teams: With a broad variety of stakeholders, all voices need to be heard. Everyone within the project shares information, opinions, and ideas. 4.Demonstrate value iteratively: Projects are delivered in an incremental and iterative fashion. This encourages feedback from stakeholders and allows projects to adjust to changing requirements. 5.Elevate the level of abstraction: Motivates the reuse of software or Framework already created. 6.Focus continuously on quality: Encourages quality checks through testing not only at the end but during the creation of the projects.
Rational Unified Process (RUP) Phases Inception: Analysts define the scope, determine the feasibility of the project, understand user requirements, and prepare a software development plan. Elaboration: Analysts detail user requirements and develop a baseline architecture. In this phase an executable demonstration of the critical pieces will be developed. Construction: The software is actually coded, tested, and documented. At the end of this phase a beta version of the project is released that should have operational capabilities. Transition: The system is deployed, problems are corrected, and the users are trained and supported. Once acceptable criteria are met the product can then be scheduled for final release.
PPros Establishes a better understanding and communication channel between business engineering and software engineering. Provides pre-configured process templates for small, medium and large projects, which can be used for easier adoption. Allows for constant feedback from the business as well as the stakeholders. Encourages the use of reusable assets such as software pattern, 4GL or Framework which in turn prevents software engineers from having to custom make software. CCons If the users of RUP do not understand that RUP is a process framework, they may perceive it as a weighty and expensive process. Requires an RUP process expert. May not be applicable to all situations. Rational Unified Process (RUP)
Conclusion Who uses Methodologies? What are Methodologies used for? A brief history of Methodologies? Popular methodologies in the Systems Design Process. Waterfall Systems Development Life Cycle (SDLC) Rapid Application Development (RAD) eXtreme Programming (XP) Rational Unifide Process (RUP)