Fundamentals of software development

pratikdevmurari1 2,476 views 32 slides Apr 25, 2016
Slide 1
Slide 1 of 32
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32

About This Presentation

For Diploma Computer Engineering & information technology & etc, semester 4 as per GTU syllabus.


Slide Content

Fundamentals of Software Development Name :- Enrollment No. :- Class :- Batch :-

Contents in this Project… What is SOFTWARE ? Characteristics of Software. Software Engineering Layer Approach Need of Software engineering Software Development Models / Life Cycle Models Classical Waterfall model Iterative Waterfall model Prototyping model Spiral model RAD model

Software What is software ? Software is “ Collection of computer programs ,procedures ,rules ,associated documents and concerned data with the operation of data processing system. Software is Divided into : 1. System Software Ex : Operating System 2.Application Software Microsoft Word ,VLC , AutoCAD

Characteristic Of Software Understandability :-software should be easy to understand. Cost :-software should be cost effective as per its usage. Maintainability :-software should be easily maintainable and modifiable in future. Modularity :-software should have modular approach so it can be handled easily for testing. Reliability :-it should have the capability to provide failure free services.

Portability :-software should have the capability to be adapted for different environments. Documentation :-software should be properly documented so that we can re-refer it in future. Reusability :-it should be reusable, or its code or logic should be reusable in future. Interoperability :- software should be able to communicate with various devices using standard bus structure and protocol.

Software Engineering Software Engineering is the application of a systematic, disciplined and quantifiable approach to the development, operation and  maintenance of software. Software Engineering provide framework that guides the software  engineers to develop the software. Software Engineering tells how software will work with machines.

Software engineering - A Layered Approach As We can see there are Main four Layers in this Layered approach. 1. A quality focus 2. Process 3. Methods 4. Tools A Quality Focus Process Method Tools

1. A Quality Focus Layer Software engineering mainly focuses on quality product. It checks whether the output meets with its requirement specifications  or not.  Every organization should maintain its total quality management. This layer supports software-engineering.

2. Process Layer It is the heart of software engineering. It is also working as foundation layer.  Software process is a set of activities together if ordered and performed  properly, the desired result would be produced.  It defines framework activities.   Main objective of this layer is to deliver software in time.

3. Methods 4. Tools It describes 'how-to‘ build software product.  It creates software engineering environment to software product using  CASE tools. (CASE tools combines software, hardware and software engineering  database ). It provides supports to below layers. Due to this layer , process is executed in proper manner.

Need of software engineering To help developers to obtains high quality product. To develop the product in appropriate manner using life cycle models. To acquire skills to be a better programmer. To provide a software product in a timely manner. To provide a quality software product. To provide a software product at an agreed cost. To develop ability to solve complex programming problems.

Software Life cycle models Different software life cycle models are given below. Classical waterfall model Iterative waterfall model Prototyping model Spiral model RAD model

1. Classical waterfall model Feasibility study Requirement analysis & specification Design Coding & testing Unit Integration & system testing Maintenances Development Phase

This model was originally proposed by royce(1970). It is also called ‘traditional waterfall model’ or ‘conventional waterfall model’ This model breakdown the life cycle into set of phases like: *)feasibility study *)requirements analysis and specification *)design *)Coding and unit testing *)integration and system testing *)maintenance

1.feasibility study Aim of this phase is to determine whether the system would be financially and  technically feasible to develop the product.  This is an abstract definition of the system. I t includes the analysis of the problem definition and collection n of relevant info  of input, processing and output data. · Collected data are analysed for : An abstract definition  Formulation of different solutions. Analysis of alternative solutions . and acceptance within the organization .

2. Requirements analysis and specification Ai m of this phase is to understand the exact requirements of the  customer and to document them properly.  Also reduces communication gap between developers and customers.  Two different activities are performed during this phase  1. Requirements gathering and analysis  2. Requirements specification Requirement gathering: The goal of this activity is to collect all  relevant information from the customer regarding the product to be  developed.  · This is done to clearly understand the customer requirements so that  incompleteness and inconsistencies are removed

3. Design The goal of the design phase is to transform the requirements specified  in the SRS document into a structure that is suitable for implementation  in some programming language.  This phase affecting the quality of the product.  Two main approaches are concerned with this phase.  (1) Traditional Design Approach Structural Analysis Stuctural Design (2) Object Oriented Design Approach

4 . Coding & Testing The goal of the design phase is to transform the requirements specified  in the SRS document into a structure that is suitable for implementation  in some programming language.  This phase affecting the quality of the product.  Two main approaches are concerned with this phase.  (1) Traditional Design Approach Structural Analysis Stuctural Design (2) Object Oriented Design Approach

5. Integration and system testing Goal of this phase is :- to ensure that the developed system works wel l to its requirements described in the SRS document.  Basic function of testing is to detect errors. S s it is also called quality  control measure. Testing procedure is carried out using test data: Program test and  System test. Program is done on test data and system test is done actual  data.  I t consists of three different kinds of testing activities . α Testing ß Testing Acceptance testing

6. Maintenance It requires max efforts to develop s /w product. This phase is needed to keep system operational. Generally maintenance is needed due to change in the environment or  the requirement of the system. Maintenance involves performing following three kinds of activities  . Corrective maintenance - Correcting errors that were not discovered  during the product development phase.  Perfective maintenance - Improving and enhancing the functionalities  of the system according to the customer's requirements. Adap tive maintenance - Porting the software to work in a new  environment and ensure working.

2. Iterative waterfall model Feasibility study Requirement analysis & specification Design Coding & testing Unit Integration & system testing Maintenances

Iterative waterfall model Iterative waterfall model is by far the most widely used model. Almost  every other model is derived from the waterfall mode l. The principle of detecting errors as close to its point of introduction as  Possible-is known as phase containment of errors. Phase containment of errors can be achieved by reviewing after every  milestone.

Incremental model C B A B A A

Incremental model It is also referred as the successive version of water f all model using  incremental approach and evolutionary model.  In this model, the system is broken down into s several modules w h ich  can be increment ed implemented and delivered.  First develop the core product of the system. The core product is used  by customers to evaluate the system.  The initial product skeleton is refined into increasing levels of  capability by adding new functionalities in successive versions 

RAD Model

RAD Model Business modelling:  The information flow is identified between various business functions. Data modelling:  Information gathered from business modeling is used to define data objects that are needed for the business. Process modelling:  Data objects defined in data modelling are converted to achieve the business information flow to achieve some specific business objective. Description are identified and created for CRUD of data objects. Application generation:  Automated tools are used to convert process models into code and the actual system. Testing and turnover:  Test new components and all the interfaces

Prototyping Model Requirement gathering

Prototyping Model Prototype is a working physical system or sub system. Prototype is nothing but  a toy implementation of a system. In this model, before starting actual development, a working prototype of the  system should first be built.  A prototype is actually a partial developed product.  Compared to the actual software, a prototype usually hav e · limited functional capabilities  · low reliability  · inefficient performance

When to use RAD model: Prototype model should be used when the desired system needs to have a lot of interaction with the end users. Typically, online systems, web interfaces have a very high amount of interaction with end users, are best suited for Prototype model. It might take a while for a system to be built that allows ease of use and needs minimal training for the end user. Prototyping ensures that the end users constantly work with the system and provide a feedback which is incorporated in the prototype to result in a useable system. They are excellent for designing good human computer interface systems.

Spiral Model STEP-1 DETERMINE STEP-2 IDENTIFY RISK STEP-4 PLAN NEXT ITERACTIVE STEP-3 DEVELOPMENT AND TESTING OBJECTIVE

Spiral Model 1.  To determine the objectives , alternatives and constraints. We try to understand the product objectives, alternatives in design and constraints imposed because of cost, technology, schedule, etc. 2.  Risk analysis and evaluation of alternatives. Here we try to find which other approaches can be implemented in order to fulfill the identified constraints. Operational and technical issues are addressed here. Risk mitigation is in focus in this phase. And evaluation of all these factors determines future action. 3.  Execution of that phase of development . In this phase we develop the planned product. Testing is also done. In order to do development, waterfall or incremental approach can be implemented.  4.  Planning the next phase . Here we review the progress and judge it considering all parameters. Issues which need to be resolved are identified in this phase and necessary steps are taken. 

Thank you