Professional Documents
Culture Documents
Submitted to:
Sir Zikria Mian
Submitted by:
Asia Maaz Ayub Asima Kanwal Amna Jamil Tehreem Abdul Latif (11123046) (12233003) (11133016) (11133014) (11123022)
Submission date:
09/04/2013
SDLC Model
The systems development life cycle (SDLC), or software development process in systems engineering, information systems and software engineering, is a process of creating or altering information systems, and the models and methodologies that people use to develop these systems. In software engineering, the SDLC concept underpins many kinds of software development methodologies. These methodologies form the framework for planning and controlling the creation of an information system the software development process.
Objectives of SDLC
Following main objectives of SDLC model are; Ensure the delivery of high quality systems Provide the strong management controls Maximize productivity
Strengths
2
Control on management Monitor large projects Detailed steps Evaluate costs and completion targets Documentation Well defined user input
Ease of maintenance. Development and design standards Tolerates changes in MIS staffing
Weaknesses
Increased development time Increased development cost Systems must be defined up front Rigidity Hard to estimate costs, project overruns User input is sometimes limited
Design
Coding
Delivery
1. Requirement analysis: This step is the first and primary step of software development life cycle which analyzes the requirement of the software. It is performed after the feasibility study has been done. The requirement term in this concern can be understood as : A condition or capability needed by a customer to solve a problem,and. A condition or capability that must be met by a system, software, document, manual, report etc.
Design:
This step is divided into two level designing named as, preliminary design high level design and detailed design or low level design. Preliminary design concern the brief overview of the software architecture and structure rather than goes into the details of the modules in detail in the detailed design. As the result of this step, it produces the software design specification (SDS) SDS is built to have. A software architecture in the layered sequential layout Data structure, algorithums, control structure The interfaces required for the software and The satisfaction that requirements have been met in the design
Coding:
This is the phase that produces the actual code that will be delivered to the customer as the operational product. To develop the code, a specific programming language is chosen either through its features or directly specified by the customer.
managing the activities, deliverables, timing, and resources for software development projects. SWDLC's are often governed by standard policy and procedure (templates where applicable.
Spiral Model
The spiral development model is normally associated with the one set forth by Dean Muench (Sybase, 1994). His model uses the spiral to describe successive process loops resulting in a single software deliverable. I view the spiral model differently; representing successive, iterative deliverables. This is view borrows from the Rapid Application Development approach. As represented by the fairly narrow banding, the initial deliverable is relative small. Each successive deliverable, building on the prior one, contains more. Each deliverable goes through the entire lifecycle.
This model supports both short burst deliverables where frequent small deliverables are released, and more extensive content deliverables taking a longer period of time per release. This diagram does not show the potential for parallelism; the ability under the spiral development model to create parallel development tracks whereby work progresses on both immediate deliverables and longer range deliverables. I have found that having a single team working on both longer range and short term deliverables is extraordinarily difficult. It is, I believe, far better to have separate teams that scrum together periodically to keep in synch. Another approach to parallel development is for each successive version's requirements, specifications,, and even design can be worked on in advance. This works for shops that are able to separate those functions from the actual development. With smaller teams, where lead developers are needed for interpretation of requirements and specifications, and for creation of design (architecture), this approach again becomes a real challenge. In summary, the benefits of this approach to development are a function of the size and structure of the development organization, and of the development culture.
Rapid Model
Rapid application development Model
RAD stands for rapid application development. (RAD) is a development lifecycle designed to give much faster development and higher-quality results than those achieved with the traditional Lifecycle. It is designed to take the maximum advantage of powerful development software that has evolved recently. RAD is an approach to building computer Systems which combine Computer-Assisted Software Engineering (CASE) tools and Techniques, user-driven prototyping, and stringent project delivery time limits into a potent, tested reliable formula for top quality and productivity. RAD drastically raises the quality of finished systems while reducing the time it takes to build them. In short, Rapid Application Development is exactly that. It is a process through which the development cycle of an application is expedited. Rapid Application Development thus enables quality products to be developed faster, saving valuable resources. The magnitude of such savings is truly RAD. RAD takes advantage of automated tools and techniques to restructure the process of building information systems. RAD replaces hand-design and coding processes, which are dependent upon the skills of isolated individuals, with automated design and coding, which is an inherently more stable process. RAD may thus give an IS organization its first real basis for continuous improvement. In addition to being more stable, Rapid Application Development is a more capable process, as it is much faster and less error prone than hand coding. Organizations faced a lot of problems such as upgrading their aging systems or building new applications. Traditional development lifecycles, however, are too slow and rigid to meet the business demands of todays economy. A new methodology must be implemented, one that allows organizations to build software applications faster, better, and cheaper. RAD enables such development.
10
It is a methodology for compressing the feasibility analysis, planning, design, build, and test phases into a series of short, iterative development cycles.
Objectives of RAD
These are following the objectives of RAD, which are as under;
To develop quality applications in a specific and rapid timeframedays or weeks, rather than the months and years typically experienced using conventional techniques. To provide an environment where end-user involvement is paramount. RAD will not be successful without total end-user involvement. To achieve rapid development using highly trained and motivated resources in a structured team environment.
Advantages
The advantages of Rapid Application Development (RAD) are:
11
It is flexible and adaptable to changes. The time required to develop the software is drastically reduced due to a reduced requirement analysis and planning stage. Prototyping applications helps to judge whether the critical system requirements are being met by system or not. The report output can be compared with existing reports. It helps to accurately estimate project costs. The software prototypes are reusable so it enhances speediness and reduces cost and time. It has short development cycle thus users see the RAD product quickly. It involves user participation. It reduces overall reduction in project risk. It promotes better documentation through written test cases.
Disadvantages
The disadvantages of Rapid Application Development (RAD) are: It may not be useful for large, unique or highly complex projects. It cannot be success if the team is not sufficiently motivated nor is unable to work cohesively together. It may be difficult for many important users to commit the time required for success of the RAD process. Sometimes the team may ignore necessary quality parameters such as consistency, reliability and standardization.
Strength
The operational version of an application is available much earlier than with Waterfall, Incremental, or Spiral frameworks.
12
Because RAD produces systems more quickly and to a business focus, this approach tends to produce systems at a lower cost. Engenders a greater level of commitment from stakeholders, both business and technical, than Waterfall, Incremental, or Spiral frameworks. Users are seen as gaining more of a sense of ownership of a system, while developers are seen as gaining more satisfaction from producing successful systems quickly. Concentrates on essential system elements from user viewpoint. Provides the ability to rapidly change system design as demanded by users. Produces a tighter fit between user requirements and system specifications. Generally produces a dramatic savings in time, money, and human effort.
Weaknesses
More speed and lower cost may lead to lower overall system quality. Danger of misalignment of developed system with the business due to missing information. Project may end up with more requirements than needed (gold-plating). Potential for feature creep where more and more features are added to the system over the course of development. Potential for inconsistent designs within and across systems. Potential for violation of programming standards related to inconsistent naming conventions and inconsistent documentation. Difficulty with module reuse for future systems. Potential for designed system to lack scalability. Potential for lack of attention to later system administration needs built into system. High cost of commitment on the part of key user personnel. Formal reviews and audits are more difficult to implement than for a complete system. Tendency for difficult problems to be pushed to the future to demonstrate early success to management. Since some modules will be completed much earlier than others, well-defined interfaces are required.
13
Incremental Model
The incremental build model is a method of software development where the model is designed, implemented and tested incrementally until the product is finished. It involves both development and maintenance. The product is defined as finished when it satisfies all of its requirements. The product is decomposed into a number of components, each of which are designed and built separately (termed as builds). Each component is delivered to the client when it is complete. This allows partial utilization of product and avoids a long development time. It also creates a large initial capital outlay with the subsequent long wait avoided. There are some problems with this model. One is that each new build must be integrated with previous builds and any existing systems. In incremental model the whole requirement is divided into various builds. Multiple development cycles take place here, making the life cycle a multi-waterfall cycle. Cycles are divided up into smaller, more easily managed modules. Each module passes through the requirements, design, implementation and testing phases. A working version of software is produced during the first module, so you have working software early on during the software life cycle. Each subsequent release of the module adds function to the previous release. The process continues till the complete system is achieved. Incremental model is the best model to be used for both large and small project rather than any other models. This is because incremental model composes of the Waterfall and Prototyping model. Waterfall model is mainly targeting the small project. The other weakness of the waterfall model is that it does not require the designer to step back for correcting errors. Therefore the incremental model combines of the two models hence it will tackle both small and big projects. Incremental model also handle errors pretty well as they can be easily identified due to the requirements being broken down into smaller units.
14
More management attention is required Needs a clear and complete definition of the whole system before it can be broken down and built incrementally Total cost is higher than waterfall
It is concluding that the incremental model is the best model in commercial projects because it accumulates all sorts of software development whether small or large. The model satisfy the clients and benefit both parties i.e. developers and clients because the product will be developed and delivered well in time compared to a situation where a programmer will be coding to solve a problem without analyzing, designing, and testing.
16