Note: Sample below may appear distorted but all corresponding word document files contain proper formattingExcerpt from Term Paper:
Requirements Are Volatile: Design, Resource Allocation, and Lifecyles Aren't So Flexible
For the majority of software development initiatives, bad requirements are a fact of life. Even when there is a high quality elicitation process, requirement change throughout the software lifecycle model. This is expected, if not desired to build a system that the customers wants and will use. But, it's difficult to change design and resource allocation once these have been developed based on initial requirements. And, the lifecycle model itself makes adjusting processes to accommodate new requirements difficult, even when abandoning discrete models in favor of more continuous approaches.
Bad requirements happen for many reasons. But, of all the requirements engineering processes, requirements elicitation has the highest incidence of malpractice.
Too little time is spent on elicitation and it is difficult to get customers to communicate their requirements because they either do not know what they want, are unable to fully define what they want or are unable to decide what they want. There also exists a communications barrier between systems developers and domain experts that provide the requirements. System developers do not know the terms of the domain and most domain experts are not conversant in software engineering terminology. Also, developers and customers often have different meanings for what a "requirement" is. Customers consider a requirement to be a statement of need while the developer sees a requirement as the real need of the customer that can be tested and validated. Despite the hype, formal methods have not been effective in bridging the gap between the customer and the developer.
The requirements analysis process is intended to verify the consistency and feasibility of requirements. However, technology issues often arise because of over or under analysis. Over analysis fails to set priorities for what is important and attempt to take on too broad of a scope while under analysis often takes place as a cost savings measure. Tools to support analysis have high learning curves and become shelf ware if they impose a process that is conflict with an organization's process.
Requirements management is also another source of questionable requirements.
Requirements management is meant to control change during and after the development of requirements. However, it is difficult for projects to strike the appropriate balance for the acceptable level of change. According to research sponsored by the Computer Resources Support Improvement Program (CRSIP):
The accepted requirements volatility metric is 1% of requirements per month. If it is much less, one should ask oneself if the system will be desirable to its intended audience. If it is much more than 2% a month, development chaos is all but assured."
Because requirements are volatile, projects need to use a system that facilitates the definition of a requirements baseline and an incremental lifecycle that supports changing requirements.
Requirements validation and verification needs to confirm existing requirements as well as identify missing requirements. However, customers cannot always understand mechanisms used to validate a system, introducing a quality issue. Often, validation and verification is performed too late in the requirements engineering process, rather than being a part of the initial elicitation, stage.
Bad requirements lead to poor software design because they provide deficient input into the development of the design and they lead to incorrect resource allocation decisions that cannot be easily corrected. The following Capers Jones's quote in Design Methods: Seeds of Human Futures appropriately sums up the situation of what happens when the wrong requirements are used in software design:
The fundamental problem is that designers are obliged to use current information to predict a future state that will not come about unless their predictions are correct. The final outcome of designing has to be assumed before the means to achieving it can be explored: the designers have to work backwards in time from an assumed effect upon the world to the beginning of a chain of events that will bring the effect about."
The data, architectural, interface and procedural designs are all negatively influenced by inadequate requirements. During the design phase, decisions are made regarding the appropriate hardware, programming languages, staffing, end-user interfaces, etc. When requirements are ill defined, resource estimates are likely to be incorrect.
Fixing misestimates of these is easier said than done one the project is underway. The Mythical Man-Month by Frederick Brooks is a book that explains why it's difficult to add new staffing…[continue]
"Software Engineering" (2002, November 24) Retrieved October 26, 2016, from http://www.paperdue.com/essay/software-engineering-139489
"Software Engineering" 24 November 2002. Web.26 October. 2016. <http://www.paperdue.com/essay/software-engineering-139489>
"Software Engineering", 24 November 2002, Accessed.26 October. 2016, http://www.paperdue.com/essay/software-engineering-139489
Software Engineering Outline requirements for a Supermarket Checkout System -- The checkout system in a supermarket consists of a store computer to which the cash registers are connected. Each cash register is equipped with its own processor, a keypad with numeric keys and function keys, an electronic barcode scanner, a scale, a customer order receipt printer, a credit/debit card reader, a credit/debit card receipt printer and a display where item and
Software Engineering: What Makes it Run The Software Engineering Online Learning Center sponsored by the Institute of Electrical and Electronic Engineers (IEEE) is a wealth of useful information for anyone interested in the disciplines this organization is committed to advancing knowledge in. Divided into webcasts, DB2 tutorials, Amazon.com and eBay tutorials, Java learning tools and Linux certification tutorials, the learning center strikes a good balance between open source and proprietary software.
Software Engineering: What Makes it Run IBM and the Institute of Electrical and Electronic Engineers (IEEE) have collaborated to create the Software Engineering Online Learning Center, a portal of educational and industry information that is very useful for any student of computer science, programming or software engineering. The intent of this paper is to evaluate this portal for its applicability and value to learning. The portal is designed around IBM-centric content
Management Requirements engineering process is at the very core of project success. Rather than spend huge amounts of money for reworking the whole project it is prudent and cost effective to identify and rectify the problems early in the project development life cycle. We are witnessing a paradigm shift in communication and computer technology and there is a consequent change in our business methodologies. In this automated business environment there is
This approach brings down the costs involved, the chances of delay in product release and the gives the user an option to update their requirements in successive iterative steps (Jacobson & Rumbaugh 1999, pp. 3-13). CHAPTER 2 Oracle and Microsoft SQL Server are among the most widely used databases with a large range of features with regards to their techniques of development and deployment. Both the Oracle 10g and SQL Server
Knowledge-Oriented Software Engineering Process In a Multi-Cultural Context In the peer-reviewed article Knowledge-Oriented Software Engineering Process In A Multi-Cultural Context (Jaakkola, Heimburger, Linna, 2010) the authors contend that the accelerating nature of software development leaves little time for cultural assimilation and integration of teams to an optimal level. The authors have defined the specifics of how software development is changing very rapidly due to mobile platforms, cloud computing and Software-as-a-Service (SaaS). Exacerbating
Silver Bullet During the 1970's, companies had difficulty delivering software within the constraints of schedule, budget, and quality (Food for Thought, 2005). The problem grew worse over time. Many projects undertaken in the 1980's and 1990's were complete disasters, failing to deliver anything, grossly exceeding budget and schedule deadlines, and delivering poor quality. Also, during the 1980's a "software crisis" occurred in which the spending on software maintenance exceeded spending