Monday, May 17, 2010

cs507 3rd assignment solution

Q. 1: How can you describe the factors, which will ensure the successful implementation of SDLC? Explain at least three.

Solution:



SYSTEM DEVOLPMENT LIFE CYCLE (SDLC)



Software Development Life Cycle or SDLC is a model of a detailed plan on how to create, develop, implement and eventually fold the software. It’s a complete plan outlining how the software will be born, raised and eventually be retired from its function.


SDLC is also known as information system development or application development.

SDLC is a system approach to problem solving and made up of several phases, each comprised of multiple steps.

SDLS provides the following;


a) Structure

b) Method

c) Control

d) Checklist


There are many different Models of SDLC where each of them will be perfect for a certain business setting.

Other models are chosen based on the available resources and skills, while others are chosen based on the language or toolkits they will be using. Usually, these models are divided into two categories;

a) Waterfall Model

b) Iterative model


a) Waterfall Model/Classic lifecycle/Linear sequential Model


The water model is a software development model. The Waterfall Model of SDLC refers to the idea of creating software by using traditional planning, testing and implementation. using this mode; developers will have strong documentation of software they develop.

b) Iterative model

The Iterative model on the other hand, uses constant modeling or prototyping. Developers just take a look at the problem (objective based) and constantly create prototypes to be constantly evaluated by the intended users. In these models customer feed back is taken at each phase and project is modified. Prototypes are use in these models.



c) Incremental Model

Incremental models, software is built not written. Software is constructed step by step in the same way a building is constructed.

Factors


There are several factors that will ensure the success of the implementation of SDLC.

These factors are not the steps in SDLC rather they are the external factors that will dictate whether SDLC will be followed which in turn assure the success of the developed program.


1.Management support: -


Developers, especially those who are working with a company have to work with managers in creating this type of software.

Developing software will always have its price since it will involve humans working on software.

Developers need to have the support of the management as much as possible since the management will dictate whether they need the product or not.

2. Technical and business expertise: -


There are regular programmers and there are really smart programmers who just know what to do even when the software’s objective is presented for the first time. These programmers know what SDLC model to use together with the languages or toolkits that need to be learn to ensure this program is a success.

On the other hand, business expertise is also important in software development cycle since they will dictate the demand for particular software. Business expertise is also important in (SDLC) since they will determine whether the software will eventually be a factor in time and money saving.
3.Complete documentation for maintenance: -



Granting the results of the software development is a success; it’s time to place them in all in papers. Success in building software will only be gauged once they are released to the pubic with ease. Although there will be problems, it’s up to the developers to maintain these programs until these are decommissioned.
4. Well defined procedures: -


In every process there are procedures that seemed identical with another procedure. Developers should have a clear understanding of each phase, the goal of a certain step and evaluate of if the goal of a certain procedure is followed.

5.Focal point designation: -





Some parts of the program should be considered more important than other parts. Choosing which one is very important since it will not only help or destroy the process of SDLC, it will also assist in developing or the burying of the software.

Of course each program should be thoroughly checked but with a focal point, there will always be some strong points in the developed software compared to a mediocre service.


Q. 2: List down the pros and cons of Incremental Model? Also mention when to use the Incremental Model?

Solution:


Incremental Model: -


Incremental model is an evolution of waterfall model.

Incremental models, software is built not written. Software is constructed step by step in the same way a building is constructed.

Incremental development is a scheduling and staging strategy, in which the various parts of the system are developed.

Incremental development is 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 interaction in between.

Incremental development is an essential part of the Rational Unified Process, the Dynamic Systems Development Method, Extreme Programming and generally the agile software development frameworks.
Use of incremental model


a) It is a popular model software evolution used many commercial software companies and system vendor.

b) An Incremental Pharmacy Informatics Model for Use in a Rural Hospital

c) To estimate the retention indexes of aromatic compounds

d) For Developing Computer-Based Learning Environments for Problem-Based Learning

e) Incremental software development model may be applicable to projects where

(1) Software Requirements are well defined, but realization may be delayed.

(2) The basic software functionality is required early.



All these different software development models have their own advantages and disadvantages.

Following are the some pros and cons of incremental model.

Pros of Incremental Model


Certain pros that can be very important are;

1) It is more flexible. Users may experiment with delivered increments while others are being developed.

2) Good for large projects.

3) More reliable for Critical projects.

4) Requirements and specifications for each increment may be developed.

5) Easy to manage more manageable processes. Intended to combine some of the advantages of prototyping but with a more manageable process and better system structure.

6) Incremental model includes use of the software by user to for changes.

7) Generates working software quickly and early during the software life cycle.

8)Easier to manage risk because risky pieces are identified and handled during its iteration.

9) It provides more flexibility in decision-making.

10) Incremental model reduced risks.

11) Early increments can be implemented with fewer people.

12) Easier to test and debug during a smaller iteration.

13) Incremental development is especially useful when staffing us unavailable for a complete implementation by the business deadline.

14) System is developed and delivered in increments after establishing an overall architecture.

15) It involves both development and maintenance.

16) There is a working system at all times.

17) Clients can see the system and provide feedback.
Cons of Incremental Model


Certain cons that can be very important are;



1) Each phase of an iteration is rigid and do not overlap each other.

2) Problems may arise pertaining to system architecture because
not all requirements are gathered up front for the entire software life cycle.

3) Doesn’t work well for smaller projects.

4) Project’s success is highly dependent on the risk analysis phase.

5) It can be a costly model to use.

6) It is difficult to break down the total system at early stage of product development to determine.

7) It requires highly specific expertise.

8)We can’t be seen the whole picture until the entire system is built.

9) It is not friendly.



10) In incremental each new build must be integrated with previous builds and any existing systems.

0 comments:

Post a Comment