Tata Groups

Embed Size (px)

Citation preview

  • 7/28/2019 Tata Groups

    1/16

    1

    Assignment # 2

    Project Management

    Submitted to:

    Sir Zikria Mian

    Submitted by:

    Asia (11123046)

    Maaz Ayub (12233003)

    Asima Kanwal (11133016)

    Amna Jamil (11133014)

    Tehreem Abdul Latif (11123022)

    Submission date:

    09/04/2013

    Gift Business School

    Gujranwala

  • 7/28/2019 Tata Groups

    2/16

    2

    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

    Control on management Monitor large projects Detailed steps Evaluate costs and completion targets Documentation Well defined user input

  • 7/28/2019 Tata Groups

    3/16

    3

    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

    Factors to be considered before choosing SDLC

    1. Complexity of the project2. Nature of the project developmentwhether it is a software maintenance project or an

    embedded product development

    3. Size of your organization, the project and the team4. Structure of your teamwhether it is in house or geographically distributed5. Alignment with your organizations stage of business and its business strategywhether

    your organization is a startup with a new product launch or an established enterprise that

    is releasing a new product feature

    6. Engineering capabilities of your developers7. Culture of your organizationwhether the teams are used to the collaborative work

    culture or not, as adopting some SDLC methodologies like agile, demands collaborative

    work culture

    8. The industry of your business, as different industries may have very different softwaredevelopment needs and objectives

  • 7/28/2019 Tata Groups

    4/16

    4

    Software Development Life Cycle (SWDLC)

    SWDLC is a component of the SDLC. In systems that require the development of software based

    on the systems design created by the SDLC, the SWDLC is initiated. The SWDLC provides a

    reference set of expected phases necessary to develop the software. They contain or describe the

    tasks and procedures that must be performed in each phase; deliverables produced by each phase;

    and metrics for setting schedules, estimating costs, and measuring productivity. The SWDLC

    also provides a standard operating procedure and framework that supports a structured,

    engineered approach to software development.

    Building programs follows a 3 phases SWDLC of Design, coding and testing.

    Design:

    This phase is where the parts of the detailed systems design that will be converted to an

    application program are designed at a level that can be used by a programmer to write the code,

    for example, code the program in C or COBOL.

    Code:

    The coding phase maps the design into program procedures.

    Test:

    All modules of code are subject to a variety of tests to detect and remove errors. After thorough

    testing, the program is converted to operations.

    Requirement analysis--> Design-->Coding-->Module level testing-->

    Integration and system testing-->Delivery, Implementation and maintenance

  • 7/28/2019 Tata Groups

    5/16

    5

    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. Therequirement 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

    Design CodingModule level

    testing

    Delivery

    Implementation

    and

    maintenance

  • 7/28/2019 Tata Groups

    6/16

    6

    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.

    Module level Testing:

    Individual developed modules are tested here. It is also called as the unit testing. The testing is

    performed for each of the module separately.

    Integration and system designing:

    All the modules are collected and integrated appropriately with each other. Interface is provided

    among them, and then the whole system is tested fully.

    Delivery, implementation and maintenance

    Once the complete system is tested then that system is delivered to the customer who will

    implement it on its organization site. After delivery, any modification or changes can be made to

    help in maintenance.

    This is the complete software development life cycle. This is the basic general process which is

    followed to develop each software product. The 40-20-40 rule emphasizes strong front-end

    design (40%) and back-end testing (40%), whereas the mechanical programming (coding) task is

    de-emphasized (20%).

    Difference of SDLC and SDWLC

    SDLC is an acronym for Software Development Life Cycle. The SLDC is a phased methodology

    for managing software development projects. The SDLC is a generic, macro level, summary of

    all software development project activities ranging from concept through commercialization (or

    delivery).

    SWDLC is an acronym for Software Development Life Cycle. However, the SWDLC acronym

    is used in a different context as compared to SDLC.

    SWDLC is a subset of phases integrated into the overall SDLC. SWDLC specifically refers to

    the project management framework, or methodology, of standard phases to help a firm better

  • 7/28/2019 Tata Groups

    7/16

    7

    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.

  • 7/28/2019 Tata Groups

    8/16

    8

    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.

    Advantages of Spiral Model

    Spiral Life Cycle Model is one of the most flexible SDLC models in place. Developmentphases can be determined by the project manager, according to the complexity of the

    project.

    Project monitoring is very easy and effective. Each phase, as well as each loop, requiresa review from concerned people. This makes the model more transparent.

    Risk management is one of the in-built features of the model, which makes it extraattractive compared to other models.

    Changes can be introduced later in the life cycle as well. And coping with these changesisnt a very big headache for the project manager.

    Project estimates in terms of schedule, cost etc become more and more realistic as theproject moves forward and loops in spiral get completed.

    It is suitable for high risk projects, where business needs may be unstable.

    http://www.ianswer4u.com/2011/12/earned-value-management-analysis.htmlhttp://www.ianswer4u.com/2011/12/earned-value-management-analysis.html
  • 7/28/2019 Tata Groups

    9/16

    9

    A highly customized product can be developed using this.Disadvantages of spiral Model

    Cost involved in this model is usually high. It is a complicated approach especially for projects with a clear SRS. Skills required, evaluating and reviewing project from time to time, need expertise. Rules and protocols should be followed properly to effectively implement this

    model. Doing so, through-out the span of project is tough.

    Due to various customizations allowed from the client, using the same prototype inother projects, in future, is difficult.

    It is not suitable for low risk projects.

    Meeting budgetary and scheduling requirements is tough if this development processis followed.

    Amount of documentation required in intermediate stages makes management ofproject very complex affair.

    I hope after reading the benefits (pros) and drawbacks (cons) of Spiral model, it will be better

    judge to which model suits our requirements best.

    Spiral Approach Phases

    1. Customer Communication: Includes understanding the system requirements by continuouscommunication between the customer and the system analyst.

    2. Planning: Includes estimating Schedule, cost, and resource for the iteration.3. Risk Analysis: includes identifying, estimating, and monitoring technical and management

    risks, such as schedule slippage and cost overrun.

    4. Engineering: Includes requirement gathering and design of the software system.5. Construction and release: Includes coding, testing and deploying software at the customer

    site and providing user-support documents.

    6. Customer Evaluation: Includes evaluation of software by the customer and implementingfeedback in the next iteration of the software development.

  • 7/28/2019 Tata Groups

    10/16

    10

    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.

  • 7/28/2019 Tata Groups

    11/16

    11

    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, ratherthan the months and years typically experienced using conventional techniques.

    To provide an environment where end-user involvement is paramount. RAD will not besuccessful without total end-user involvement.

    To achieve rapid development using highly trained and motivated resources in astructured team environment.

    Advantages and disadvantages of RAD Model

    These are following the advantages and disadvantages of RAD model, which are as under;

    Advantages

    The advantages of Rapid Application Development (RAD) are:

  • 7/28/2019 Tata Groups

    12/16

    12

    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 systemrequirements 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 forsuccess of the RAD process.

    Sometimes the team may ignore necessary quality parameters such asconsistency, reliability and standardization.

    Strengths and weaknesses of RAD Model

    These are following the strength and weaknesses of the Model, which are as under;

    Strength

    The operational version of an application is available much earlier than with Waterfall,Incremental, or Spiral frameworks.

  • 7/28/2019 Tata Groups

    13/16

    13

    Because RAD produces systems more quickly and to a business focus, this approachtends 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 interfacesare required.

  • 7/28/2019 Tata Groups

    14/16

    14

    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 amulti-waterfall cycle. Cycles are

    divided up into smaller, more easily managed modules. Each module passes through the

    requirements, design, implementation and testingphases. 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.

    http://istqbexamcertification.com/what-is-waterfall-model-advantages-disadvantages-and-when-to-use-it/http://istqbexamcertification.com/what-is-waterfall-model-advantages-disadvantages-and-when-to-use-it/http://istqbexamcertification.com/what-is-waterfall-model-advantages-disadvantages-and-when-to-use-it/http://istqbexamcertification.com/what-is-waterfall-model-advantages-disadvantages-and-when-to-use-it/http://istqbexamcertification.com/what-is-waterfall-model-advantages-disadvantages-and-when-to-use-it/http://istqbexamcertification.com/what-is-a-software-testing/http://istqbexamcertification.com/what-are-the-software-development-life-cycle-phases/http://istqbexamcertification.com/what-are-the-software-development-life-cycle-phases/http://istqbexamcertification.com/what-are-the-software-development-life-cycle-phases/http://istqbexamcertification.com/what-are-the-software-development-life-cycle-phases/http://istqbexamcertification.com/what-is-a-software-testing/http://istqbexamcertification.com/what-is-waterfall-model-advantages-disadvantages-and-when-to-use-it/
  • 7/28/2019 Tata Groups

    15/16

    15

    Advantages of Incremental Model

    It handles large projects Less costly to change the scope/requirements It has the functionality of the water fall and the prototyping model Easier to manage the project as it is broken down into smaller pieces Changes can be done through the development stages Errors are easy to be identified Results are obtained early and periodically Progress can be measured Easier to manage risk, high risk part is done first Lowers initial delivery costDisadvantages of Incremental Model

    When rectifying a problem in a functional unit, then all the functional units will have tobe corrected thus taking a lot of time

    Requires good planning designing More resources may be required

  • 7/28/2019 Tata Groups

    16/16

    16

    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 waterfallWhen to use the Incremental Model

    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. A new technology is being used Resources with needed skill set are not available There are some high risk features and goals

    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.

    http://istqbexamcertification.com/what-is-waterfall-model-advantages-disadvantages-and-when-to-use-it/http://istqbexamcertification.com/what-is-waterfall-model-advantages-disadvantages-and-when-to-use-it/