The previous blog we spoke of information systems and how important they were to the modern business organizations. Information systems are designed to do specific task and different business organizations use different information systems to do this. In this blog we will look at the different aspects which go into designing a functional information system.
What is requirement engineering?
Requirements engineering is a strategic process which involves the client and the developer discussing the purpose, capabilities and functionality of a specific information system before being designed. During requirements engineering we determine the user expectations in a very quantifiable and relevant method. The developer draws up the blueprints and ideas based on the findings in requirements engineering, in order to tailor an effective information system according to the customer’s expectation.
“Requirements are a specification of what should be implemented. They are descriptions of how the system should behave, or of a system property or attribute. They may be a constraint on the development process of the system” (Wiegers, 2000).
Requirements engineering comprises of five important phases which are very essential for understanding the client’s needs.
Requirements management – in this phase the team will coordinate, schedule and document all the engineering activities such as elicitation, analysis, specification and verification.
Requirements elicitation – it’s the process clearly identifying the clients requirements by discovering and analyzing the user’s needs based on interviews, questionnaires and other auditing standards.
Requirements analysis – in this phase you further refine your findings in requirements elicitation to polish out the minor discrepancies.
Requirements specification – in this phase the client’s needs and constraints are documented clearly and precisely.
Requirements verification – in this phase the engineering team ensures that they have all the required information in a clear, complete and consistent manner.
A successful completion of requirements engineering based on the above five phases will give the system developer a very cut through picture of the systems demands and its purpose. The client’s inputs will also go a long way into developing an effective system.
As stated above requirements engineering is a very essential part of developing a good system, but at the same time even after requirements engineering some systems fail to achieve their purpose. Some of the lead causes for such systems to fail are:
- Incomplete requirements.
- Unrealistic expectations.
- Changing requirements / specification.
- Other issues.
Keys to a good requirement engineering strategy
Extensive user involvement – it is very important the users of the system are directly involved in the requirement engineering phase as they are direct stakeholders of the system. A clear perspective from the users of the system will determine the essential attributes of the system. Different user level feedback will enable the developing team to tackle the issues in many different ways which can be very essential in designing an effective information system.
Prioritizing requirements – fulfilling the client’s principal requirements is very important, hence prioritizing the clients specific requirements will enable the team to distinctively work on the specifics.
Clear requirement specification – as stated above requirement specification is one of the phases in requirements engineering. It’s also the stage at which majority of the documentation is done. Clear documentation is important as it’s the only form resource which developers can go back for reference, there documentation must be done in very good narrative English with the use of diagrams and charts to give the most effective output in terms of findings after requirements engineering.
Use component based architecture – design and facilitate the system in a stage by stage process with the involvement of the stake holders. This can be a very tedious and time consuming task but it’s a worthwhile process. The advantage of approaching the developed system in a stage by stage basis with the feedback of the users will enable the team to tackle and address all the issues at the initial stages itself, thus avoiding disappointments after the final product is delivered.
A good information system is a key to successful business; an efficiently designed system will have a significant impact on how well the good information system will function. Requirements engineering will always be an essential key strategic aspect in achieving a very functional and user friendly information system, hence must be given greatest of priorities and should be handled by a highly trained professionals who have been in the business long enough to understand all the different aspects of requirements engineering.
Wiegers, K. E., (2000). When Telepathy Won’t Do: Requirements Engineering Key Practices. Retrieved on May 11, 2016 from http://www.processimpact.com/articles/telepathy.html