Software Development And Methodologies Information Technology Essay
An understanding of how software has impacted our society would be important for any real appreciation of software development to take place. In this assignment, you are to study the effects of software on society, and also undertake a comparative study of different methodologies used in modern software development.
The following are examples of software development methodologies:
Linear Sequential models: e.g. the classic life-cycle;
Rapid Application models
Evolutionary Software process models.
You are to undertake a study of at least four development methodologies. You may wish to use examples of methodologies from the list above, or look for other types publicised in other literature.
Upon your research, write a short report of approximately 2000 to 2500 words discussing both of the following:
A comparative analysis of the four development methodology you have selected.
When and under what circumstances each methodology would be most effective.
In order to facilitate your discussion, you should choose methodologies that are differing in many aspects, not methodologies that are similar. You should also note that a discussion of the steps in the methodology itself, though relevant in your report, should not be the main focus of your report.
- END OF ASSIGNMENT -
In the way of choosing a methodology for comparison, I have no difficulty for the first two methodologies since the first two methodologies (SDLC and Prototyping) have many different aspects. For the third and the forth, I have a little problem. Then I chose a spiral model. Once again, I find that the spiral model combines the features of the SDLC and Prototyping. In the end, I chose the RAD model for the third methodology and object oriented technique for the last methodology because the new object type of methodology and the different aspects of the first two.
Linear Sequential Model
This is also called "Classic Life Cycle" or "Waterfall" model or "Software Life Cycle" suggests a methodical and chronological move toward to software development that begins at the method stage and development through analysis, blueprint, coding, testing and support. This model was developed in 1970 by W. W. Royce to set up a well-organized move towards for software development. The waterfall model gets its name because of the cascading effect of one phase. In this model every stage with both specific begin and ending point, with delivery to the next stage identified.
System requirements definition (concept software): define the needs of the new system.
Software requirements analysis (specification): analysis of information needs.
Introduction (architectural) design: create a blueprint for design.
Detailed design: design of each piece.
Coding, debugging and unit testing (construction): create and test programs.
Integration, implementation and testing of the system: integrating all components and evaluate the actual functionality of the system in relation to expected or intended functionality by installing and operating it.
Maintenance: designer to do the iteration process in order to ensure they include all the requirements and specifications.
Diagram taken from:
C2002 Software Engineering Study Guide Version 2.2, Informatics Computer School (October 5, 2010).
Simple and desirable approach when requirements are clear and well understood in the beginning.
Provide clear cut templates for analysis, testing, design, coding, and support.
This is the enforced discipline approach.
Much better than “codeandfix” practices.
Non-technical managers and those responsible for external development projects, such as (demand) such an approach.
It is hard for customers to state clearly the requirements at the earliest. There is always a number of degree of natural doubt at the beginning of every project.
Difficult and expensive to change when changes happen in the afterward stages.
Customers can view the version worked only at the end. Thus any proposed changes here are not only difficult to combine but also expensive. This can lead to disaster if a problem is detected which was deposited into this stage.
The time frame (typically 3 years) is too long from concept to operation, and consequently stakeholder commitment evaporates.
The time frame (usually 3 years) is too long from concept of operations, and consequently evaporates stakeholder commitment.
Easily modified and extended model (representation, simulation or demonstration) of the planned software system, possibly including user interfaces and input / output functions
Model prototyping is system development method (SDM) in which the prototype (Preliminary estimates of the final system or product) is built, tested, and then repeated as necessary until acceptable prototype finally achieved from which complete system or product can now be developed.
Three kinds of prototyping:
Disposable Prototyping: prototype serves only as a rough exhibition requirements and then discarded. Should be used to understand the needs of the poor.
Evolutionary Prototyping: prototype further refined and evaluated each time.
Should be used for well understood.
Using the 3 classes of methods and tools:
Fourth Generation Techniques.
Software components that can be reused.
Prototyping can improve communication between developers and consumer.
Clients have a well again understanding of their necessities.
Client straight occupied in detailed requirements.
Improving the requirements definition end-users requests.
Prototypes can be simply personalized or yet discarded.
Early on functionality. Clients can rapidly spot on the real system (1 or 2 days).
Clients may be happier with the system developed using prototyping.
Created for the change was probably low maintenance cost.
Prototyping can reduce the cost of redesign if problems are detected early when they are cheap to fix
The prototype can serve as:
The basis for the operational specifications and assist the needs of identity.
A marketing tool.
Using prototyping during development can reduce the amount of code finally written.
Documentation focuses on the end product not the product of evolution.
Provides risk control.
The consumer doesn’t need to wait lengthy as in the Linear Model.
Clientele could think that the prototype model as a functioning version.
Developers can also make the implementation of a compromise in which they could make quick fixes to prototype and create it as version those workings.
Frequently the client expects that some slight changes for this prototype will be more than sufficient to their requirements. They fail to understand that no consideration was given to the overall quality of the software in a hurry to develop prototype
Hard to apply when construct huge systems.
Require high straight expenses (software for databases, modeling, creation of reports, and generation of the screen).
Prototyping can also limit creativeness in blueprint comes from the user.
Diagram is taken from: http://cmasyta.files.wordpress.com/2007/09/prototypingmodel.gif (October 17, 2010).
Rapid Application Development (RAD) Model
Rapid application development (RAD) is an incremental software development process model that emphasizes an extremely short development cycles. Model RAD is a "high speed" reworked copy of the linear sequential model in which quick development is achieved by using component-based structure. Used mostly for information systems function, the RAD move toward includes the subsequent stages:
The flow of information between business functions is modeled in way to answer the following problem:
What information that encourages business procedure?
What information is created?
Who create it?
Where information go?
Who processed it?
Information flow is defined as element of the business modeling stage is developed into a set of information things required to maintain the business. Personalities (called attributes) of every entity are acknowledged and defined the connection between things.
The data matters defined in the data modeling stage are changed to get the information pour needed to apply commerce functions. Dispensation descriptions are prepared to add, modify, delete, or retrieve data objects.
RAD model suppose the use of RAD tools like VB, VC + +, Delphi, etc. slightly than creating software by conservative third generation programming language. RAD model plant to use once more existing program mechanism (when possible) or generate reusable mechanism (when necessary). In all cases, computerized utensils are used to make possible the building of software.
Testing and turnover
Because the RAD process emphasizes return, many components of the program has been tested. This minimizes the testing and development time.
Diagram taken from: Software engineering page 33. (October 17, 2010)
The RAD approach has also shortcomings:
For huge projects, but calculable, RAD requires enough individual resources to make the suitable amount of RAD teams.
RAD requires developers and customers who are dedicated to rapid-fire action to get a whole structure in a little time many frames. If the dedication is less than either constituency, RAD development will failed.
Not every type of applications suitable for the RAD. If the system cannot correctly modularized, building the required mechanism for RAD will challenging. If towering performance is a problem and performance must accomplish during change boundary for system components, RAD approach cannot work.
RAD is not suitable when high technical danger. This happens when new function makes serious draw on of new technology or when new software require a high level of interoperability with offered computer programs.
OBJECT ORIENTED TECHNIQUE
Object oriented technique also known as reuse model. It combines data development methodologies and procedures into unified objects. A system is viewed as a compilation of classes and objects, and subsequent connection. Using object oriented can expansion to make easy the reusability of software plus supportability. Object oriented reputation increased in performance with growing complication of software systems. Object oriented includes: object oriented Analysis (OOA), object oriented design (OOD) and object oriented programming (OOP). Three essence of Object oriented: encapsulation, classification of objects and inheritance.
In object oriented model, library software modules are maintained that can be copied for use in any system. These components consist of two types: procedural modules and database modules. When building a new system, the developer will "borrow" a copy of a module of the system library and then plug it into a function or procedure. If the modules required are not available, developer will build, and keep a copy in the library system for future usage. If the module well engineered, the developer with minimal changes can implement them.
Step of OO technique
Definition of requirements.
Initial system requirements are collected.
Definition of objects.
Identify the system related objects.
Collection of objects.
The system libraries are scanned to determine whether or not the needed objects are available. Copies of the needed objects are downloaded from the system.
Creation of customized objects.
Objects that have been identified as needed, but that are not available in the library are created.
A prototype version of the system is created and/or modified using the necessary objects.
The prototype is evaluated to determine if it adequately addresses customer needs and requirements.
Requirements are further refined as a more detailed version of the prototype is created.
Objects are refined to reflect the changes in the requirements.
Diagram taken from: http://www.edrawsoft.com/Jacobson-Use-Case.php (October 17, 2010)
Owners can participate in reducing the problem solution.
Lower maintenance expenses because the object analyses encourage complete solution.
This model was declared a user perspective of reality.
Software development faster and higher level of accuracy.
It is easier to maintain because its structure is inherently separated.
Objects that can be reused.
It is easier to scale, large systems can be created by assembling reusable subsystems.
Can be tricky for those with a conditions prepared analysis.
Bit tricky to learn because it uses a dissimilar move toward to begin the difficulty.References:
C2002 Software Engineering Study Guide Version 2.2, Informatics Computer School.
Linear Sequential Model
URL: http://it.toolbox.com/wiki/index.php/Linear_Sequential_Models (Sunday, 3 October 2010)
Maner, Walter (1997). PROTOTYPING.
URL: http://csweb.cs.bgsu.edu/maner/domains/Proto.htm (Sunday, 3 October 2010)
URL: http://csweb.cs.bgsu.edu/maner/domains/Proto.htm#2 (Thursday, 7 October 2010)
URL: http://it.toolbox.com/wiki/index.php/Prototyping_Model (Thursday, 7 October 2010)
Software Engineering - Roger S Pressman [5th edition] page 32
Software Development Life Cycle (SDLC), Process and Business Model
URL: http://www.stylusinc.com/Common/Concerns/SoftwareDevtPhilosophy.php (Thursday, 7 October 2010)
Indicate all references, e.g. Web-site URL or reference books, used in the preparation of the assignment.
Students are to indicate the following items of information in referencing:
Author of the reference
Title of the reference
Year of edition
Pages to which information was taken from.
An example of such a referencing would be as follows:
[PRE97] Pressman, Roger S., Software Engineering: A Practitioner’s Approach (4th Edition), McGraw-Hill International Editions, 1997. Pages 400 to 405.
If you are drawing information from a website, indicate the following:
Title of URL
Author of URL/Publisher of URL
Year of last modification
[TAT97] Tate, Debi (1997). NT Firewalls take charge of network. LAN Times Online.
Marks will be deducted for improper or inadequate referencing.
Plagiarism, i.e. copying and treating it off as original material, particularly for Sections B and C, will result in your entire assignment being awarded zero marks. In the event that quotations from various published works are used, you are to indicate the reference behind the quotation.
If you are the original writer of this essay and no longer wish to have the essay published on the UK Essays website then please click on the link below to request removal: