Workshop 1 Methodology

Post on 05-Jan-2016

33 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

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] - PowerPoint PPT Presentation

Transcript

Workshop 1Methodology

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]

• "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 Cycle

Software development Cycle

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

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

top related