CONTENTS 1.SOFTWARE-DEFINITION 2.TYPES OF SOFTWARE 3.SOFTWARE DEVELOPMENT 4.SOFTWARE LIFECYCLE 5.WATERFALL MODEL 6.ITERATION MODEL 7.V SHAPED MODEL 8.SPIRAL MODEL SOFTWARE DEVELOPMENT SD MODULE 1 1.SOFTWARE: Software is a generic term for organized collections of computer data and instructions, often broken into two major categories: system software that provides the basic non-task-specific functions of the computer, and application software which is used by users to accomplish specific tasks. 2.TYPES OF SOFTWARE: It is of two types a)system software b)application software System software is responsible for controlling, integrating, and managing the individual hardware components of a computer system so that other software and the users of the system see it as a functional unit without having to be concerned with the low-level details such as transferring data from memory to disk, or
rendering text onto a display. Generally, system software consists of an operating system and some fundamental utilities such as disk formatters, file managers, display managers, text editors, user authentication (login) and management tools, and networking and device control software. Application software, on the other hand, is used to accomplish specific tasks other than just running the computer system. Application software may consist of a single program, such as an image viewer; a small collection of programs (often called a software package) that work closely together to accomplish a task, such as a spreadsheet or text processing system; a larger collection (often called a software suite) of related but independent programs and packages that have a common user interface or shared data format, such as Microsoft Office, which consists of closely integrated word processor, spreadsheet, database, etc.; or a software system, such as a database management system, which is a collection of fundamental programs that may provide some service to a variety of other independent applications. 3. SOFTWARE DEVELOPMENT: Software development is the development of a software product. The term "software development" may be used to refer to the activity of computer programming, which is the process of writing and maintaining the source code, but in a broader sense of the term it includes all that is involved between the conception of the desired software through to the final manifestation of the software, ideally in a planned and structured process. Therefore, software development may include research, new development, prototyping, modification, reuse, re-engineering, maintenance, or any other activities that result in software products 4. SOFTWARE LIFECYCLE: A software development process, also known as a software development life cycle (SDLC), is a structure imposed on the development of a software product. A software development process, also known as a software development life cycle (SDLC), is a structure imposed on the development of a software product.
PHASES: 1)Requirements 2)Design 3)Implementation 4)Verification 5)Maintenance 5. WATERFALL MODEL The above diagram explains the waterfall model Advantages of Waterfall Iterative Model
1) Waterfall model is simple to implement and also the amount of resources required for it are minimal. 2) In this model, output is generated after each stage (as seen before), therefore it has high visibility. The client and project manager gets a feel that there is considerable progress. Here it is important to note that in any project psychological factors also play an important role. 3) Project management, both at internal level and client's level, is easy again because of visible outputs after each phase. Deadlines can be set for the completion of each phase and evaluation can be done from time to time, to check if project is going as per milestones. 4) This methodology is significantly better than the haphazard approach to develop software. It provides a template into which methods of analysis, design, coding, testing and maintenance can be placed. 5) This methodology is preferred in projects where quality is more important as compared to schedule or cost.
Disadvantages of Waterfall Model of SDLC 1) Real projects rarely follow the sequential flow and iterations in this model are handled indirectly. These changes can cause confusion as the project proceeds. 2) It is often difficult to get customer requirements explicitly. Thus specifications can't be freezed. If that case arises baseline approach is followed, wherein output of one phase is carried forward to next phase. For example, even if SRS is not well defined and requirements can't be freezed, still design starts. Now if any changes are made in SRS then formal procedure is followed to put those changes in baseline document. 3) In this model we freeze software and hardware. But as technology changes at a rapid pace, such freezing is not advisable especially in long-term projects. 4) This method is especially bad in case client is not IT-literate as getting specifications from such a person is tough. 5) Even a small change in any previous stage can cause big problem for subsequent phases as all phases are dependent on each-other. 6) Going back a phase or two can be a costly affair. Projects where Waterfall Method is suitable for SDLC:- 1) In development of database-related software 2) In development of E-commerce website or portal. 3) In Development of network protocol software. 6) ITERATION MODEL Iterative and Incremental development is at the heart of a cyclic software development process developed in response to the weaknesses of the waterfall model. It starts with an initial planning and ends with deployment with the cyclic interactions in between.
Incremental development slices the system functionality into increments (portions). In each increment, a slice of functionality is delivered through cross-discipline work, from the requirements to the deployment.
7.V SHAPED MODEL The V-model represents a software development process (also applicable to hardware development) which may be considered an extension of the waterfall model. Instead of moving down in a linear way, the process steps are bent upwards after the coding phase, to form the typical V shape. The V-Model demonstrates the relationships between each phase of the development life cycle and its associated phase of testing. The horizontal and vertical axes represents time or project completeness (left-to-right) and level of abstraction (coarsest-grain abstraction uppermost), respectively.
8. SPIRAL MODEL The spiral model is a software development process combining elements of both design and prototyping-in-stages, in an effort to combine advantages of top-down and bottom-up concepts. Also known as the spiral lifecycle model (or spiral development), it is a systems development method (SDM) used in information technology (IT). This model of development combines the features of the prototyping and the waterfall model. The spiral model is intended for large, expensive and complicated projects.