170 likes | 331 Views
Workshop 1 Methodology. 11 January 2011. 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]
E N D
Workshop 1Methodology 11 January 2011
Introduction • Method can be defined as a systematic and orderly procedure or process for attaining some objective. • Methodologycan 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]
..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.
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
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
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.
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
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
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;
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.
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).
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.
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.
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
References • http://en.wikipedia.org/wiki/Software_development_methodology • http://en.wikipedia.org/wiki/Software_development_process