FORGE Methodology - CI FIRE Methodology Workshop @ NetFutures 15
Workshop 1 Methodology
description
Transcript of Workshop 1 Methodology
![Page 1: Workshop 1 Methodology](https://reader035.fdocuments.in/reader035/viewer/2022062314/56813b4d550346895da43c44/html5/thumbnails/1.jpg)
Workshop 1Methodology
11 January 2011
![Page 2: Workshop 1 Methodology](https://reader035.fdocuments.in/reader035/viewer/2022062314/56813b4d550346895da43c44/html5/thumbnails/2.jpg)
Introduction
• Method can be defined as a systematic and orderly procedure or process for attaining some objective.
• Methodology can be:• "the analysis of the principles of methods, rules,
and postulates employed by a discipline";[1]
• "the systematic study of methods that are, can be, or have been applied within a discipline".[1]
• the study or description of methods [2]
![Page 3: Workshop 1 Methodology](https://reader035.fdocuments.in/reader035/viewer/2022062314/56813b4d550346895da43c44/html5/thumbnails/3.jpg)
..Introduction• doesn't describe specific methods; • specify several processes that need to be followed.
– These processes constitute a generic framework. – broken down in sub-processes, they may be combined, or their sequence
may change. – However any task exercise must carry out these processes in one form or
another.[3]
• description of process, or may be expanded to include a philosophically coherent collection of theories, concepts or ideas as they relate to a particular discipline or field of inquiry.
• a simple set of methods or procedures, or it may refer to the rationale and the philosophical assumptions that underlie a particular study relative to the scientific method.
![Page 4: Workshop 1 Methodology](https://reader035.fdocuments.in/reader035/viewer/2022062314/56813b4d550346895da43c44/html5/thumbnails/4.jpg)
Software Development Methodology
• 1970s– Structured programming since 1969– Cap Gemini SDM, originally from PANDATA, the first English translation was
published in 1974. SDM stands for System Development Methodology• 1980s
– Structured Systems Analysis and Design Methodology (SSADM) from 1980 onwards– Information Requirement Analysis/Soft systems methodology
• 1990s– Object-oriented programming (OOP) has been developed since the early 1960s, and
developed as the dominant object oriented programming approach during the mid-1990s.
– Rapid application development (RAD) since 1991.– Scrum (development), since the late 1990s– Team software process developed by Watts Humphrey at the SEI– Extreme Programming since 1999
![Page 5: Workshop 1 Methodology](https://reader035.fdocuments.in/reader035/viewer/2022062314/56813b4d550346895da43c44/html5/thumbnails/5.jpg)
Software Development Cycle
![Page 6: Workshop 1 Methodology](https://reader035.fdocuments.in/reader035/viewer/2022062314/56813b4d550346895da43c44/html5/thumbnails/6.jpg)
Software development Cycle
![Page 7: Workshop 1 Methodology](https://reader035.fdocuments.in/reader035/viewer/2022062314/56813b4d550346895da43c44/html5/thumbnails/7.jpg)
Software development activities
• Planning– Focus on the requirement analysis– Abstract idea as what they want as an end result,
but not what the software should do– Incomplete, ambiguous ideas; with contradictory
and challenging requirements to be met– Determine and state the scope– Determine the functions and modules
![Page 8: Workshop 1 Methodology](https://reader035.fdocuments.in/reader035/viewer/2022062314/56813b4d550346895da43c44/html5/thumbnails/8.jpg)
Software Development Activities
• Implementation, testing and documenting– Start program the code– Test the software from time to time– Internal design of the software is generated• Input, output, modules, interaction, control, etc.
![Page 9: Workshop 1 Methodology](https://reader035.fdocuments.in/reader035/viewer/2022062314/56813b4d550346895da43c44/html5/thumbnails/9.jpg)
Software Development Activities
• Deployment and maintenance– Starts after the code is appropriately tested– A.k.a product release/sold– Should include training and support– Bug tracking and maintenance
![Page 10: Workshop 1 Methodology](https://reader035.fdocuments.in/reader035/viewer/2022062314/56813b4d550346895da43c44/html5/thumbnails/10.jpg)
Models
• Waterfall Model– The waterfall model shows a process, where
developers are to follow these phases in order:• Requirements specification (Requirements analysis)• Software Design• Integration• Testing (or Validation)• Deployment (or Installation)• Maintenance
![Page 11: Workshop 1 Methodology](https://reader035.fdocuments.in/reader035/viewer/2022062314/56813b4d550346895da43c44/html5/thumbnails/11.jpg)
Model
• Spiral Model– a process passing through some number of iterations,
with the four quadrant diagram representative of the following activities:
– formulate plans to: identify software targets, selected to implement the program, clarify the project development restrictions;
– Risk analysis: an analytical assessment of selected programs, to consider how to identify and eliminate risk;
– the implementation of the project: the implementation of software development and verification;
![Page 12: Workshop 1 Methodology](https://reader035.fdocuments.in/reader035/viewer/2022062314/56813b4d550346895da43c44/html5/thumbnails/12.jpg)
Model• Iterative and Incremental development
– initially small but ever larger portions of a software project to help all those involved to uncover important issues early before problems or faulty assumptions can lead to disaster.
– allows a potential of reaching the design goals of a customer who does not know how to define what they want.
• Agile development• uses iterative development as a basis but advocates a lighter and
more people-centric viewpoint than traditional approaches. • use feedback, rather than planning, as their primary control
mechanism. The feedback is driven by regular tests and releases of the evolving software.
![Page 13: Workshop 1 Methodology](https://reader035.fdocuments.in/reader035/viewer/2022062314/56813b4d550346895da43c44/html5/thumbnails/13.jpg)
Model
• Formal methods– mathematical approaches to solving software (and hardware)
problems at the requirements, specification and design levels. – Examples of formal methods include the B-Method, Petri nets,
Automated theorem proving, RAISE and VDM. – Various formal specification notations are available, such as the
Z notation. More generally, automata theory can be used to build up and validate application behavior by designing a system of finite state machines.
• Finite state machine (FSM) based methodologies allow executable software specification and by-passing of conventional coding (see virtual finite state machine or event driven finite state machine).
![Page 14: Workshop 1 Methodology](https://reader035.fdocuments.in/reader035/viewer/2022062314/56813b4d550346895da43c44/html5/thumbnails/14.jpg)
Model
• Model-driven engineering (MDE) – focuses on creating models, or abstractions, more
close to some particular domain concepts rather than computing (or algorithmic) concepts.
– to increase productivity by maximizing compatibility between systems, simplifying the process of design, and promoting communication between individuals and teams working on the system.
![Page 15: Workshop 1 Methodology](https://reader035.fdocuments.in/reader035/viewer/2022062314/56813b4d550346895da43c44/html5/thumbnails/15.jpg)
Model
• Rapid Application Development (RAD) – minimal planning in favor of rapid prototyping. – involves techniques like iterative development and
software prototyping.– The "planning" of software developed using RAD is
interleaved with writing the software itself. – The lack of extensive pre-planning generally allows
software to be written much faster, and makes it easier to change requirements.
![Page 16: Workshop 1 Methodology](https://reader035.fdocuments.in/reader035/viewer/2022062314/56813b4d550346895da43c44/html5/thumbnails/16.jpg)
Model• Object-Oriented
– takes the objects as the basis. – the system to be developed is observed and analyzed and the
requirements are defined as in any other method of system development.
– Once this is done, the objects in the required system are identified. – For example in case of a Banking System, a customer is an object, a
chequebook is an object, and even an account is an object.– similar to the traditional approach of system designing, in that it also
follows a sequential process of system designing but with a different approach.
– The basic steps of system designing using Object Modeling may be listed as:• System Analysis, System Design, Object Design, Implementation
![Page 17: Workshop 1 Methodology](https://reader035.fdocuments.in/reader035/viewer/2022062314/56813b4d550346895da43c44/html5/thumbnails/17.jpg)
References
• http://en.wikipedia.org/wiki/Software_development_methodology
• http://en.wikipedia.org/wiki/Software_development_process