Swen


summary of Unified process
October 28, 2007, 5:07 am
Filed under: findings, rika

Summary of the unified process:

  •  Divided into 4 phases which has many time boxed iterations: iterations is a sequence of activities with an established plan and evaluation criteria, resulting in an executable release.
  • Each phase has a development compared to the before phase.
  • In each phase all the requirements disciplines are taken note and tested.
  • Each iteration will make use of use cases from all the process disciplines.
  • Supports multiple architectural models and views
  • Risks in the project are addressed at the first phase and other factors like cost, schedule, and performance are addressed also.
  • It is a developments process rather than a software process. So it inevitably misses or short-changes some of the concepts that are most important for software professionals.
  • Each phase had many iterations and progress is shown to the customer in each phase (important needed factor for task 1).
  • Each phase can take very long time to finish (important factor to consider for the task 1).

 Even though this software process shows frequent updates to the customer (which Mr. Chong wanted) it may not be completely suitable for Mr Chong because he wants’ to finish the project in 2 1/2 months time. Due to the various phases in this process it may take more time to finish than the time limit Mr Chong has.



More findings on unified process
October 26, 2007, 3:25 am
Filed under: findings, rika

Key words of the task:

describe the key software processes available

make a recommendation for which single software process to adopt

keep the customer aware of the process in the project

Minimize the customer’s present concerns.

 Does Unified process minimize customers concern?

  • It avoid potential issues of copyright infringement.

  • Unified process is divided into 4 phases called iterations.

  • Phases such as inception, Elaboration, Construction and Transition) eachPhases is results in an increment, which is a release of the system that contains added or improved functionality compared with the previous release.

  • In each phase equal effort is given for all the process disciplines (requirements, design, implementation, testing). So this will ensure the customer that his project is taking progress and all the requirements are fulfilled.

  • Use cases r used to capture the functional requirements and to define the contents of the iterations. So iteration will make use of use cases from all the process disciplines.

  • Architecture is the heart of the project team’s efforts to shape the system so unified Process supports multiple architectural models and views.

  • Elaboration phase is used as a foundation for the software development.

  • Risks are addressed by the project team early to ensure that greatest risks are addressed first.

  • Prepare a preliminary project schedule and cost estimate.

  • By the end of the elaboration phase the customer will know the performance, schedule, scalability and cost that are performed and needed in the next iteration phase.

  • By the end of the last phase (transition) the total system will be developed based on the initial release and future refinements to be incorporated over the course of several Transitions phase iterations. This phase will also provide user training and system conversions.

  • Each iteration can have many sub stages in it.

 

Difference between unified process and the other process

 

Unified process

Waterfall process

- After every iteration (step) the process disciplines are re-checked to ensure that there are no mistakes.

 

- After each step is finished, the process proceeds to the next step

- It may release system with features that are not used in their current form. So the customers who will get the system may have other skills and it may be a burden for them to use the system.

- The system has many phases so the customer will know the process for it and change the system. This process main focus is user requirements.

 

 

Similarities between unified and waterfall process

  • Both process has same process disciplines like requirements, design, implementation, testing. But unified process has business modeling and deployment.

  •  each phase in unified process go through all the process disciplines so each phase in unified is like a mini waterfall process



Spiral model
October 26, 2007, 3:22 am
Filed under: findings, yanglin

Spiral process

DEFINITION – The spiral model, also known as the spiral lifecycle model, is a systems development method (SDM) used in information technology (IT). This model of development combines the features of the prototyping model and the waterfall model. The spiral model is intended for large, expensive, and complicated projects.

The steps in the spiral model can be generalized as follows:

  1. The new system requirements are defined in as much detail as possible. This usually involves interviewing a number of users representing all the external or internal users and other aspects of the existing system.
  2. A preliminary design is created for the new system.
  3. A first prototype of the new system is constructed from the preliminary design. This is usually a scaled-down system, and represents an approximation of the characteristics of the final product.
  4. A second prototype is evolved by a fourfold procedure: (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.
  5. At the customer’s option, the entire project can be aborted if the risk is deemed too great. Risk factors might involve development cost overruns, operating-cost miscalculation, or any other factor that could, in the customer’s judgment, result in a less-than-satisfactory final product.
  6. The existing prototype is evaluated in the same manner as was the previous prototype, and, if necessary, another prototype is developed from it according to the fourfold procedure outlined above.
  7. The preceding steps are iterated until the customer is satisfied that the refined prototype represents the final product desired.
  8. The final system is constructed, based on the refined prototype.
  9. The final system is thoroughly evaluated and tested. Routine maintenance is carried out on a continuing basis to prevent large-scale failures and to minimize downtime.

Applications

For a typical shrink-wrap application, the spiral model might mean that you have a rough-cut of user elements (without the polished / pretty graphics) as an operable application, add features in phases, and, at some point, add the final graphics.

The spiral model is used most often in large projects. For smaller projects, the concept of agile software development is becoming a viable alternative. The US military has adopted the spiral model for its Future Combat Systems program.

Advantages1

  • Estimates (i.e. budget, schedule, etc.) get more realistic as work progresses, because important issues are discovered earlier.
  • It is more able to cope with the (nearly inevitable) changes that software development generally entails.
  • Software engineers (who can get restless with protracted design processes) can get their hands in and start working on a project earlier.

 

Advantages2 of the Spiral Model

·         The spiral model is a realistic approach to the development of large-scale software products because the software evolves as the process progresses. In addition, the developer and the client better understand and react to risks at each evolutionary level.

·         The model uses prototyping as a risk reduction mechanism and allows for the development of prototypes at any stage of the evolutionary development.

·          It maintains a systematic stepwise approach, like the classic life cycle model, but incorporates it into an iterative framework that more reflect the real world.

·         If employed correctly, this model should reduce risks before they become problematic, as consideration of technical risks are considered at all stages.

 

Disadvantages of the Spiral Model

·        Demands considerable risk-assessment expertise

·        It has not been employed as much proven models (e.g. the WF model) and hence may prove difficult to ‘sell’ to the client (esp. where a contract is involved) that this model is controllable and efficient. [More study needs to be done in this regard]

 

Top-down and bottom-up design

Top-down and bottom-up are strategies of information processing and knowledge ordering, mostly involving software, and by extension other humanistic and scientific system theories (see systemics).

In a top-down approach an overview of the system is first formulated, specifying but not detailing any first-level subsystems. Each subsystem is then refined in yet greater detail, sometimes in many additional subsystem levels, until the entire specification is reduced to base elements. A top-down model is often specified with the assistance of “black boxes” that make it easier to manipulate. However, black boxes may fail to elucidate elementary mechanisms or be detailed enough to realistically validate the model.

In a bottom-up approach the individual base elements of the system are first specified in great detail. These elements are then linked together to form larger subsystems, which then in turn are linked, sometimes in many levels, until a complete top-level system is formed. This strategy often resembles a “seed” model, whereby the beginnings are small, but eventually grow in complexity and completeness. However, “organic strategies”, may result in a tangle of elements and subsystems, developed in isolation, and subject to local optimization as opposed to meeting a global purpose.

Programming

Top-down programming is a programming style, the mainstay of traditional procedural languages, in which design begins by specifying complex pieces and then dividing them into successively smaller pieces. Eventually, the components are specific enough to be coded and the program is written. This is the exact opposite of the bottom-up programming approach which is common in object-oriented languages such as C++ or Java.

The technique for writing a program using top-down methods is to write a main procedure that names all the major functions it will need. Later, the programming team looks at the requirements of each of those functions and the process is repeated. These compartmentalized sub-routines eventually will perform actions so simple they can be easily and concisely coded. When all the various sub-routines have been coded the program is done.

By defining how the application comes together at a high level, lower level work can be self-contained. By defining how the lower level objects are expected to integrate into a higher level object, interfaces become clearly defined.

Advantages of top-down programming

  • Separating the low level work from the higher level objects leads to a modular design.
  • Modular design means development can be self contained.
  • Having “skeleton” code illustrates clearly how low level modules integrate.
  • Code is easier to follow, since it is written methodically and with purpose.

 Disadvantages of top-down programming

  • No functionality will exist until development of low level objects is complete.

 



More findings about prototyping
October 26, 2007, 3:12 am
Filed under: findings, richard

Different types and methods of prototyping

Throwaway prototyping

What is it? – Throwaway or Rapid Prototyping refers to the creation of a model that will eventually be discarded rather than becoming part of the finally delivered software. After preliminary requirements gathering is accomplished, a simple working model of the system is constructed to visually show the users what their requirements may look like when they are implemented into a finished system.

Advantages of throwaway prototyping

- it can be done quickly. If the users can get quick feedback on their requirements, they may be able to refine them early in the development of the software. Making changes early in the development lifecycle is extremely cost effective since there is nothing at that point to redo.

- the ability to construct interfaces that the users can test. The user interface is what the user sees as the system, and by seeing it in front of them, it is much easier to grasp how the system will work.

Evolutionary prototyping

What is it? – Evolutionary Prototyping (also known as breadboard prototyping) is quite different from Throwaway Prototyping. The main goal when using Evolutionary Prototyping is to build a very robust prototype in a structured manner and constantly refine it.

Advantages of Evolutionary prototyping

- it has an advantage over throwaway prototyping because they are functional systems. Although not fully functional, they have the all the basic features and function till the final system is delivered.

Incremental prototyping

What is it? – The final product is built as separate prototypes. At the end the separate prototypes are being merged in an overall design.

source : http://en.wikipedia.org/wiki/Evolutionary_prototyping#Types_of_prototyping



Rapid application development (RAD)
October 26, 2007, 3:04 am
Filed under: comment, syamir

Rapid application development (RAD), is a software development process developed initially by James Martin in the 1980s. The methodology involves iterative development, the construction of prototypes, and the use of Computer-aided software engineering (CASE) tools. Traditionally the rapid application development approach involves compromises in usability, features, and/or execution speed. It is described as 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.

Pros

  1. Increased speed of development through methods including rapid prototyping, virtualization of system related routines, the use of CASE tools, and other techniques.
  2. Decreased end-user functionality (arising from narrower design focus), hence reduced complexity
  3. Larger emphasis on simplicity and usability of GUI design

Cons

  1. Reduced Scalability, and reduced features when a RAD developed application starts as a prototype and evolves into a finished application
  2. Reduced features occur due to time boxing when features are pushed to later versions in order to finish a release in a short amount of time [citation needed]
  3. The data needs to already exist


summary of SDLC
October 25, 2007, 2:35 pm
Filed under: findings, yanglin

System Development Life Cycle 

The Systems Development Life Cycle (SDLC) is a conceptual model used in project management that describes the stages involved in an information system development project from an initial feasibility study through maintenance of the completed application. Various SDLC methodologies have been developed to guide the processes involved including the waterfall model (the original SDLC method), rapid application development (RAD), joint application development (JAD), the fountain model and the spiral model. Mostly, several models are combined into some sort of hybrid methodology. Documentation is crucial regardless of the type of model chosen or devised for any application, and is usually done in parallel with the development process. Some methods work better for specific types of projects, but in the final analysis, the most important factor for the success of a project may be how closely particular plan was followed.

The image below is the classic Waterfall model methodology, which is the first SDLC method and it describes the various phases involved in development.

The Waterfall Model

Briefly on different Phases:

Feasibility

The feasibility study is used to determine if the project should get the go-ahead. If the project is to proceed, the feasibility study will produce a project plan and budget estimates for the future stages of development.

Requirement Analysis and Design

Analysis gathers the requirements for the system. This stage includes a detailed study of the business needs of the organization. Options for changing the business process may be considered. Design focuses on high level design like, what programs are needed and how are they going to interact, low-level design (how the individual programs are going to work), interface design (what are the interfaces going to look like) and data design (what data will be required). During these phases, the software’s overall structure is defined. Analysis and Design are very crucial in the whole development cycle. Any glitch in the design phase could be very expensive to solve in the later stage of the software development. Much care is taken during this phase. The logical system of the product is developed in this phase.

Implementation

In this phase the designs are translated into code. Computer programs are written using a conventional programming language or an application generator. Programming tools like Compilers, Interpreters, Debuggers are used to generate the code. Different high level programming languages like C, C++, Pascal, Java are used for coding. With respect to the type of application, the right programming language is chosen.

Testing

In this phase the system is tested. Normally programs are written as a series of individual modules, these subject to separate and detailed test. The system is then tested as a whole. The separate modules are brought together and tested as a complete system. The system is tested to ensure that interfaces between modules work (integration testing), the system works on the intended platform and with the expected volume of data (volume testing) and that the system does what the user requires (acceptance/beta testing).

Maintenance

Inevitably the system will need maintenance. Software will definitely undergo change once it is delivered to the customer. There are many reasons for the change. Change could happen because of some unexpected input values into the system. In addition, the changes in the system could directly affect the software operations. The software should be developed to accommodate changes that could happen during the post implementation period.

source:http://www.startvbdotnet.com/sdlc/sdlc.aspx



useful link
October 25, 2007, 1:30 pm
Filed under: findings, yanglin

hi guys, i’ve found a website which may help us to better understand each individual process, its a simplified version. u may want to take a look at it if u find the below entries are too ”chim”. u can find the link at ur left hand side under the heading “BLOGROLL“—> computer world.  =D

 anyway, OLE has this:

A personal information management system is a software system that manages appointments, contact lists, and to-do (task) lists. For appointments, the users can make, update, and manage their appointments with other users in the company. For contact lists, the users can add new contacts, modify existing contacts, and manage their contacts address book. For to-do lists, the users can create new to-do items, modify existing items, and manage their list of tasks (i.e. to-do items) that they must do.

Please note the above is a high-level description of what the personal information management system should do, but all the actual details were lost (i.e. Daniel did not hand over anything when he quit!)



Show Initial to customer
October 24, 2007, 4:31 am
Filed under: findings, richard

Show initial to customer

The real process is called software prototyping. Its the process of creating an incomplete model of the future full-featured software program, which can be used to let the users have a first idea of the completed program or allow the clients to evaluate the program.

Some Advantages of Prototyping process

Reduces time and cost

- Prototyping can improve the quality of requirements and specifications provided to developers. Because changes cost exponentially more to implement as they are detected later in development, the early determination of what the user really wants can result in faster and less expensive software.

Improved and increased user involvement

- Prototyping requires user involvement and allows them to see and interact with a prototype allowing them to provide better and more complete feedback and specifications. The presence of the prototype being examined by the user prevents many misunderstandings and miscommunication that occur when each side believe the other understands what they said. Since users know the problem domain better than anyone on the development team does, increased interaction can result in final product that has greater tangible and intangible quality. The final product is more likely to be satisfy the users desire for look, feel and performance.

 Some Disadvantages of prototyping

Excessive development time of the prototype

- A key property to prototyping is the fact that it is supposed to be done quickly. If the developers lose sight of this fact, they might try to develop a prototype that is too complexed. When the prototype is thrown away the precisely developed requirements that it provides may not yield a sufficient increase in productivity to make up for the time spent developing the prototype. Users can become stuck in debates over details of the prototype, delaying implementation of the final product and holding up the development team.

Expense of implementing prototyping

- The start up costs for building a development team focused on prototyping may be high. Many companies have development different methods, and changing them can mean retraining, retooling, or both. Many companies tend to just jump into the prototyping without bothering to retrain their workers as much as they should.

Best projects to use prototyping

Its been said that prototyping would be most beneficial in systems that will have many interactions with users.



Unified process
October 23, 2007, 1:30 pm
Filed under: findings, rika

Unified process  

The Unified Software Development Process or Unified Process is a popular iterative and incremental software development process framework. The best-known and extensively documented refinement of the Unified Process is the Rational Unified Process .This process is not simply a process, but rather an extensible framework which should be customized for specific organizations or projects. Since it is a customize framework it is often impossible to say whether a refinement of the process was derived from UP or from RUP, and so the names tend to be used interchangeably. Unified Process is generally used to describe the generic process, including those elements which are common to most refinements.it is is also used to avoid potential issues of copyright infringement. 

The characteristics of the unified process

The Unified Process is an iterative and incremental development process. Unified process project life is divided into Inception, Elaboration, Construction and Transition  phases which are divided into a series of timeboxed iterations. Each iteration results in an increment, which is a release of the system that contains added or improved functionality compared with the previous release. Each iteration will include work such as Requirements, Design, Implementation, Testing and the relative effort and emphasis will change over the course of the project.

Four Phases of unified process

1. Inception Phase

Inception is the smallest phase in the project, and ideally it should be quite short.

Goals of this phase:

*establish a justification for the project.

*Establish the project scope and boundary conditions.

*Outline the use cases and key requirements that will drive the design tradeoffs . 

*Outline one or more candidate architectures.

*Identify risks .

*Prepare a preliminary project schedule and cost estimate.

The Lifecycle Objective Milestone marks the end of the Inception phase.

2 . Elaboration Phase

During the Elaboration phase the project team is expected to capture a healthy majority of the system requirements. However, the primary goals of Elaboration are to address known risk factors and to establish and validate the system architecture. By the end of the Elaboration phase the system architecture must have stabilized and the executable architecture baseline must demonstrate that the architecture will support the key system functionality and exhibit the right behavior in terms of performance, scalability and cost.

The final Elaboration phase deliverable is a plan (including cost and schedule estimates) for the Construction phase. At this point the plan should be accurate and credible; since it should be based on the Elaboration phase experience and since significant risk factors should have been addressed during the Elaboration phase.

The Lifecycle Architecture Milestone marks the end of the Elaboration phase. 

3 Construction Phase

Construction is the largest phase in the project. In this phase the remainder of the system is built on the foundation laid in Elaboration. System features are implemented in a series of short, timeboxed iterations. Each iteration results in an executable release of the software.

The Initial Operational Capability Milestone marks the end of the Construction phase. 

4. Transition Phase

The final project phase is Transition. In this phase the system is deployed to the target users. Feedback received from an initial release (or initial releases) may result in further refinements to be incorporated over the course of several Transition phase iterations. The Transition phase also includes system conversions and user training.

The Product Release Milestone marks the end of the Transition phase. 

Use Case

In Unified process use case is used to capture the functional requirements and to define the contents of the iterations. Each iteration takes a set of use cases or scenarios from requirements all the way through implementation, test and development. 

Architecture Centric

The Unified Process insists that architecture sit at the heart of the project team’s efforts to shape the system. Since no single model is sufficient to cover all aspects of a system, the Unified Process supports multiple architectural models and views.One of the most important deliverables of the process is the executable architecture baseline which is created during the Elaboration phase. This partial implementation of the system serves to validate the architecture and act as a foundation for remaining development.

source :http://en.wikipedia.org/wiki/Unified_Process



Systems Development Life Cycle (SDLC)
October 23, 2007, 11:53 am
Filed under: findings, yanglin

Systems Development Life Cycle (SDLC) or sometimes just (SLC) is defined as a software development process, although it is also a distinct process independent of software or other information technology considerations. It is used by a systems analyst to develop an information system, including requirements, validation, training, and user ownership through investigation, analysis, design, implementation, and maintenance. SDLC is also known as information systems development or application development. An SDLC should result in a high quality system that meets or exceeds customer expectations, within time and cost estimates, works effectively and efficiently in the current and planned information technology infrastructure, and is cheap to maintain and cost-effective to enhance. SDLC is a systematic approach to problem solving and is composed of several phases, each comprising multiple steps:

  • The software concept – identifies and defines a need for the new system
  • A requirements analysis – analyzes the information needs of the end users
  • The architectural design – creates a blueprint for the design with the necessary specifications for the hardware, software, people and data resources
  • Coding and debugging – creates and programs the final system
  • System testing – evaluates the system’s actual functionality in relation to expected or intended functionality.
1. Implementation 2. Testing 3. Evaluation or
1. Feasibility Study 2. Analysis 3. Design 4. Development 5. Implementation 6. Maintenance or
1. Feasibility Study 2. Analysis 3. Design 4. Implementation 5. Maintenance or
1. Feasibility Study 2. Analysis 3. Design 4. Development 5. Testing 6. Implementation 7. Maintenance or
1. Analysis (including
Feasibility Study)
2. Design 3. Development 4. Implementation 5. Evaluation or
1. Feasibility Study 2. Analysis 3. Design 4. Implementation 5. Testing 6. Evaluation 7. Maintenance

The last row represents the most commonly used Life Cycle steps

 

The ‘Systems Life Cycle’ (UK Version)

The SDLC is referred to as the Systems Life Cycle (SLC) in the United Kingdom, whereby the following names are used for each stage:

  1. Terms Of Reference — the management will decide what capabilities and objectives they wish the new system to incorporate;
  2. Feasibility Study — asks whether the managements’ concept of their desired new system is actually an achievable, realistic goal, in-terms of money, time and end result difference to the original system. Often, it may be decided to simply update an existing system, rather than to completely replace one;
  3. Fact Finding and Recording — how is the current system used? Often questionnaires are used here, but also just monitoring (watching) the staff to see how they work is better, as people will often be reluctant to be entirely honest through embarrassment about the parts of the existing system they have trouble with and find difficult if merely asked;
  4. Analysis — free from any cost or unrealistic constraints, this stage lets minds run wild as ‘wonder systems’ can be thought-up, though all must incorporate everything asked for by the management in the Terms Of Reference section;
  5. Design — designers will produce one or more ‘models’ of what they see a system eventually looking like, with ideas from the analysis section either used or discarded. A document will be produced with a description of the system, but nothing is specific — they might say ‘touchscreen’ or ‘GUI operating system’, but not mention any specific brands;
  6. System Specification — having generically decided on which software packages to use and hardware to incorporate, you now have to be very specific, choosing exact models, brands and suppliers for each software application and hardware device;
  7. Implementation and Review — set-up and install the new system (including writing any custom (bespoke) code required), train staff to use it and then monitor how it operates for initial problems, and then regularly maintain thereafter. During this stage, any old system that was in-use will usually be discarded once the new one has proved it is reliable and as usable.
  8. Use – obviously the system needs to actually be used by somebody, otherwise the above process would be completely useless.
  9. Close – the last step in a system’s life cycle is it’s end, which is most often forgotten when you design the system. The system can be closed, it can be migrated to another (more modern platform) or it’s data can be migrated into a replacing system.

Systems Development Life Cycle: Building the System

All methods undertake the seven steps listed under insourcing to different degrees:

Insourcing

Insourcing having IT specialists within an organization to build the organization’s system by

  • Planning – establishing the plans for creating an information system by
    • Defining the system to be developed – based on the systems prioritized according to the organization’s critical success factor (CSF), a system must be identified and chosen
    • the project scope – a high level of system requirements must be defined and put into a project scope document
    • Developing the project plan – – all details from tasks to be completed, who completed them and when they were completed must be formalized
    • Managing and monitoring the project plan – this allows the organization to stay on track, creating project milestones and feature creeps which allow you to add to the initial plan
  • Analysis – the users and IT specialists collaborate to collect, comprehend, and logistically formalize business requirements by
    • Gathering the business requirements’ – IT specialists and knowledge workers collaborate in a joint application design (JAD) and discuss which tasks to undertake to make the system most successful
    • Analyzing the requirements – business requirements are prioritized and put in a requirements definition document where the knowledge worker will approve and place their signatures
  • Design – this is where the technical blueprint of the system is created by
    • Designing the technical architecture – choosing amongst the architectural designs of telecommunications, hardware and software that will best suit the organization’s system and future needs
    • Designing the systems model – graphically creating a model from graphical user interface (GUI), GUI screen design, and databases, to placement of objects on screen
    • Write the test conditions – Work with the end users to develop the test scripts according to the system requirements
  • Development – executing the design into a physical system by
    • Building the technical architecture – purchasing the material needed to build the system
    • Building the database and programs – the IT specialists write programs which will be used on the system
  • Testing – testing the developed system
    • Test the system using the established test scripts – test conditions are conducted by comparing expected outcomes to actual outcomes. If these differ, a bug is generated and a backtrack to the development stage must occur.
  • Deployment – the systems are placed and used in the actual workforce and
    • The user guide is created
    • Training is provided to the users of the system – usually through workshops or online
  • Maintenance – keeping the system up to date with the changes in the organization and ensuring it meets the goals of the organization by
    • Building a help desk to support the system users – having a team available to aid technical difficulties and answer questions
    • Implementing changes to the system when necessary.

Selfsourcing

Selfsourcing having knowledge workers within an organization build the organization’s system

  • Align selfsourcing applications to the goals of the organization – All intentions must be related to the organization’s goals and time management is key.
  • Establish what external assistance will be necessary – this may be where an IT specialist in the organization may assist
  • Document and formalize the completed system created for future users –
  • Provide ongoing support – being able to maintain and make adjustments to the system as the environment changes..

Prototyping

Prototyping creating a model, which displays the necessary characteristics of a proposed system

  • Gathering requirements – these requirements will be stated by the knowledge workers as well as become apparent in comparison with the old or existing system
  • Create prototype of system – Confirm a technically proficient system by using prototypes and create basic screen and reports
  • Review by knowledge workers – create a model of the system that will be analyzed, inspected and evaluated by knowledge workers who will propose recommendations to have the system reach its maximum potential
  • Revise the prototype – if necessary
  • Market the idea of the new system – use the prototype to sell the new system and convince the organization of the advantages of switching up to the new system

Outsourcing

Outsourcing having a third party (outside the organization) to build the organization’s system so expert minds can create the highest quality system by.

  • Outsourcing for development software -
    • Purchasing existing software and paying the publisher to make certain modifications and paying the publisher for the right to make modifications yourself
    • Outsourcing the development of an entirely new unique system for which no software exists
  • Selecting a target system – make sure there is no confidential information critical to the organization that others should not see. If the organization is small enough, consider selfsourcing
  • Establish logical requirements – IT specialists and knowledge workers collaborate in a joint application design (JAD) and discuss which tasks to undertake to make the system most successful to gather business requirements
  • Develop a request for a proposal – a request for proposal (RFP) is created and formalized. It includes everything the home organization is looking for in the system and can be used as the legal binding contract
  • Evaluate request for proposed returns and choose a vendor amongst the many who have replied with different prototypes
  • Test and Accept a Solution – the chosen system must be tested by the home organization and a sign-off must be conducted
  • Monitor and Reevaluate – keep the system up to date with the changing environment and evaluate the chosen vendor’s ability and accommodate to maintain the system

source:http://en.wikipedia.org/wiki/Systems_Development_Life_Cycle