Lec 2 software

Ace your homework & exams now with Quizwiz!

Waterfall Model derivable

Project plan and feasibility report • Requirements document (SRS : Software Requirement Specifications) • System design document • Detailed design document • Test plans and test reports • Source code • Software manuals (user manual, installation manual) • Review reports

Modeling

create a sketch of the thing so that you'll understand the big picture and to better understand the problem and how you're going to solve it.

The incremental model

delivers a series of releases, called increments, that provide progressively more functionality for the customer as each increment is delivered.

Testing

the testing that is required to uncover errors in the code.

The intent of communication

to understand stakeholders' objectives for the project and to gather requirements that help define software features and functions.

When to use evolutionary processes models

- Business and product requirements often change as development proceeds, making a straight line path to an end product unrealistic • Evolutionary process models produce an increasingly more complete version of the software with each iteration.

Steps of the prototype model

- Requirements gathering and Analysis - Quick design - Build prototype - Customer evaluation of prototype - Prototype refinement

when to use waterfall model

- The requirements are well defined and reasonably stable. - The requirements are fixed - The work proceed to completion in a linear manner.

When to use prototyping process

- customer defines a set of general objectives for software, but does not identify detailed requirements for functions and features. - the prototyping paradigm assists you and other stakeholders to better understand what is to be built when requirements are fuzzy. - prototyping can be used as a stand-alone process model, it is more commonly used as a technique that can be implemented within the context of any one of the process models

waterfall model advantages

- easy to understand and manage -A waterfall model helps find problems earlier on which can cost a business less than if it was found later on. - Requirements will be set and these wouldn't be changed. - As everything is documented a new team member can easily understand what's to be done. - Implementers have to follow the design accurately - Clear project objectives. - Stable project requirements. - Progress of system is measurable. - Although the model is old fashioned, it remains a reasonable approach when requirements are well understood. - It is very simple model to implement.

Prototyping process

- prototypes are developed quickly for trial by users to obtain user feedback - Serves as a mechanism for identifying software requirements. - Build a pilot system and throw it away

advantages of spiral model

1. Additional functionality or changes can be done at a later stage 2. Cost estimation becomes easy as the prototype building is done in small fragments 3. Continuous or repeated development helps in risk management 4. Development is fast and features are added in a systematic way 5. There is always a space for customer feedback

Four folded procedure in spiral process

1. Evaluating the first prototype in terms of its strengths, weaknesses, and risks. 2. Defining the requirements of the second prototype 3. Planning and designing the second prototype 4. Constructing and testing the second prototype

Waterfall model disadvantages

1. Iterations can be accommodated which cause confusion as the project team proceeds. 2. It is often difficult for the customer to state all requirements explicitly. 3. The customer must have patience. A working version of the program(s) will not be available until late in the project time span. 4. the linear nature of the classic life cycle leads to "blocking states" in which some project team members must wait for other members of the team to complete dependent tasks. - doesn't handle unexpected risks - not good for complex and long term projects. - not flexible.

The work to be done to accomplish the objective of the software

1. Make a list of stakeholders for the project. 2. Interview each stakeholder separately to determine overall wants and needs. 3. Invite all stakeholders to an informal meeting. 4. Ask each stakeholder to make a list of features and functions required. 5. Discuss requirements and build a final list. 6. Prioritize requirements. 7. Note areas of uncertainty. 8. Note constraints and restrictions that will be placed on the system. 9. Discuss methods for validating the system.

Process models

1. Perspective models (standard) a. The waterfall model 2. Incremental process models a. The incremental model 3. Evolutionary process model a. Prototyping b. Spiral model 4. Specialized process model a. Concept based development b. The formal methods model c. Aspect oriented software development

Disadvantages of spiral model

1. Risk of not meeting the schedule or budget 2. It works best for large projects only also demands risk assessment expertise 3. For its smooth operation spiral model protocol needs to be followed strictly 4. Documentation is more as it has intermediate phases 5. It is not advisable for smaller project, it might cost them a lot

When to use spiral model

1. When project is large 2. When releases are required to be frequent 3. When creation of a prototype is applicable 4. When risk and costs evaluation is important 5. For medium to high-risk projects 6. When requirements are unclear and complex 7. When changes may require at any time 8. When long term project commitment is not feasible due to changes in economic priorities

Process framework

1.Communication (Requirement Analysis). 2. Planning and Modeling (Design). 3. Construction (Implementation). 4. Testing 5. Deployment (Delivery and Installation).

Software process

A series of predictable steps that helps you to create a timely, high-quality software.

risk analysis

All possible alternatives, which can help in developing a cost effective project are analyzed • This phase identify and resolve all the possible risks in the project development.

Communication

Before any technical work can commence, it is important to communicate and collaborate with the customer and other Stakeholders

Planning

Creates a map that helps guide the team as it makes the journey. Describe: the technical tasks to be conducted, the risks, the resources that will be required, the work products to be produced and a work schedule

Software Engineering layers

Quality focus, process, methods and tools.

Prototyping

Serves as a mechanism for identifying software requirements. • Build a pilot system and throw it away.

Software Engineering

The application of a systematic, disciplined, qualifiable approach to the development, operation and maintenance of software

plan

The objectives, alternatives and constraints of the project are determined and are documented.

Deployment

The software (as a complete entity or as a partially completed increment) is delivered to the customer who evaluates the delivered product and provides feedback based on the evaluation.

Contruction

This activity combines code generation (either manual or automated)

The spiral model

• Combines the waterfall model with the prototype model. • Each phase in spiral model begins with a design goal and ends with the client reviewing the progress. • starts with a small set of requirement and goes through each development phase for those set of requirements. Then adds functionality for the additional requirement in every-increasing spirals until the application is ready for the production phase.

Prototyping advantages

• Customer satisfaction exists, because customer can feel the product at very early stage. • There will be less chance of software rejection. • Requirement changes are allowed. • Due to customer approval we can find the errors at early stage. • Customer involvement will be there in the development where its leads to better solutions for any confusion / complexity / difficult functions • The developed prototype can be re-used by developer and test engineer

customer evaluation

• Developed product is passed on to the customer in order to receive customer's comments and suggestions. • This phase is very much similar to TESTING phase.

Incremental model advantages

• Generates working software quickly and early during the software life cycle. • This model is more flexible, less costly to change scope and requirements. • It is easier to test and debug during a smaller iteration. • In this model customer can respond to each built. • Lowers initial delivery cost. • Easier to manage risk because risky pieces are identified and handled during it's iteration.

Prototyping disadvantages

• It is a time consuming if customer ask for changes in prototype • This methodology may increase the system complexity as scope of the system may expand beyond original plans. • The invested effort in the preparation of prototypes may be too much if not properly monitored. •Customer may get confused in the prototypes and real systems.

When to use the Incremental model

• Mostly used in web applications and product based companies. • This model can be used when the requirements of the complete system are clearly defined and understood. • Major requirements must be defined; however, some details can evolve with time. • There is a need to get a product to the market early.

Incremental model disadvantages

• Needs good planning and design. • 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.

engineering

• The actual development of the project is carried out • The output of this phase is passed through all the phases iteratively in order to obtain improvements in the same

Incremental model description

• the whole requirement is divided into various builds. • Each module (independent units) passes through the requirements, design, implementation and testing phases. • The incremental build model is a method of software development where the product is designed, • implemented and tested incrementally until the product is finished. • Each subsequent(coming after something in time) release of the module adds function to the previous release. • The process continues till the complete system is achieved.


Related study sets

Fundamentals final exam study guide PART 1

View Set

Chapter 1: Personal Finance Basic and the Time Value of Money

View Set

International Business Law and Ethics FINAL

View Set

World History, Technological and Environmental Transformations, Civilizations and Places

View Set

Test 2 Study Material - Fundamentals

View Set