280 likes | 463 Views
The Fun Filled World of Methodologies. By Eric DeLisle & Sasan Rastegarlari. Presentation Overview. What is a Methodology? Who uses Methodologies? What are Methodologies used for? Several types of Methodologies Waterfall SDLC RAD Agile Object-Oriented. What is a Methodology?.
E N D
The Fun Filled World of Methodologies By Eric DeLisle & Sasan Rastegarlari
Presentation Overview • What is a Methodology? • Who uses Methodologies? • What are Methodologies used for? • Several 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 • Present day Info Systems • Internet, Intranet, and Extranets. • 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.
Popular Methodologies • The Waterfall Methodology • The SDLC Methodology • The RAD Methodology • Agile Methodologies • eXtreme Programming (XP) • Object-Oriented Methodologies • Rational Unified Process (RUP)
Waterfall Methodology • 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 • 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. • 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.
Waterfall Methodology • Cons • 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. • Pros • Time spent early in production can save a company hundreds of thousands of dollars. • More emphasis is placed on documentation than any other methods.
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) • 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) • Cons • Really there are no cons to XP besides the fact that it may not be applicable to every project. • Pros • 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.
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. • Adapt the process: Decide on the right size project and budget for the organization. • Balance stakeholder priorities: Determines business goals and stakeholder needs. • Collaborate across teams: With a broad variety of stakeholders, all voices need to be heard. Everyone within the project shares information, opinions, and ideas. • 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. • Elevate the level of abstraction: Motivates the reuse of software or Framework already created. • 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.
Rational Unified Process (RUP) • Cons • 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. • Pros • 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.
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)
Thank You You May Now Applause!