For Diploma Computer Engineering & information technology & etc, semester 4 as per GTU syllabus.
Size: 120.72 KB
Language: en
Added: Apr 25, 2016
Slides: 32 pages
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.