Saturday, March 21, 2009

WEEK 3 - REQUIREMENTS GATHERING

Requirements gathering is a very important section as far as the analysis stage of the Systems Development Life Cycle is concerned. If you need to build an application for a coffee shop for instance, you cannot jump directly into the coding before you get to completely understand what the shop needs. As a keen analyser you must gather as much information as possible from your client. For example, before building the system, you must know what the shop wants from the system, what foods they want displayed on the menu and so on and so forth. Therefore analysing will start with gathering as much information as possible from the client.
As a systems analyst there are some important skills that you must have in order to gather information. You must have fact finding skills for needed for investigation of the system requirements. Good analysts are expected to learn all the details of business processes and the daily operations of the place. In order to gain credibility systems analysts must be as knowledgable as the business domain users and bring up fresh perspective to the problem. Finally based on the system requirements he/she must be able to model business processes.
THE MAIN OBJECTIVE OF REQUIREMENTS GATHERING IS TO MAKE SURE WE HAVE AL THE INFORMATION NEEDED TO DEFINE WHAT THE SYSTEM THAT WE ARE BUILDING MUST DO(read in caps lock)
If we take a deeper look into the analysis phase of the systems development Life Cycle, except for requirements gathering, there are some other ,the analysis phase must also determine system requirements, that is both the physical model and the logical model. The system requirements are prioritized and later prototyped for feasibility and discovery. Alternatives are generated and evaluated and recommendations are reviewed with the management. 
Business Process reengineering and analysis is a fundamental strategic approach to organizing the company as it streamlines the internal processes to be as efficient and effective as possible. The approach questions basic assumptions for doing business and seeks to find a better way and uses IT as BPR(Business Process Re-Engineering) enabler
System requirements define new system capabilities and constraints and the requirements are of two types: Functional and Non-Functional requirements. Functional requirements are the activities thatthe system must perform and are based on procedures and business functions. Functional requirements are documented in analysis models. Non functional requirements are the operating environment or the performance objectives and touch on issues such as usability, reliability, user-friendliness and security requirements that the system must accomplish.
The stakeholders are the people with the systems requirements and are interested in successful systems implementation. There are three types of Stakeholders namely: Users who use the system, Clients who pay for and own the system and The Technical Staff who have the responsibility of ensuring the system operates.
Since information gathering is used to understand business functions and developing system requirements, we must have the necessary techniques to enhance the accuracy of our fact finding methods. These techniques include reviewing existing reports, forms and procedure descriptions, interviewing the users and discussing processes with them, observing and documenting business processes, building prototypes, distributing and collecting questionaires, conducting joint application design(JAD) sessions and researching vendor solutions.
Finally analysts must validate system requirements to make sure that the gathered information is correct/accurate. The project manager is responsible for the quality of the system.

Friday, March 13, 2009

Week 2 - The Context Of Systems Analysis And Design

       This week gave me a deeper understanding of the context of systems analysis and design. We first look at the activities that take place in the Systems Development Life Cycle in great detail. Firts and foremost what do we mean by SDLC??? The systems development Life Cycle refers to a project management technique that divides a complex project into smaller, more easily managable segments. Breaking down a project into many phases allows the managers to verify the successful completion of the different phases of the project before allocating resources to subsequent phases. From last week's lectures and resources, Systems Analysis and Design revolves around problem solving. For any project to be successful, regardless of if its a complicated IT system or a simple business system, the analyst MUST be able to draw a detailed plan to follow. To build a reliable, robust and efficient system, the team of analysts must have an organized, methodical sequence of activities.
         The Systems development Life Cycle outlines a series of phases that must be followed for a system to be successfully structured and yield desirable results. The seven phases of the SDLC are as follows:
1. The Planning Phase
2. The Analysis Phase
3. The Design Phase
4.  The Development Phase
5. The Testing Stage
6. The Implementation Phase
7. The Maintenance Stage
The planning stage is where the goals as well as the scope of the project are initially determined. Planning also produces a detailed project schedule and also confirms the feasibility of the project. The factors to be considered here are the costs incurred to ensure the project is financially viable, organizational and technical resources as well as the willingness of the staff to learn new concepts. The project therefore has to be well staffed right from the beginning.
The analysis phase involves gathering as much information as possible to understand the problem domain to be solved. This aims towards establishing the exact source of the problem. The system requirements are clearly defined and the prototypes necessary for the discovery of the requirements are also built. The requirements are prioritized and then later on, alternatives are generated and evaluated accordingly. Finally recommendations are reviewed with the management!
After all the problems have been identified we can design a system to solve these problems.Here we design and intergrate the network as well as the application arhitecture. Later the user interphases and the system intephases are also designed. A database is later designed and intergrated. First, the creation of a logical design will be undertaken and this will explain what the new system will do; the creation of a physical systems design will list the equipment needed to perform the logical design.
The development stage converts the deign specifications into executable computer programs. The programmers and other participants of the project discuss the design specifications of the project before the actual programming begins and this is aimed at ensuring that the programmers clearly understand the program designs ad functional requirements. In the development phase, the systems is built and programmed in a particular progamming language such as java, C++, VB.NET or any other language relevant to the system. Computer programmers will carefully do the coding to ensure a robust and efficient system is built to cater for the needs of the business involved. I also found out that there are 10 different types of testing tech
Once the systems has gone through the development stage it has to be thoroughly tested to eradicate errors and ensure the accuracy of the program codes used. Testers are people who identify the defects/weaknesses of a program during the process of testing.
Having eradicated all the errors in the testing stage, we embark on the implementation of the project. This is where the system is officially launched and later installed for use by the company. The support and maintenance phase then comes in where we make updates if the system and repair it just in case there is any problem encountered. We can also enhance the system by updating it to increase its capabilities. Users may also require a help desk or a support team so as to explain their problems to representatives of the system.
Different approaches may be used when building an I.T. system. There is the waterfall approach, the overlapping approach and the iteration approach. In the waterfal approach,  each phase into the next subsequent phase. The overlapping approach takes the assumption that the waterfall approach is not realistic and that we are not perfect.  Overlaps can be more frequent than waterfall. In iteration work activities are repeated and each iteration refines the previous result.  This approach assumes that nobody gets it right the first time and there is also a series of mini-projects for each iteration.
Methodologies and models are necessary in the process of systems development Life Cycle. Methodologies are comprehensive guidelines to follow for completing every SDLC activity and consists of a collection of models, tools and techniques. Models on the other hand are a representation of an important aspect of the real world but not same as real thing. Some models of a systems component are like data flow diagrams, flow charts, entity relationship diagrams, structure chart and class diagrams. 
Two approaches used in Systems Development are the traditional approach and secondly structured programming. The traditional approach is also called the structured systems development approach and it makes use of structured analysis and design techniques(SADT).  Strutured programming improves the quality of a computer program and allows other programmers to easily read through the code and modify the code work. Finally each program module has one begining and one ending as well. 

Thursday, March 5, 2009

Week 1

After having a read through the lecture notes for week 1, the unit guide, attending Peter's lecture and googling "Systems Analysis and Design", I now have a picture of what is expected from me in this unit. FIT2001 is a unit that takes us deep into PROBLEM SOLVING (in caps lock), that is systems are created to SOLVE problems. It teaches us to start to look @ problem from all sides and perspectives, analyse it and break it down into simple sections and carefully scrutinise each bit of the problem and finally come up with solutions to them.
Another thing I noted about the unit is that it DISCOURAGES people from abruptly running into programming/coding once a problem is given to them as this in most cases is the MAIN cause of errors that later show up in the programs/applications we, as IT proffessionals, make. The gospel that FIT2001 is preaching is FAILING TO PLAN IS PLANNING TO FAIL.
A system can also be defined as a collection of entities and components that work closely together to realize some common predefined objectives. The various stages involved in the development of a system, the SDLC, come in crucial at this point. The seven stages of the Systems Development Life Cycle are as follows:

1. Initial Planning
2. The Analysis Stage
3. The Design Stage
4. The Development Stage
5. The Testing Stage
6. Maintenance.

So what is the role of a systems analyst? This is the fellow who will use analysis and design techniques to solve business problems using the help of information technology. He will have to look @ matters critically in depth and visualize solutions to these problems. To achieve this goal he will first of all research and understand the problem well before jumping into any conclusion. Prove to the business people that the benefits of solving the problem will be more than/outweigh the costs incurred in the process just to make sure the project is worthwhile. He will then define the requirements for solving the problem and develop a set of possible solutions/alternatives to tackle the problem being faced, choose the best and solution and make a recommendation. The details of the chosen solution are defined and later implemented accordingly. Finally he/she monitors the system to make sure that he/she obtains the desired results!