Thursday, February 25, 2010

With reference to assignments 8 and 9, what characteristics does an analyst (you) examine when evaluating DFD quality? (1,500 words)

Assignment 10
SAD 1


As a review, an analyst as designer:

In designing or modeling a system, an analyst must focus on the logical view of the system and not the physical. Also an analyst must take into account on what the system is to accomplish and don’t focus on how to accomplish the system specified.


A system designer or analysts will or can convert specific requirements to optimized system design which will help programmers to convert it to database design and as well as script design. He/ she provide capabilities that make it the industry leader in the database design and data modeling market. In addition to automating all of the traditional structured methods and also features advanced database engineering, transition to object oriented design, repository extensibility, distributed repository capabilities, and model permission controls.


In what I did during the previous assignments, where I designed different data flow representation in the process of the “Pre- Enrollment in USEP”, there are certain characteristic which I evaluated in order for me to provide data flow diagrams of good quality.




As a review, DFD as a modeling tool:


The DFD portrays the system in terms of its component pieces, with all interfaces among the components indicated. Also, DFD focuses on the movement of data between external entities and processes, and between processes and data stores.


DFD is used to perform structured analysis to determine logical requirements. It is a graphical tool, useful for communicating with users, managers, and other IS personnel. It is also useful for analyzing existing as well as proposed systems and it is a relatively simple technique to learn and use.

Data Flow Diagramming is a means of representing a system at any level of detail with a graphic network of symbols showing data flows, data stores, data processes, and data sources/destinations.




Characteristics Examined in Evaluating DFD:

1. Remember
(Also commonly referred to as recognition, recall, or rote knowledge.) Be able to remember or recognize terminology, definitions, facts, ideas, materials, patterns, sequences, methodologies, principles, etc.


2. Understand
Be able to read and understand descriptions, communications, reports, tables, diagrams, directions, regulations, etc.


3. Apply
Be able to apply ideas, procedures, methods, formulas, principles, theories, etc., in job-related situations.


4. Analyze
Be able to break down information into its constituent parts and recognize the parts’ relationship to one another and how they are organized; identify sublevel factors or salient data from a complex scenario.

5. Evaluate
Be able to make judgments regarding the value of proposed ideas, solutions, methodologies, etc., by using appropriate criteria or standards to estimate accuracy, effectiveness, economic benefits, etc.


6. Create
Be able to put parts or elements together in such a way as to show a pattern or structure not clearly there before; able to identify which data or information from a complex set is appropriate to examine further or from which supported conclusions can be drawn.




Guidelines for constructing DFDs


The guidelines include the following:

1. Choose meaningful names for processes, flows, stores, and terminators.
- identify the role that the person is carrying out, rather than the person’s name or identity.

2. Number the processes.
- As a convenient way of referencing the processes in a DFD, most systems analysts number each bubble. It doesn’t matter very much how you go about doing this — left to right, top to bottom, or any other convenient pattern will do — as long as you are consistent in how you apply the numbers.

3. Redraw the DFD as many times as necessary for esthetics.
- The purpose of a DFD is to accurately model the functions that a system has to carry out and the interactions between those functions. But another purpose of the DFD is to be read and understood, not only by the systems analyst who constructed the model, but by the users who are the experts in the subject matter. This means that the DFD should be readily understood, easily absorbed, and pleasing to the eye.

4. Avoid overly complex DFDs.
- In a real-world systems analysis project, the DFD that will have to be drawn, redrawn, and redrawn again, often as many as ten times or more, before it is (1) technically correct, (2) acceptable to the user, and (3) neatly enough drawn that you wouldn’t be embarrassed to show it to the board of directors in your organization. This may seem like a lot of work, but it is well worth the effort to develop an accurate, consistent, esthetically pleasing model of the requirements of your system.

5. Make sure the DFD is internally consistent and consistent with any associated DFDs.
- a number of rules and guidelines that help ensure the dataflow diagram is consistent with the other system models — the entity-relationship diagram, the state-transition diagram, the data dictionary, and the process specification. However, there are some guidelines that we use now to ensure that the DFD itself is consistent. The major consistency guidelines are these:

* Avoid infinite sinks, bubbles that have inputs but no outputs. These are also known by systems analysts
as “black holes,” in an analogy to stars whose gravitational field is so strong that not even light can escape.

* Avoid spontaneous generation bubbles; bubbles that have outputs but no inputs are suspicious, and generally incorrect. One plausible example of an output-only bubble is a random-number generator, but it is hard to imagine any other reasonable example.

* Beware of unlabeled flows and unlabeled processes.

* Beware of read-only or write-only stores. This guideline is analogous to the guideline about input-only
and output-only processes; a typical store should have both inputs and outputs.


Why They Aren’t Called “Rules”

The most important thing to remember is that there are no hard and fast rules when it comes to producing DFDs, but there are when it comes to valid data flows. For the most accurate DFDs, you need to become intimate with the details of the use case study and functional specification. This isn’t a cakewalk necessarily, because not all of the information you need may be present. Keep in mind that if your DFD looks like a Picasso, it could be an accurate representation of your current physical system. DFDs don’t have to be art; they just have to accurately represent the actual physical system for data flow.


Some Guidelines About Valid and Non- Valid Data Flows

Before embarking on developing your own data flow diagram, there are some general guidelines you should
be aware of. Data stores are storage areas and are static or passive; therefore, having data flow directly from one data store to another doesn't make sense because neither could initiate the communication. Data stores maintain data in an internal format, while entities represent people or systems external to them. Because data from entities may not be syntactically correct or consistent, it is not a good idea to have a data flow directly between a data store and an entity, regardless of direction. Data flow between entities would be difficult because it would be impossible for the system to know about any communication between them. The only type of communication that can be modeled is that which the system is expected to know or react to. Processes on DFDs have no memory, so it would not make sense to show data flows between two asynchronous processes (between two processes that may or may not be active simultaneously) because they may respond to different external events.

Therefore, data flow should only occur in the following scenarios:
· Between a process and an entity (in either direction)
· Between a process and a data store (in either
direction)
· Between two processes that can only run
simultaneously



Data Flow Diagram Principles

* The general principle in Data Flow Diagramming is that a system can be decomposed into subsystems, and subsystems can be decomposed into lower level subsystems, and so on.
* Each subsystem represents a process or activity in which data is processed. At the lowest level, processes can no longer be decomposed.
* Each 'process' (and from now on, by 'process' we mean subsystem and activity) in a DFD has the characteristics of a system.
* Just as a system must have input and output (if it is not dead), so a process must have input and output.
* Data enters the system from the environment; data flows between processes within the system; and data is produced as output from the system


1. A system can be decomposed into subsystems, and
subsystems can be further decomposed into lower level
subsystems.
2. Each subsystem represents a process or activity in which
data is processed.
3. At the lowest level, processes can no longer be decomposed.
4. Each 'process' has the characteristics of a system. A process
must have input and output.
5. Data enters the system from the environment, data flows
between processes within the system and data is produced
as output from the system.



Data Flow Diagram Rules

1. Any data flow leaving a process must be based on data that
are input to the process.
2. All data flows are named and the name reflects the data
flowing between processes, data stores, sources, or sinks.
3. Only data needed to perform the process should be an input
to the process.
4. A process should know nothing about, that is, be
independent of, any other process in the system, it should




References:

http://www.asq.org/certification/quality-process-analyst/bok.html
http://www.cmp.jobs/qa-analyst-1153.php
http://spot.colorado.edu/~kozar/DFDtechnique.html

Thursday, February 18, 2010

Different types of Data Flow Diagram

Usep's Pre- Enrollment System


There are four(4) different types of Data Flow Diagram. These are:

1. Current Physical
- Process label includes an identification of the technology (people or systems) used to process the data
- Data flows and data stores are labeled with the actual name of the physical media on which data flow or in which data are stored




2. New Physical
- Represents the physical implementation of the new system


3. Current Logical
- Physical aspects of system are removed as much as possible
- Current system is reduced to data and processes that transform them



4. New Logical
- Includes additional functions
- Obsolete functions are removed
- Inefficient data flows are reorganized


Thursday, February 4, 2010

Consider USEP's pre-enrollment system, develop a use case diagram and write a brief use case description.

SAD Assignment 7

USEP Pre- Enrollment Procedure

 

Use Case: Requirements
Brief Description: The student must have all the requirements ready for application



Use Case: Application
Brief Description: The student will avail an application form from UGTO office or will be given by the in- charge.


Use Case: Payment
Brief Description: The student will have to pay for the application or entrance fee which will be handled by the cashier.


Use Case: Scheduling
Brief Description: The student will present the receipt and the UGTO member will issue a schedule for the exam.


Use Case: Entrance Exam
Brief Description: The student will take the exam at the given schedule which will be conduct the exam.


Use Case: Medical Exam
Brief Description: The student will have to take the medical exam after the entrance exam as part of the requirement which will be conducted by the clinic division.


Use Case: English Plus/ English Bridge
Brief Description: The student will have to take the English plus. If the student will not pass the exam, he/she will be required to take an English bridge program which is conducted by the UGTO staff.



Use Case: Interview
Brief Description: After the certificate has been given with the said English plus activity, they will proceed now to their desired college together with the other requirements. They will undergo for an interview which will be conducted by a college instructor.


Use Case: Qualified
Brief Description: The college instructor will post the qualified students. If that student is in the list, he/ she is now ready for enrollment.
 

Wednesday, February 3, 2010

Consider the following dialogue between a systems professional, John Juan, and a manager of a department targeted for a new information system, Peter Pedro: Juan: The way to go about the analysis is to first examine the old system, such as reviewing key documents and observing the workers perform their tasks. Then we can determine which aspects are working well and which should be preserved. Pedro: We have been through these types of projects before and what always ends up happening is that we do not get the new system we are promised; we get a modified version of the old system. Juan: Well, I can assure you that will not happen this time. We just want a thorough understanding of what is working well and what isn’t. Pedro: I would feel much more comfortable if we first started with a list of our requirements. We should spend some time up-front determining exactly what we want the system to do for my department. Then you systems people can come in and determine what portions to salvage if you wish. Just don’t constrain us to the old system. Required: a.Obviously these two workers have different views on how the systems analysis phase should be conducted. Comment on whose position you sympathize with the most. b.What method would you propose they take? Why? (3000 words)

SAD Assignment 6

Role of each character

In my understanding with the given scenario, I can say that the character portrayed by John Juan who is a system professional mainly functions as the developer of the system and the other character Peter Pedro who is a manager of a department targeted for a new information system serves as the client.


General differences of each character

Although they are in the same field which is the IT industry, still they have their own job specification, title, profession and experiences. And in line with that, as presented in the dialogue or short conversation between both of the party, their approach in dealing with the conduction of a system analysis phase is mainly different aside from the fact that they have the same goal which is to provide a new information system for a certain company. To better understand their differences in dealing with the conduction of a system analysis phase and on how they have come up with their ways or solutions, let us try to know them and dig down deeper on their ideas respectively.


John Juan (A System Professional)


* What is a system professional?

A system professional or should I say a system analyst is a well educated person when it comes to system making. He/she is well rounded with the steps in making an effective system. He/she is capable enough to determine the clients or users problem, capable to define a system, capable to design a system, capable to implement a system and also capable to evaluate a system.


* His proposed idea

Therefore in line with his profession, he proposed the idea of examining the old system as the first way to go about the analysis of the proposed system. And that idea is just an application on what he learned in his profession.


Peter Pedro (Department Manager)


* What is a department manager?

In general, a manager manages the operational and fiscal activities of the department. Plan and develop systems and procedures to improve the operating quality and efficiency of the department. Supervise staff in accordance with company policies and procedures. A manager is also responsible for hiring, training, and coaching employees.


* His proposed idea

A manager is well exposed in layout and performance of a current system or a company. And in any problem existence, a manager is the one who is observant enough. And to relate in his field, he proposed the idea of directly listing the requirements and focus only on the proposed or future system and do not just dwell on the existing or current system in the analysis of the proposed system.


My comparison between both ideas

John Juan just applied a step by step process in the system analysis phase. While Peter Pedro jumped into the realization of listing the new specified system requirements for him to get rid of the existing system. As stated in the dialogue, Peter Pedro already had the experience of trying to make a new system but the assigned analyst just developed the existing one and did not address well his requirements. That is why he has his reason on why he wanted to get rid of the older system.

But which idea is more brilliant enough in terms of the system analysis phase? Let us try to define what system analysis is and what the steps are in order to analyze a system for us to design a good system which answers our client’s requirements or concern.



What is system analysis?

There are many different definitions about systems developed over time. The word “system” can be defined in many ways. First, system is a set of interrelated elements each of which is related directly or indirectly to every other element, and no subset of which is unrelated to any other subset. Second, system in a set of objects together with relationships between the objects and between their attributes connected or related to each other and to their environment in such a manner as to form an entirety or whole. These definitions seem to place more emphasis on the elements (activities) and do not emphasize the individual\\\'s perceptions. Other system definition is that system is a mental construct of parts and relationships which make up a whole that explains that system is not just activities but concepts, problems, or an organization.

While “analysis” is performed to determine what is needed or determine you want to improve in a part of the organization (look for needs) or to fix a problem that someone has brought forth.

The term “systems analysis” is reserved for the study of systems that include the human element and behavioral relationships between the system\\\'s human element and its physical and mechanical components, if any. Examples of public policy systems are the federal government\\\'s welfare system, a state\\\'s criminal justice system, a county\\\'s educational system, a city\\\'s public safety system, and an area\\\'s waste management system. Examples of industrial systems are a manufacturer\\\'s production distribution system and an oil company\\\'s exploration, production, refining, and marketing system. Examples with physical environmental components are the atmospheric system and a water supply system. The direct transfer of systems engineering concepts to the study of a system in which the human element must be considered is restricted by limitations in the ability to comprehend and quantify human interactions. (Operations research, a related field of study, is directed toward the analysis of components of such systems. Public policy analysis is the term used for a system study of a governmental problem area.)

Systems analysis is the interdisciplinary part of science,
dealing with analysis of sets of interacting entities, the systems, often prior to their automation as computer systems, and the interactions within those systems. This field is closely related to operations research. It is also \\\"an explicit formal inquiry carried out to help someone, referred to as the decision maker, identify a better course of action and make a better decision than he might have otherwise made. It is the study of an activity or procedure to determine the desired end and the most efficient method of obtaining this end. Systems analysis in information processing is a phase of systems engineering.

The systems analysis process is an iterative one that cycles repeatedly through the following interrelated and somewhat the same
phases:

(1) Problem statement, in which the system is defined in terms of its environment, goals, objectives, constraints, criteria, actors (decision makers, participants in the system,
impacted constituency), and other objects and their attributes;

(2) Alternative designs, in which solutions are identified;

(3) Mathematical formulation, in which a mathematical description of the system is developed, tested, and validated;

(4) Evaluation of alternatives, in which the mathematical model is used to evaluate and rank the possible alternative designs by means of the criteria; and

(5) Selection and implementation of the most preferred solution.

The process includes feedback loops in which the outcomes of each phase are reconsidered based on the analyses and outcomes of the other phases. For example, during the implementation phase, constraints may be uncovered that blocks the solution\\\'s implementation and thus cause the mathematical model to be reformulated. The analysis process continues until there is evidence that the mathematical structure is suitable; that is, it has enough validity to yield answers that are of value to the system designers or the decision maker.


What occurs in the system analysis phase?

In this phase, we begin to move toward the future; the team analyzes the desired system, not the current system. This is where new ideas, features, and design changes should be introduced. The team focuses more closely on the transactions and events that make up the process.

The primary participants in this phase are the members of the core facilitation team, with the extended team identified for the system analysis phase during the previous phase. The extended team may be the same as that for the business analysis phase, or it may be different, but it should include extended team members who are knowledgeable about the business function, the systems that interface with this system, or the architecture or data requirements for the
system.

The team must stay focused on system analysis, not design decisions, and especially screen design or content.

In the final steps of this phase, the team focuses on creating or refining the plan for the completion of the project. This is when the requirements are developed, the remaining project phases are scheduled, the resources are identified and scheduled, and the deliverables are identified.

The development of a computer-based information system often comprises the use of a systems analyst. When a computer-based information system is developed, systems analysis (according to the Waterfall model) would constitute the following steps:


* The development of a feasibility study, involving determining whether a project is economically, socially, technologically and organizationally feasible.



* Conducting fact-finding measures, designed to ascertain the requirements of the system\\\'s end-users. These typically span interviews, questionnaires, or visual observations of work on the existing system.



* Gauging how the end-users would operate the system (in terms of general experience in using computer hardware/software), what the system would be used for etc.

Systems Analysis Procedures

1. Problem identification

There must be a clear identification and definition of the problem to be studied included scope (from one point to another point in time) of the process and overall criteria of effectiveness, efficiency, and adaptability.

2. FeasibilityStudy

The term \\\"Feasibility study\\\" implies a study of the practicality of a proposed project. It involves a preliminary analysis of the total requirements needed for the evaluation of the problem. Some problems might be easily defined but also might be too large to study adequately. In addition, it might not be possible to obtain all required information about a problem or there might be legal problems concerned with the analysis of the problem.

3. System definition (detailed study)

The purpose of this phase is to obtain a clear, concise and bounded definition. The subject of the proposal and its limits, and well as the objectives and anticipated benefits, should be specified. This section covers a wide range of activities: (1) investigation of the current (existing) system, and (2) analysis of the results, and (3) identification of the problemsin the current system.


4. Systems Design

The purpose of this phase is to suggest changes to transform the current system by altering the performance and activities to solve the problems.

5. System Implementation

Implement the said system.

6. System Evaluation

This section is included to reevaluate the effectiveness, efficiency, and adaptability of the changes that were made to the process.


Whose idea would I prefer?

After reviewing the proper conduct on the system analysis phase, I found out that the two characters in the short dialogue conversation have their own ideas interpreted correctly. Means that I do not choose any party at all, in fact I believe that those ideas both composes the main procedures in analyzing a system. As proof of my answer, I was able to research a diagram that shows the proper system requirements analysis. As shown below:


Figure 4.2: SD1 - System Requirement Analysis



As labeled #1 in the figure, it is comprise of the “External Specification”. To relate in the dialogue, I believe that it is the ides that is presented by Peter Pedro which is to list down the specified general system requirements. It will serve as the basis or goal of the desired system.

As labeled #2 in the figure, it is comprise of the “Recording of Actual Status and Analysis” which is the idea laid by John Juan. It is basically the first step in the analysis from which the older system will serve as the basic point in the analysis or development. It is one way of determining some logs or system deficiency that could hopefully be answered or developed.

Next are steps in the detailed analysis of the system.

As labeled #3 in the figure, here comes the user or client’s requirements that are specifically defined. Therefore as concluded, the specific requirements lay by Peter Pedro or the client which is somehow already addressed.


Method I would like to propose and why?

I have researched in Wikipedia about this method in systems analysis. i suggest that both characters, John Juan and Peter Pedro must be knowledgeable in this method so that they will share opinions and so that they will not argue no more...

Structured Systems Analysis and Design Method (SSADM) is a systems approach to the analysis and design of information systems.

The three most important techniques that are used in SSADM are:
Logical Data ModelingThis is the process of identifying, modeling and documenting the
data requirements of the system being designed. The data are separated
into entities (things about which a business needs to record
information) and relationships (the associations between the entities).Data Flow ModelingThis is the process of identifying, modeling and documenting how
data moves around an information system. Data Flow Modeling examines
processes (activities that transform data from one form to another),
data stores (the holding areas for data), external entities (what sends
data into a system or receives data from a system), and data flows
(routes by which data can flow).Entity Behavior ModelingThis is the process of identifying, modeling and documenting the
events that affect each entity and the sequence in which these events
occur.
The SSADM method involves the application of a sequence of analysis,
documentation and design tasks concerned with the following.



Analysis of the current system


* Develop a Business Activity Model. A model of the business activity
is built. Business events and business rules would also be investigated
as an input to the specification of the new automated system.
* Investigate and define requirements. The objective of this step is
to identify the problems associated with the current environment that
are to be resolved by the new system. It also aims to identify the
additional services to be provided by the new system and users of the
new system.
* Investigate current processing. It investigates the information
flow associated with the services currently provided, and describes
them in the form of Data Flow Model. At this point, the Data Flow Model
represents the current services with all their deficiencies. No attempt
is made to incorporate required improvement, or new facilities.
* Investigate current data. This step is to identify and describe the
structure of the system data, independently of the way the data are
currently held and organized. It produces a model of data that supports
the current services.
* Derive logical view of current services. The objective of this step
is to develop a logical view of the current system that can be used to
understand problems with the current system.


Outline business specification


Also known as: logical system specification stage. This stage
consists of 2 parts. The first part is researching the existing
environment. In this part, system requirements are identified and the
current business environment is modeled. Modeling consists of creating
a DFD and LDS (Logical Data Structure) for processes and data
structures that are part of the system. In the second part, BSO
(Business Systems Options), 6 business options are presented. One of
the options is selected and built.
The following steps are part of this stage:


* Define BSOs. This step is concerned with identifying a number of
possible system solutions that meet the defined requirements from which
the users can select.
* Select BSO. This step is concerned with the presentation of the
BSOs to users and the selection of the preferred option. The selected
option defines the boundary of the system to be developed in the
subsequent stages.


Detailed business specification

Also known as: requirements specification stage. To assist the
management to make a sound choice, a number of business system options,
each describing the scope and functionalities provided by a particular
development/implementation approach, are prepared and presented to
them. These options may be supported by technical documentation such as
Work Practice Model, LDM (Logical Data Model) and DFD. They also
require financial and risk assessments to be prepared, and need to be
supported by outline implementation descriptions.
The following steps are part of this stage:


* Define required system processing. This step is to amend the
requirements to reflect the selected Business System Option, to
describe the required system in terms of system data flows and to
define the user roles within the new system.
* Develop required data model. This step is undertaken in parallel
with the above step. The LDM of the current environment is extended to
support all the processing in the selected business system option.
* Derive system functions. During the parallel definition of data and
processing, additional events are identified, which cause existing
functions to be updated, and new functions to be defined. Service level
requirements for each function are also identified in this step.
* Develop user job specifications. A Work Practice Model is developed to document the understanding of the user jobs in concern.
* Enhance required data model. Its objective is to improve the
quality of the required system LDM by the application of relational
data analysis (also known as normalization).
* Develop specification prototypes. It is used to describe selected
parts of the required system in an animated form, for demonstration to
the users. The purpose is to demonstrate that the requirements have
been properly understood and to establish additional requirements
concerning the style of the user interface.
* Develop processing specification. This step is principally
concerned with defining the detailed update and enquiry processing for
the required system.
* Confirm system objectives. During stage 1 and 3, the requirements
will have been recorded, as they are identified, in the user
requirements. This step represents the final review of the requirements
before the completion of the Definition of Requirements Stage.


Logical data design


Also known as: logical system specification stage. In this stage,
technically feasible options are chosen. The development/implementation
environments are specified based on this choice. The following steps
are part of this stage:


* Define TSOs: Up to 6 technical options (specifying the development
and implementation environments) are produced, one being selected.
* Select TSOs. Select the most favourable TSO


Logical process design

Also known as: logical system specification stage. In this stage,
logical designs and processes are updated. Additionally, the dialogs
are specified as well. The following steps are part of this stage:


* Define user dialogue. This step defines the structure of each
dialogue required to support the on-line functions and identifies the
navigation requirements, both within the dialogue and between dialogues.
* Define update processes. This is to complete the specification of
the database updating required for each event and to define the error
handling for each event.
* Define inquiry processes. This is to complete the specification of
the database enquiry processing and to define the error handling for
each inquiry.
*


Physical design

The objective of this stage is to specify the physical data and
process design, using the language and features of the chosen physical
environment and incorporating installation standards. The following
activities are part of this stage:


* Prepare for physical design
* Learn the rules of the implementation environment
* Review the precise requirements for logical to physical mapping
* Plan the approach
* Complete the specification of functions
* Incrementally and repeatedly develop the data and process designs



References:

http://infolab.stanford.edu/~burback/watersluice/node4.html

http://webware.princeton.edu/dms/public/methodology/dev/sysabase.html

http://www.hrvillage.com/hrjobdesc/Manager.htm

http://en.wikipedia.org/wiki/Requirements_analysis

http://www.engr.sjsu.edu/pabacker/systems.html

http://www.nwlink.com/~donclark/analysis/analysis.html

http://en.wikipedia.org/wiki/Systems_analysis

http://www.answers.com/topic/systems-analysis

http://en.wikipedia.org/wiki/Structured_Systems_Analysis_and_Design_Method

Sunday, January 3, 2010

Consider your school, how do you know that the life cycle was developed specifically for the university. How do we know it meets our needs? At least 2500 words.

SAD Assignment 5



About my school

As a state university, primarily the University of Southeastern Philippines is a big government institution that provides big range of services may it be to students, staff, and employees and also to others. With that, it needs or requires a big real time system that could be adaptive to any changes that may occur or imposed from time to time. Being a university type of institution, the crucial parts of the system are the data, records or accounts, the system governance flow, and the management which must be taken care of seriously. Since it caters educational related professions, it is expected to last for a long period of time be it in a number of decades or century. An exclusive system for the university itself must be able to support the university needs and that would last up to the university’s existence.


Systems Development Life Cycle

It is a project management technique that divides complex projects into smaller, more easily managed segments or phases. Segmenting projects allows managers to verify the successful completion of project phases before allocating resources to subsequent phases.

Software development projects typically include initiation, planning, design, development, testing, implementation, and maintenance phases. However, the phases may be divided differently depending on the organization involved.

We will know that the life cycle was developed specifically for the university if it practices the following Systems Development Life Cycle Phases that is related to the system itself and provides solutions to every phases that meets the need of the university.


Systems Development Life Cycle Phases

Initiation Phase

• To add, improve, or correct a system
- identified and formally requested through the presentation of a business case.
• The business case should, at a minimum
- describe a proposal’s purpose, identify expected benefits, and explain how the proposed system supports one of the organization’s business strategies.
• The business case should also identify alternative solutions and detail
- as many informational, functional, and network requirements as possible.

• To conduct a more thorough feasibility study
- requires management to verify the accuracy of the preliminary assumptions and identify resource requirements in greater detail.

Primary issues organizations should consider when compiling feasibility study support documentation include:
- Business Considerations:
1. Strategic business and technology goals and objectives;
2. Expected benefits measured against the value of current technology;
3. Potential organizational changes regarding facilities or the addition/reduction of end users, technicians, or managers;
4. Budget, scheduling, or personnel constraints; and
5. Potential business, regulatory, or legal issues that could impact the feasibility of the project.
- Functional Requirements:
1. End-user functional requirements;
2. Internal control and information security requirements;
3. Operating, database, and backup system requirements Connectivity requirements
4. Network support requirements
5. Interface requirements
- Project Factors:
1. Project management methodology;
2. Risk management methodology;
3. Estimated completion dates of projects and major project phases; and
4. Estimated costs of projects and major project phases.
- Cost/Benefit Analysis:
 Expected useful life of the proposed product;
 Alternative solutions
 Nonrecurring project costs
 Recurring operational costs
 Tangible benefits
 Intangible benefits
- Should be compiled and submitted for senior management or board study.
- Should provide an overview of the proposed project and identify expected costs and benefits in terms of economic, technical, and operational feasibility.
- Document should also describe alternative solutions and include a recommendation for approval or rejection.
- Document should be reviewed and signed off on by all affected parties.


Planning Phase

It is the most critical step in completing development, acquisition, and maintenance projects. Careful planning, particularly in the early stages of a project, is necessary to coordinate activities and manage project risks effectively.

• Coordinate discussions between user, audit, security, design, development, and network personnel to identify and document as many functional, security, and network requirements as possible.

Primary items organizations should address in formal project plans include:

1. Project Overview -should identify the project, project sponsors, and project managers; and should describe project goals, background information, and development strategies.
2. Roles and Responsibilities –should define the primary responsibilities of key personnel, including project sponsors, managers, and team members.
3. Communication –should establish procedures for gathering and disseminating information. Standard report forms, defined reporting requirements, and established meeting schedules facilitate project communications.
4. Defined Deliverables – Clearly defined expectations are a prerequisite for successfully completing projects.
5. Control Requirements – involves designing and building automated control and security features into applications. Identifying all required features and exactly where they should be placed is not always possible during initial project phases.
6. Risk Management –should establish procedures to ensure managers appropriately assess, monitor, and manage internal and external risks throughout a project’s life cycle.
7. Change Management –standards should be in place to control changes in order to minimize disruptions to the development process.
8. Standards –should reference applicable standards relating to project oversight activities, system controls, and quality assurance.
9. Documentation –should identify the type and level of documentation personnel must produce during each project phase.
10. Scheduling –identify and schedule major project phases and the tasks to be completed within each phase.
11. Testing –should develop testing plans that identify testing requirements and schedule testing procedures throughout the initial phases of a project
12. Staff Development –should develop training plans that identify training requirements and schedule training procedures to ensure employees are able to use and maintain an application after implementation.


Design Phase

• involves converting the informational, functional, and network requirements identified during the initiation and planning phases into unified design specifications that developers use to script programs during the development phase.
• designs are constructed in various ways.
• end users, designers, developers, database managers, and network administrators should review and refine the prototyped designs in an iterative process until they agree on an acceptable design.
• management should be particularly diligent when using prototyping tools to develop automated controls. Prototyping can enhance an organization’s ability to design, test, and establish controls.
• Designers should carefully document completed designs.
• Organizations should create initial testing, conversion, implementation, and training plans during the design phase.

Application Control Standards

• Application controls include policies and procedures associated with user activities and the automated controls designed into applications.
• Designing appropriate security, audit, and automated controls into applications is a challenging task. Adding controls late in the development process or when applications are in production is more expensive, time consuming, and usually results in less effective controls.
• Standards should be in place to ensure end users, network administrators, auditors, and security personnel are appropriately involved during initial project phases.
• Application control standards enhance the security, integrity, and reliability of automated systems by ensuring input, processed, and output information is authorized, accurate, complete, and secure.

Input Controls

• Automated input controls help ensure employees accurately input information, systems properly record input, and systems either reject, or accept and record, input errors for later review and correction. Examples of automated input controls include:

1. Check Digits – Check digits are numbers produced by mathematical calculations performed on input data such as account numbers.
2. Duplication Checks – Duplication checks confirm that duplicate information is not input.
3. Limit Checks – Limit checks confirm that a value does not exceed predefined limits.
4. Range Checks – Range checks confirm that a value is within a predefined range of parameters.
5. Reasonableness Checks – Reasonableness checks confirm that a value meets predefined criteria.
6. Sequence Checks – Sequence checks confirm that a value is sequentially input or processed.
7. Validity Checks – Validity checks confirm that a value conforms to valid input criteria.


Processing Controls

• Automated processing controls help ensure systems accurately process and record information and either reject, or process and record, errors for later review and correction. Processing includes merging files, modifying data, updating master files, and performing file maintenance.
• Examples of automated processing controls include:
1. Batch Controls – Batch controls verify processed run totals against input control totals. Batches are verified against various items such as total dollars, items, or documents processed.
2. Error Reporting – Error reports identify items or batches that include errors. Items or batches with errors are withheld from processing, posted to a suspense account until corrected, or processed and flagged for later correction.
3. Transaction Logs – Users verify logged transactions against source documents. Administrators use transaction logs to track errors, user actions, resource usage, and unauthorized access.
4. Run-to-Run Totals – Run-to-run totals compiled during input, processing, and output stages are verified against each other.
5. Sequence Checks – Sequence checks identify or reject missing or duplicate entries.
6. Interim Files – Operators revert to automatically created interim files to validate the accuracy, validity, and completeness of processed data.
7. Backup Files – Operators revert to automatically created master-file backups if transaction processing corrupts the master file.

Output Controls
• Automated output controls help ensure systems securely maintain and properly distribute processed information. Examples of automated output controls include:
1. Batch Logs – Batch logs record batch totals. Recipients of distributed output verify the output against processed batch log totals.
2. Distribution Controls – Distribution controls help ensure output is only distributed to authorized individuals.
3. Destruction Controls – Destruction controls help ensure electronically distributed and stored information is destroyed appropriately by overwriting outdated information or demagnetizing (degaussing) disks and tapes.

Development Phase

• Involves converting design specifications into executable programs. Effective development standards include requirements that programmers and other project participants discuss design specifications before programming begins.
• Procedural programming involves the line-by-line scripting of logical instructions that are combined to form a program.
• Advancements in programming techniques include the concept of "object-oriented programming."
• Organizations should complete testing plans during the development phase. Additionally, they should update conversion, implementation, and training plans and user, operator, and maintenance manuals.


Development Standards

• should be in place to address the responsibilities of application and system programmers. Application programmers are responsible for developing and maintaining end-user applications.
• Development standards should prohibit a programmer's access to data, programs, utilities, and systems outside their individual responsibilities.
• Coding standards, which address issues such as the selection of programming languages and tools, the layout or format of scripted code, and the naming conventions of code routines and program libraries, are outside the scope of this document.

Library Controls

• Libraries are collections of stored documentation, programs, and data. Program libraries include reusable program routines or modules stored in source or object code formats.

Library controls should include:
1. Automated Password Controls – Management should establish logical access controls for all libraries or objects within libraries.
2. Automated Library Applications – When feasible, management should implement automated library programs, which are available from equipment manufacturers and software vendors

Version Controls
• Library controls facilitate software version controls. Version controls provide a means to systematically retain chronological copies of revised programs and program documentation.

• Development version control systems, sometimes referred to as concurrent version systems, assist organizations in tracking different versions of source code during development.


Software Documentation

• should maintain detailed documentation for each application and application system in production.
• The documentation should contain detailed application descriptions, programming documentation, and operating instructions.
• Standards should be in place that identify the type and format of required documentation such as system narratives, flowcharts, and any special system coding, internal controls, or file layouts not identified within individual application documentation.

• should maintain documentation for internally developed programs and externally acquired products.
• Examiners should consider access and change controls when assessing documentation activities.

• System documentation should include:

1. System Descriptions – System descriptions provide narrative explanations of operating environments and the interrelated input, processing, and output functions of integrated application systems.
2. System Documentation – System documentation includes system flowcharts and models that identify the source and type of input information, processing and control actions (automated and manual), and the nature and location of output information.
3. System File Layouts – System file layouts describe collections of related records generated by individual processing applications.

Application documentation should include:
1. Application Descriptions – Application descriptions provide narrative explanations of the purpose of an application and provide overviews of data input, processing, and output functions.
2. Layouts – Layouts represent the format of stored and displayed information such as database layouts, screen displays, and hardcopy information.
3. Program Documentation – Program documentation details specific data input, processing, and output instructions, and should include documentation on system security.
4. Naming Conventions – Naming conventions are a critical part of program documentation.
5. Operator Instructions – Organizations should establish operator instructions regarding all processing applications.
6. End-User Instructions – Organizations should establish end-user instructions that describe how to use an application.


Testing Phase
• requires organizations to complete various tests to ensure the accuracy of programmed code, the inclusion of expected functionality, and the interoperability of applications and other network components.
• identify program defects or weaknesses during the testing process. Procedures should be in place to ensure programmers correct defects quickly and document all corrections or modifications.
• Primary tests include:
1. Acceptance Testing – End users perform acceptance tests to assess the overall functionality and interoperability of an application.
2. End-to-End Testing – End users and system technicians perform end-to-end tests to assess the interoperability of an application and other system components such as databases, hardware, software, or communication devices.
3. Functional Testing – End users perform functional tests to assess the operability of a program against predefined requirements. Functional tests include black box tests, which assess the operational functionality of a feature against predefined expectations, or white box tests, which assess the functionality of a feature’s code.
4. Integration Testing – End users and system technicians perform integration tests to assess the interfaces of integrated software components.
5. Parallel Testing – End users perform parallel tests to compare the output of a new application against a similar, often the original, application.
6. Regression Testing – End users retest applications to assess functionality after programmers make code changes to previously tested applications.
7. Stress Testing – Technicians perform stress tests to assess the maximum limits of an application.
8. String Testing – Programmers perform string tests to assess the functionality of related code modules.
9. System Testing – Technicians perform system tests to assess the functionality of an entire system.
10. Unit Testing – Programmers perform unit tests to assess the functionality of small modules of code.



Implementation Phase

• involves installing approved applications into production environments. Primary tasks include announcing the implementation schedule, training end users, and installing the product. Additionally, organizations should input and verify data, configure and test system and security parameters, and conduct post-implementation reviews.
• Verifying the accuracy of the input data and security configurations is a critical part of the implementation process.



PROJECT EVALUATION

• should conduct post-implementation reviews at the end of a project to validate the completion of project objectives and assess project management activities.
• should analyze the effectiveness of project management activities by comparing, among other things, planned and actual costs, benefits, and development times.

Maintenance Phase

• involves making changes to hardware, software, and documentation to support its operational effectiveness. It includes making changes to improve a system’s performance, correct problems, enhance security, or address user requirements
• Change management (sometimes referred to as configuration management) involves establishing baseline versions of products, services, and procedures and ensuring all changes are approved, documented, and disseminated.
• changes must be made quickly.
• Emergency change controls should include the same procedures as routine change controls.
• should test routine and, whenever possible, emergency changes prior to implementation and quickly notify affected parties of all changes.

• Patch management programs should address procedures for evaluating, approving, testing, installing, and documenting software modifications.
• patch management process involves maintaining an awareness of external vulnerabilities and available patches.
• should carefully document all modifications to ensure accurate system inventories.
• Management should coordinate all technology related changes
• Quality assurance, security, audit, regulatory compliance, network, and end-user personnel
• Risk and security review should be done whenever a system modification is implemented to ensure controls remain in place.


Disposal Phase

• involves the orderly removal of surplus or obsolete hardware, software, or data.
• primary tasks include the transfer, archiving, or destruction of data records.
• should transfer data from production systems in a planned and controlled manner that includes appropriate backup and testing procedures.
• should maintain archived data in accordance with applicable record retention requirements.
• should also archive system documentation in case it becomes necessary to reinstall a system into production.
• should destroy data by overwriting old information or degaussing (demagnetizing) disks and tapes.


Reference:

http://www.ffiec.gov/ffiecinfobase/booklets/d_a/08.html

Thursday, December 31, 2009

Identify and discuss at least 3 systems development models. Discuss each phases, at least 3,000 words.

What is the purpose of system development model?

System development models are used to guide the analysis, design, development, and maintenance of information systems. Each is designed for a specific purpose or reason; most have similar goals and share many common tasks.. In order to ensure that cost-effective, quality systems are developed which address an organization’s business needs, developers employ some kind of system development model to direct the project’s life cycle.

3 System Development Models

Waterfall Model

 Introduction

This model is sometimes referred to as the linear sequential model or the software life cycle.

The waterfall model is the earliest method of structured system development. Although it has come under criticism in recent years for being too rigid and unrealistic when it comes to quickly meeting customer’s needs, the waterfall model is still widely used.

The waterfall model derives its name due to the cascading effect from one phase to the other. In this model each phase well defined starting and ending point, with identifiable deliveries to the next phase.The waterfall model is a sequential software development process, in which progress is seen as flowing steadily downwards (like a waterfall) through the phases of conception, initiation, analysis, design (validation), construction, testing and maintenance. Progress flows from the top to the bottom, like a waterfall.

To follow the waterfall model, one proceeds from one phase to the next in a purely sequential manner. For example, one first completes requirements specifications, which are set in stone. When the requirements are fully completed, one proceeds to design. The software in question is designed and a blueprint is drawn for implementers (coders) to follow — this design should be a plan for implementing the requirements given. When the design is fully completed, an implementation of that design is made by coders. Towards the later stages of this implementation phase, separate software components produced are combined to introduce new functionality and reduced risk through the removal of errors.

Thus the waterfall model maintains that one should move to a phase only when it’s proceeding phase is completed and perfected.

Waterfall Development Phases:





Observe that feed back loops allow for corrections to be incorporated into the model. For example a problem/update in the design phase requires a ‘revisit’ to the specifications phase. When changes are made at any phase, the relevant documentation should be updated to reflect that change.

The model consists of six distinct stages, namely:
1. In the requirements analysis phase
- This step refers to the gathering of system requirements, with the goal of determining how these requirements will be accommodated in the system. Extensive communication between the customer and the developer is essential.
• The problem is specified along with the desired service objectives (goals)
• The constraints are identified

2. In the specification phase
- the system specification is produced from the detailed definitions of (a) and (b) above. This document should clearly define the product function.
- The consideration of all aspects of the targeted business function or process, with the goals of determining how each of those aspects relates with one another, and which aspects will be incorporated into the system.

3. In the system and software design phase, the system specifications are translated into a software representation.
- Once the requirements have been collected and analyzed, it is necessary to identify in detail how the system will be constructed to perform necessary tasks. More specifically, the System Design phase is focused on the data requirements (what information will be processed in the system?), the software construction (how will the application be constructed?), and the interface construction (what will the system look like? What standards will be followed?).
The software engineer at this stage is concerned with:
• Data structure
• Software architecture
• Algorithmic detail and
• Interface representations

The hardware requirements are also determined at this stage along with a picture of the overall system architecture. By the end of this stage the software engineer should be able to identify the relationship between the hardware, software and the associated interfaces. Any faults in the specification should ideally not be passed ‘down stream’

4. In the implementation and testing phase stage the designs are translated into the software domain
• Detailed documentation from the design phase can significantly reduce the coding effort.
• Testing at this stage focuses on making sure that any errors are identified and that the software meets its required specification.

5. In the integration and system testing phase all the program units are integrated and tested to ensure that the complete system meets the software requirements. After this stage the software is delivered to the customer.
- As the software is created and added to the developing system, testing is performed to ensure that it is working correctly and efficiently. Testing is generally focused on two areas: internal efficiency and external effectiveness. The goal of external effectiveness testing is to verify that the software is functioning according to system design, and that it is performing all necessary functions or sub-functions. The goal of internal testing is to make sure that the computer code is efficient, standardized, and well documented. Testing can be a labor-intensive process, due to its iterative nature.

6. The maintenance phase the usually the longest stage of the software. In this phase the software is updated to:
• Meet the changing customer needs
• Adapted to accommodate changes in the external environment
• Correct errors and oversights previously undetected in the testing phases
• Enhancing the efficiency of the software



Advantages / Constructive Details

• Testing is inherent to every phase of the waterfall model
• It is an enforced disciplined approach
• It is documentation driven, that is, documentation is produced at every stage
• it is easier to fix the specific components
• A further argument for the waterfall model is that it places emphasis on documentation
• simple approach
• provides a structured
• easily understandable and explainable phases and thus is easy to understand
• The waterfall model also requires that implementers follow the well made, complete design accurately, ensuring that the integration of the system proceeds smoothly.

Disadvantages / Criticism

The waterfall model is the oldest and the most widely used paradigm.
However, many projects rarely follow its sequential flow. This is due to the inherent problems associated with its rigid format. Namely:
• It only incorporates iteration indirectly, thus changes may cause considerable confusion as the project progresses.
• As The client usually only has a vague idea of exactly what is required from the software product, this WM has difficulty accommodating the natural uncertainty that exists at the beginning of the project.
• The customer only sees a working version of the product after it has been coded. This may result in disaster if any undetected problems are precipitated to this stage.

• The waterfall model is argued by many to be a bad idea in practice. This is mainly because of their belief that it is impossible for any non-trivial project to get one phase of a software product's lifecycle perfected, before moving on to the next phases and learning from them.

• Designers may not be aware of future implementation difficulties when writing a design for an unimplemented software product.
• Its rigid design and inflexible procedure.
• Real projects rarely follow the sequential flow that the model proposes.
• At the beginning of most projects there is often a great deal of uncertainty about requirements and goals, and it is therefore difficult for customers to identify these criteria on a detailed level. The model does not accommodate this natural uncertainty very well.

• Developing a system using the Waterfall Model can be a long, painstaking process that does not yield a working version of the system until late in the process.




Spiral model

Introduction

The spiral model is a software development process combining elements of both design and prototyping-in-stages, in an effort to combine advantages of top-down and bottom-up concepts. Also known as the spiral lifecycle model (or spiral development), it 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 spiral model combines the iterative nature of prototyping with the controlled and systematic aspects of the waterfall model, therein providing the potential for rapid development of incremental versions of the software. In this model the software is developed in a series of incremental releases with the early stages being either paper models or prototypes. Later iterations become increasingly more complete versions of the product. It was the first model to explain why the iteration matters.

Spiral Development Phases:





Depending on the model it may have 3-6 task regions (/framework a ctivities) our case will consider a ‘6-task region’ model.

These regions are:
1. The customer communication task – to establish effective communication between developer and customer.
2. The planning task – to define resources, time lines and other project related information..
3. The risk analysis task – to assess both technical and management risks.
4. The engineering task – to build one or more representations of the application.
5. The construction and release task – to construct, test, install and provide user support (e.g., documentation and training).
6. The customer evaluation task – to obtain customer feedback based on the evaluation of the software representation created during the engineering stage and implemented during the install stage.
Advantages 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]




Agile Modeling

Introduction

Agile Modeling is a practice-based methodology for modeling and documentation of software-based systems. It is intended to be a collection of values, principles, and practices for modeling software that can be applied on a software development project in a more flexible manner than traditional modeling methods.

Agile methods generally promote a disciplined project management process that encourages frequent inspection and adaptation, a leadership philosophy that encourages teamwork, self-organization and accountability, a set of engineering best practices that allow for rapid delivery of high-quality software, and a business approach that aligns development with customer needs and company goals.
There are many specific agile development methods. Most promote development iterations, teamwork, collaboration, and process adaptability throughout the life-cycle of the project.

Agile methods emphasize face-to-face communication over written documents when the team is all in the same location. When a team works in different locations, they maintain daily contact through videoconferencing, voice, e-mail, etc.

Most agile teams work in a single open office (called bullpen), which facilitates such communication. Team size is typically small (5-9 people) to help make team communication and team collaboration easier. No matter what development disciplines are required, each agile team will contain a customer representative.
Most agile implementations use a routine and formal daily face-to-face communication among team members. Agile emphasizes working software as the primary measure of progress.

Agile methods differ to a large degree in the way they cover project management. Some methods are supplemented with guidelines on project management, but there is generally no comprehensive support.
Agile software development depends on some special characteristics possessed only by software, such as object technologies and the ability to automate testing. However, related techniques have been created for developing non-software products, such as semiconductors, motor vehicles, or chemicals. For more on them, see Flexible product development.


Agile Procedures:

Agile methods break tasks into small increments with minimal planning, and do not directly involve long-term planning. Iterations are short time frames that typically last from one to four weeks. Each iteration involves a team working through a full software development cycle including planning, requirements analysis, design, coding, unit testing, and acceptance testing when a working product is demonstrated to stakeholders. This helps minimize overall risk, and lets the project adapt to changes quickly. Stakeholders produce documentation as required. An iteration may not add enough functionality to warrant a market release, but the goal is to have an available release (with minimal bugs) at the end of each iteration. Multiple iterations may be required to release a product or new features.


Agile values:

• Individuals and interactions over processes and tools
• Working software over comprehensive documentation
• Customer collaboration over contract negotiation
• Responding to change over following a plan
• Customer satisfaction by rapid, continuous delivery of useful software
• Working software is delivered frequently (weeks rather than months)
• Working software is the principal measure of progress
• Even late changes in requirements are welcomed
• Close, daily cooperation between business people and developers
• Face-to-face conversation is the best form of communication (co-location)
• Projects are built around motivated individuals, who should be trusted
• Continuous attention to technical excellence and good design
• Simplicity
• Self-organizing teams
• Regular adaptation to changing circumstances
.

Comparisons

Agile methods lie on the "adaptive" side of this continuum. Adaptive methods focus on adapting quickly to changing realities. When the needs of a project change, an adaptive team changes as well. An adaptive team will have difficulty describing exactly what will happen in the future. The further away a date is, the vaguer an adaptive method will be about what will happen on that date. An adaptive team can report exactly what tasks are being done next week, but only which features are planned for next month. When asked about a release six months from now, an adaptive team may only be able to report the mission statement for the release, or a statement of expected value vs. cost.

Predictive methods, in contrast, focus on planning the future in detail. A predictive team can report exactly what features and tasks are planned for the entire length of the development process. Predictive teams have difficulty changing direction. The plan is typically optimized for the original destination and changing direction can cause completed work to be thrown away and done over differently. Predictive teams will often institute a change control board to ensure that only the most valuable changes are considered.

Most agile methods share other iterative and incremental development methods' emphasis on building releasable software in short time periods. Agile development differs from other development models: in this model time periods are measured in weeks rather than months and work is performed in a highly collaborative manner. Most agile methods also differ by treating their time period as a time box.
Agile development has little in common with the waterfall model. The waterfall model is the most structured of the methods, stepping through requirements-capture, analysis, design, coding, and testing in a strict, pre-planned sequence. Progress is generally measured in terms of deliverable artifacts: requirement specifications, design documents, test plans, code reviews and the like.

The main problem with the waterfall model is the inflexible division of a project into separate stages, so that commitments are made early on, and it is difficult to react to changes in requirements. Iterations are expensive. This means that the waterfall model is likely to be unsuitable if requirements are not well understood or are likely to change in the course of the project.

Agile methods, in contrast, produce completely developed and tested features every few weeks. The emphasis is on obtaining the smallest workable piece of functionality to deliver business value early, and continually improving it and adding further functionality throughout the life of the project. If a project being delivered under the waterfall method is cancelled at any point up to the end, there is nothing to show for it beyond a huge resources bill. With the agile method, being cancelled at any point will still leave the customer with some worthwhile code that has likely already been put into live operation.

In this respect, agile critics may assert that these features are not placed in context of the overall project, concluding that, if the sponsors of the project are concerned about completing certain goals with a defined timeline or budget, agile may not be appropriate. Proponents of agile development counter that adaptations of Scrum show how agile methods are augmented to produce and continuously improve a strategic plan.


Grounds of Agile

Agile home ground: Low criticality
• Senior developers
• Requirements change often
• Small number of developers
• Culture that thrives on chaos


Plan-driven home ground: High criticality

• Junior developers
• Requirements do not change often
• Large number of developers
• Culture that demands order
Agile methods
Some of the well-known agile software development methods:
• Agile Modeling
• Agile Unified Process (AUP)
• Agile Data Method
• DSDM
• Essential Unified Process (EssUP)
• Extreme programming (XP)
• Feature Driven Development (FDD)
• Getting Real
• Open Unified Process (OpenUP)
• Scrum
• Lean software development
Agile practices
• Test Driven Development (TDD)
• Behavior Driven Development (BDD)
• Continuous Integration
• Pair Programming
• Planning poker
• RITE Method


Measuring agility

While agility can be seen as a means to an end, a number of approaches have been proposed to quantify agility. Agility Index Measurements (AIM) score projects against a number of agility factors to achieve a total. The similarly-named Agility Measurement Index, scores developments against five dimensions of a software project (duration, risk, novelty, effort, and interaction). Other techniques are based on measurable goals. Another study using fuzzy mathematics has suggested that project velocity can be used as a metric of agility. There are agile self assessments to determine whether a team is using agile practices. While such approaches have been proposed to measure agility, the practical application of such metrics has yet to be seen.


Criticism

The criticisms regarding insufficient software design and lack of documentation are addressed by the Agile Modeling method, which can easily be tailored into agile processes.
Agile software development has been criticized because it may not bring about all of the claimed benefits unless utilized by above average programmers; above average programmers create above average code regardless of the method used.



References:

http://www.ctg.albany.edu/publications/reports/survey_of_sysdev/survey_of_sysdev.pdf

http://en.wikipedia.org/wiki/Waterfall_model

http://scitec.uwichill.edu.bb/cmp/online/cs22l/waterfall_model.htm

http://en.wikipedia.org/wiki/Spiral_model

http://scitec.uwichill.edu.bb/cmp/online/cs22l/spiralmodel.htm

http://en.wikipedia.org/wiki/Agile_Modeling

http://en.wikipedia.org/wiki/Agile_software_development





 

Missing You Blogger Template