Software Maintenance Implications on Cost and Schedule

Abstract The dictionary defines maintenance as, “The work of keeping something in proper order.” However, this definition does not necessarily fit for software. Software maintenance is different from hardware maintenance because software doesn’t physically wear out, but often gets less useful with age. Software is typically delivered with undiscovered flaws. Therefore, software maintenance is: “The process of modifying existing operational software while leaving its primary functions intact.” Maintenance typically exceeds fifty percent of the systems’ life cycle cost . While software maintenance can be treated as a level of effort activity, there are consequences on quality, functionality, reliability, cost and schedule that can be mitigated through the use of parametric estimation techniques.1. INTRODUCTION One of the greatest challenges facing software engineers is the management of change control. It has been estimated that the cost of change control can be between 40% and 70% of the life cycle costs . Software engineers have hoped that new languages and new process would greatly reduce these numbers; however this has not been the case. Fundamentally this is because software is still delivered with a significant number of defects. Capers Jones estimates that there are about 5 bugs per Function Point created during Development . Watts Humphrey found “… even experienced software engineers normally inject 100 or more defects per KSLOC . Capers Jones says, “A series of studies the defect density of software ranges from 49.5 to 94.5 errors per thousand lines of code .” The purpose of this article is to first review the fundamentals of software maintenance and to present alternative approaches to estimating software maintenance. A key element to note is that development and management decisions made during the development process can significantly affect the developmental cost and the resulting maintenance costs.2. SOFTWARE MAINTENANCE Maintenance activities include all work carried out post-delivery and should be distinguished from block modifications which represent significant design and development effort and supersede a previously released software package. These maintenance activities can be quite diverse, and it helps to identify exactly what post-delivery activities are to be included in an estimate of maintenance effort. Maintenance activities, once defined, may be evaluated in a quite different light than when called simply “maintenance”. Software maintenance is different from hardware maintenance because software doesn’t physically wear out, but software often gets less useful with age and it may be delivered with undiscovered flaws. In addition to the undiscovered flaws, it is common that some number of known defects pass from the development organization to the maintenance group. Accurate estimation of the effort required to maintain delivered software is aided by the decomposition of the overall effort into the various activities that make up the whole process.3. APPROACHING THE MAINTENANCE ISSUE Maintenance is a complicated and structured process. In his textbook, Estimating Software Intensive Systems, Richard Stuzke outlines the typical software maintenance process. It is apparent that the process is more than just writing new code.The following checklist can be used to explore the realism and accuracy of maintenance requirements.o Which pieces of software will be maintained?o How long will the system need to be maintained?o Are you estimating the entire maintenance problem, or just incremental maintenance?o What level of maintenance is required?o Is that which is being called maintenance in fact a new development project?o Who will do the maintenance? Will it be done organically by the original developer? Will there be a separate team? Will there be a separate organization?o Will maintainers be using the same tools used during development? Are any proprietary tools required for maintenance?o How much Commercial-Off-The-Shelf (COTS) is there? How tightly coupled are the interfaces?o Some follow-on development may be disguised as maintenance. This will either inflate maintenance figures, or else cause shortfalls if basic maintenance gets pushed aside. These questions will help you ask whether maintenance is being honestly represented.o Is the activity really an incremental improvement?o Are healthy chunks of the original code being rewritten or changed?o Will additional staff be brought in to perform the upgrade?o Is the maintenance effort schedule regular and fairly flat, or does it contain staffing humps that look like new development?4. SANITY CHECKS Although sanity checks should be sought on a year-by-year basis, they should not be attempted for overall development. The reason for this is that maintenance activities can be carried on indefinitely, rendering any life-cycle rules useless. As an example, consider Grady (p. 17):We spend about 2 to 3 times as much effort maintaining and enhancing software as we spend creating new software.This and similar observations apply at an organizational level and higher, but not for a specific project. Any development group with a history will be embroiled in the long tail ends of their many delivered projects, still needing indefinite attention. Here are a few quick sanity checks:o One maintainer can handle about 10,000 lines per year.o Overall life-cycle effort is typically 40% development and 60% maintenance.o Maintenance costs on average are one-sixth of yearly development costs.o Successful systems are usually maintained for 10 to 20 years.Finally, as in development, the amount of code that is new versus modified makes a difference. The effective size, that is, the equivalent effort if all the work were new code, is still the key input for both development and maintenance cost estimation.5. FIVE ALTERNATIVE APPROACHES All software estimation techniques must be able to model the theory and the likely real world result. The real world scenario is that over time, the overlay of changes upon changes makes software increasingly difficult to maintain and thus less useful. Maintenance effort estimation techniques range from the simplistic level of effort method, through more thoughtful analysis and development practice modifications, to the use of parametric models in order to use historical data to project future needs.5.1 Level of Effort As is sometimes the case in the development environment, software maintenance can be modeled as a level of effort activity. Given the repair category activities and the great variance that they show, this approach clearly has deficiencies. In this approach, a level of effort to maintain software is based on size and type.5.2 Level of Effort Plus Stuzke proposed that software maintenance starts with basic level of effort (minimum people needed to have a core competency and then that that basic core staff must be modified by assessing three additional factors; configuration management, quality assurance, and project management. His process addressed some of the additional factors affecting software maintenance.5.3 Maintenance Change Factor Software Cost Estimation with COCOMO II (Boehm 2000) proposes a deceivingly simple, but also quite useful methodology for determining annual maintenance. Maintenance is one of the menu selections in the menu bar. In COCOMO II Maintenance encompasses the process of modifying existing operational software while leaving its primary functions intact. This process excludes:o Major re-design and re-development (more than 50% new code) of a new software product performing substantially the same functions.o Design and development of a sizeable (more than 20% of the source instructions comprising the existing product) interfacing software package which requires relatively little redesigning of the existing product.o Data processing system operations, data entry, and modification of values in the database.The maintenance calculations are heavily based upon the Maintenance Change Factor (MCF) and the Maintenance Adjustment Factor (MAF). The MCF is similar to the Annual change Traffic in COCOMO81, except that maintenance periods other than a year can be used. The resulting maintenance effort estimation formula is the same as the COCOMO II Post Architecture development model.As stated previously, three cost drivers for maintenance differ from development. Those cost drivers are software reliability, modern programming practices, and schedule. COCOMO II assumes that increased investment in software reliability and use of modern programming practices during software development has a strong positive effect upon the maintenance stage.Annual Maintenance Effort = (Annual Change Traffic) * (Original Software Development Effort)The quantity Original Software Development Effort refers to the total effort (person-months or other unit of measure) expended throughout development, even if a multi-year project.The multiplier Annual Change Traffic is the proportion of the overall software to be modified during the year. This is relatively easy to obtain from engineering estimates. Developers often maintain change lists, or have a sense of proportional change to be required even before development is complete.5.4 Managing Software Maintenance Costs by Developmental Techniques and Management Decisions During DevelopmentWhen it comes to maintenance, “a penny spent is a pound saved.” Better development practices (even if more expensive) can significantly reduce maintenance effort, and reduce overall life cycle cost. The more effort put into development, the less required in maintenance. As an example, the software development cost and schedule can be significantly impacted (reduced) by letting the number of defects delivered grow. This cost and schedule reduction is more than offset by the increase in maintenance cost. The following discussion is an example of how management decision can significantly affect/reduce software maintenance costs.Lloyd Huff and George Novak of Lockheed Martin Aeronautics in their paper “Lockheed Martin Aeronautics Performance Based Software Sustainment for the F-35 Lightning II” propose a series of development and management decision designed to impact and reduce software maintenance costs. They propose an eight step process to estimate and control software maintenance . Their proposed steps are:1. Strive for Commonality2. Apply Industrial Engineering Practices to Software3. Engage4. Adopt a Holistic Approach to Sustainment5. Develop Highly Maintainable Systems and Software6. Manage the Off-the-Shelf Software7. Plan for the Unexpected8. Analyze and Refine the Software Sustainment Business Case (use Parametric software sustainment cost estimates)5.5 A Parametric Assessment of Software MaintenanceParametric models like SEER for Software allow maintenance to be modeled in either of two ways:Estimating maintenance as a part of the total lifecycle cost. Choosing the appropriate Maintenance category parameters will include an estimate of maintenance effort with the development estimate for the individual software program. Several reports and charts show breakdowns of development vs. maintenance effort. This method is best used to evaluate life cycle costs for each individual software program.Estimating maintenance as a separate activity. Using the appropriate maintenance parameters for the software to be maintained you can model the maintenance effort as a separate activity. This method will allow you to fine tune your maintenance estimate by adjusting parameters. Maintenance size should be the same as development size, but should be entered as all pre-existing code. This method can also be useful in breaking out total project maintenance costs from project development costs.A good parametric estimate for maintenance includes a wide range of information. Critical information for completing a software maintenance estimate is the size or amount of software that will be maintained, the quality of that software, the quality and availability of the documentation, and the type or amount of maintenance that will be done. Many organizations don’t actually estimate maintenance costs; they simply have a budget for software maintenance. In this case, a parametric model should be used to compute how much maintenance can actually be performed with the given budget.Estimating and planning for maintenance are critical activities if the software is required to function properly throughout its expected life. Even with a limited budget, a plan can be made to use the resources available in the most efficient, productive manner. Looking at the diagram above, you can see that not only are the multiple inputs that impact the maintenance, but there are several key outputs that provide the information necessary to plan a successful maintenance effort.6. Conclusion The conclusions of this article are:o Software maintenance can be modeled using a simplistic method like Level of Effort Staffing, but this technique has significant drawbacks.o Software maintenance costs can be significantly affected by management decisions during the developmental process.o Software maintenance can be accurately estimated using parametric processes.o Software maintenance is best modeled when development and management decisions are coupled with parametric cost estimation techniques.REFERENCES [1] Software Maintenance Concepts and Practices (second Edition) by Penny Grubb and Armstrong Takang, World Scientific, 2005.[2] Estimating Software Intensive Systems; Richard Stuzke, 2005, Addison-Wesley.[3] Lloyd Huff, George Novak; Lockheed Martin Aeronautics; Lockheed Martin Aeronautics Performance Based Software Sustainment for the F-35 Lightning II.[4] G. Edward Bryan, “CP-6: Quality and Productivity Measures in the 15-Year Life Cycle of an Operating System,” Software Quality Journal 2, 129-144, June 1993.[5] Software Sizing, Estimation, and Risk Management; Daniel D. Galorath, Michael W. Evans, 2006, Auerbach Publications.

The Best Art Schools In America

Of the thousands of art schools in America, a few stand out in the art world as the best schools based on academic value. Some are dedicated art schools and some are colleges of general education with outstanding departments.Rhode Island School of Design enjoys the highest profile in art and design, and superlative respect among experts in the art world. A student with a degree from RISD will have their resume’ moved to the top of the pile. It is, however, not without substantial investment. At an average cost of over 100,000.00 per year, only the very serious artist major need apply. That may, in fact, be a large part of the respect given to graduates of this school.Yale University, already one of the most respected centers of education in America, also enjoys the status of having one of the best art schools in America for undergraduate work. Yale offers courses for several areas of visual art and techniques, as well as art history – a firm foundation for more intense graduate work.The Art Institute of Chicago offers one of the most unique opportunities for interpolation of art education and history to be found. AIC is actually located INSIDE one of America’s finest museums offering an outstanding experience for those who relish saturation in their passion and discipline.Cranbrook Academy of Art, located in southeast Michigan north of Detroit, has developed its reputation for modernism in architecture as well as many other genres in the field.At Maryland Institute College of Art the primary focus (no pun intended), is on visual arts such as graphic design, illustration, animation, and video film. A graduate from MICA applying at Pixar or Disney would be well positioned for serious consideration.Virginia Commonwealth University, a public college, offers some eighteen undergraduate majors from fine arts to many of the modern forms of digital and design. This is a quality education at a more affordable price. But, it’s not a shoe-in. Entrance is moderately difficult, so this is not for the student tenuous about a career in this field.California Institute of the Arts is well-known as the first academy to offer programs in both visual and performing arts. This only makes sense since Hollywood is the entertainment industry’s capital. Majors are offered in fine arts, theater, dance and music.Carnegie Melon University College of Art offers a well-rounded choice in schools of Art, Architecture, Design, Drama, and Music commensurate with CMU’s overall reputation.University of California Los Angeles (UCLA) offers possibly the most interesting variety in majors at their School of Arts and Architecture. Majors in World Arts and Cultures, Ethnomusicology, and Urban Design are definitely for out-of-the-box thinkers looking for highly specialized careers.Art Center College of Design, a private college located in Pasadena, CA, originally built its reputation as a vocational school. It still maintains a real-world focus on craftsmanship, technique and professionalism. If practical skills and abilities are your goals, Art Center’s roads to real-life clients such as Nike and Disney have earned it a position as one of the 11 best design schools in America.

Stop! My Kid Can’t Eat That: Food Allergies In Children

In the middle of the night in Atlanta, I got a frantic call from my daughter in Chicago. “Daddy, I’m so sorry to wake you, but Michael just ate a little piece of cashew and now his face is swollen and he’s breaking out in a rash all over his body.” Once I realized that her voice wasn’t just part of some bad dream, I gave my doctor’s orders: “Give him Benadryl and take him to the emergency room immediately!”As a board-certified allergist for 25 years, I recognized that my grandson was having a potentially serious allergic reaction and that his symptoms could get worse-much worse. Fortunately, by the time they arrived at the hospital, the swelling had subsided and his hives had resolved.Even though my grandson’s diagnosis was easy to make, food allergies can be one of the most frustrating and complex allergy issues facing physicians, patients, and families. If you consider the unlimited number of foods and additives we consume today, the variable time between ingestion and allergic reaction, and the varied and often-subtle symptoms, it seems miraculous when an allergy-triggering food is actually identified.Food Allergies In Children: A Disturbing TrendAsk anyone who raised children 25 years ago if they ever heard of food allergies back then, and the likely answer will be no. Yet today, who doesn’t know a child-if not several kids-who have severe food allergies? Pediatricians and allergists are observing first-hand that food allergies in infants and children have increased to epidemic proportions over the last few decades. Studies have shown that in the under-18 age group, the prevalence of reported food allergies increased 18% between 1997 and 2007. Approximately 4% of Americans are estimated to have food allergies. That’s more than 12 million individuals. The prevalence of food allergies is even higher-6% to 8%-in infants and young children under three years old.Any type of food can trigger an outbreak, yet the “Big 8″ account for more than 90% of all cases: milk, eggs, peanuts, tree nuts, fish, shellfish, soy, and wheat. Sesame is quickly becoming another common cause of allergies, especially in those with Mediterranean diets. The good news is that the incidence of documented food allergies decreases with age, probably due to the development of tolerance in children allergic to milk, wheat, soy, and eggs. Of the 2.5% of children allergic to milk, approximately 80% will “outgrow” their allergy by age five. Kids with peanut or tree nut allergies aren’t as lucky: Recent studies have shown that only about 10% to 20% of children will lose their allergy as they age.Pediatric Food Allergies: Instantaneous Outbreak Of the two main types of allergies, the “immediate hypersensitivity reaction” gets the most hype, probably because you can see the symptoms (whether it’s hives or swelling) right away. The other kind is aptly named “delayed hypersensitivity reaction.” Otherwise known as IgE-mediated, the immediate allergic reaction is the best understood and the most easily diagnosed. Yet it can also be the most serious. When the proteins in an allergenic food come in contact with an IgE antibody (located in the skin, gut, and airways, or in the blood), a cascade of cellular events occurs resulting in the release of histamine and a multitude of other chemical mediators. The rapid release of the histamine and other chemicals is what causes the allergic reaction. The outbreak, which generally occurs within minutes of ingestion, can be relatively mild or severe. Moderate symptoms might include a rash, generalized itching and redness of the skin, facial or eyelid swelling, abdominal cramping, vomiting and/or diarrhea. These can be treated with a quick-acting antihistamine and tend to run their course over a few minutes to hours. The most severe reaction is called anaphylaxis, which can occur instantaneously or a few minutes after ingestion. As a general rule, the quicker the onset of symptoms, the more serious the reaction is likely to be. Symptoms of anaphylaxis might include those mentioned above, but can also rapidly progress to breathing difficulties and chest tightness (due to bronchial constriction and swelling of the airways), a drop in blood pressure leading to shock-and even death. Epinephrine (also known as adrenalin), which is available for self-injection in the form of an Epipen and other auto-injectors, must be given immediately and repeated if necessary. Foods that commonly cause severe reactions include peanuts, tree nuts, fish, sesame seeds, milk, and eggs. The most serious reaction I ever witnessed resulted from the ingestion of a single pine nut. That tiny seed (it’s not really a nut) transformed a healthy teenager into a critically ill patient within a matter of minutes. Fortunately, the patient recovered, but anaphylaxis can be fatal if not treated immediately and aggressively. If your child has ever had an immediate allergic reaction to a food, you should consult with a board-certified allergist. To identify or confirm the symptom-triggering food, the allergist will likely give a few tests, either through the skin or blood. From there, you and your allergist can come up with a plan to eliminate the food from your child’s diet and discuss prevention and management of future reactions.Delayed Allergic Reactions: Subtle Yet ElusiveWhile less dangerous in terms of one’s immediate health, the “delayed allergic reaction” can be much more difficult to diagnose and treat. As the name implies, it can take hours or even days after ingestion for the symptoms to show up, making it harder to establish a cause-and- effect relationship. The typical symptoms can involve several organ systems and may be quite subtle in their presentation. In addition to the classic allergy symptoms (think nasal congestion, a runny nose, and a rash), delayed reactions may also present with very vague and nonspecific symptoms, such as frequent headaches, recurrent or chronic abdominal pain, fatigue and lethargy, irritability, dark circles under the eyes, leg pains, and recurrent ear or sinus infections.Part of the difficulty in diagnosing these food reactions is that there’s no reliable allergy test that can accurately identify or predict a delayed outbreak. Skin testing and blood tests aren’t helpful because they only measure the IgE antibody, which is responsible for immediate reactions. Research has not yet identified the antibody or antibodies responsible for delayed reactions, although there has been considerable interest and research in the possible role of the IgG antibody. Blood tests to measure this antibody are available, but its reliability as a predictor of delayed allergy has not yet been established.So how can you figure out if your child’s symptoms are the result of something he or she is eating? The best method we have right now is to eliminate the suspected food (or drink) from your kid’s diet for four weeks. If you notice a significant improvement in symptoms, you’re ready for the challenge phase: Serve the food in question for several days straight. If the symptoms start recurring, you can be relatively sure that a cause-and-effect relationship has been established. Even after avoiding the food culprit, it can still take a few weeks for symptoms to completely disappear, so be patient.By far, milk and other dairy products are the most common cause of this type of reaction. Over the years, many teenagers have walked into my office with their parents complaining about stomach discomfort and profound tiredness. By the time they’ve come to see me, they’ve usually been through various tests and have seen multiple physicians, including gastroenterologists, and have often been diagnosed with irritable bowel syndrome. After hearing about their saga and symptoms-and seeing the dark circles under their eyes and their pale, sallow complexion-I can usually tell that it’s a dairy allergy. Fortunately, many responded dramatically to a few weeks off of milk. They couldn’t believe that the innocent act of drinking milk and eating dairy products could make them feel so ill-and that avoiding these products could restore their good health and vitality in such a short time.Food Allergy Cross-ReactivityIf you’re like me, you may have a food allergy that’s directly connected to your sensitivity to tree and weed pollens. Called “oral allergy syndrome,” this condition shows up when there’s a cross-reactivity between tree or weed pollens and corresponding foods that share a common allergen. For example, because ragweed pollen and foods in the gourd family share a common allergen, people allergic to ragweed may exhibit symptoms after ingesting foods such as melons (watermelon, cantaloupe, and honeydew), zucchini, cucumber, and bananas. Because I’m allergic to ragweed pollen, I cannot eat melons or ripe bananas without developing intense itching in my throat. If you’re sensitive to birch tree pollen, you may react to apples, pears, and apricots. Celery may be a problem for those allergic to mugwort pollen.The typical symptoms, which are generally mild and transitory, are itching of the throat, mouth, and tongue. That aggravating throat itch often compels sufferers to rub their tongue against the soft palate, making a characteristic “clucking” sound. The vast majority of patients experience symptoms within five minutes of ingestion. Depending on the time of year, the presentation can be affected by the particular pollen season. The upside of this condition, which is the most common food-related allergy in adults, is that symptoms are only caused by the ingestion of raw or uncooked fruits or vegetables. The heating process that occurs during cooking breaks down the allergic protein, so you can eat boiled, baked, fried, or roasted fruits and veggies without triggering symptoms.Allergies In InfantsBecause of their age, newborns and infants can be especially sensitive to food allergies. Symptoms may include colic, irritability, excessive spitting and vomiting, rashes (including eczema or hives), nasal symptoms (such as congestion and runny nose), coughing or wheezing, and other gastrointestinal symptoms (diarrhea, bloody stools, or constipation). There can also be poor weight gain. Allergies in infants up to age one are almost always caused by food-most commonly cow’s milk. Yet a baby doesn’t have to drink milk straight for symptoms to break out: The proteins in cow’s milk can enter the baby’s system through some commercial formulas, as well as by passing through the mother’s milk during nursing. A small percentage of milk-allergic babies are also allergic to soy.In recent years, researchers have devoted themselves to understanding the disturbing rise of food allergies, especially in infants and kids. What they have discovered is leading allergists and physicians to dramatically revise recommendations on how and when we introduce foods to infants. For many decades, the time-honored and well-established approach was to delay the introduction of highly allergenic foods into the infant’s diet to prevent the emergence of food allergies. For example, solid foods are generally not recommended until six months of age, cow’s milk until one year, eggs until two years, and peanuts, tree nuts, and fish until three years. There is also a widely accepted notion that breast feeding alone for the first six months of life will minimize or delay the onset of food allergies and other allergic diseases (including asthma), as well as atopic dermatitis or eczema.The latest medical evidence, however, is debunking these age-old theories. Indeed, the recommendation to delay the introduction of foods to infants as a means of preventing food allergies may be the wrong approach altogether. Recent studies have revealed very credible scientific evidence to suggest that the common practice of delaying the introduction of cow’s milk, eggs, peanuts, and other foods may increase the child’s risk of developing food allergies. And, even more importantly, there is evidence to suggest that the early introduction of allergenic foods may actually prevent the development of the allergy to that food. As an example, a recent study demonstrated that children in England were ten times more likely to be allergic to peanuts than children in Israel. One very strong hypothesis to explain this finding is the fact that Israeli infants are introduced to peanuts, generally through Bamba (a Peanut flavored snack that is used as a teething food), at about six months of age. On the other hand, children in England are generally not introduced to peanuts in any form until approximately three years of age. This study is just one of many that strongly suggest that an early introduction to certain foods can help babies build desensitization, thereby decreasing the risk of developing a food allergy.Managing Severe AllergiesHistorically, the treatment of serious food allergies has consisted of avoiding exposure and ingestion of the allergenic food, and making antihistamines and epinephrine immediately available. Total abstinence is indeed difficult and often impossible, as evidenced by the large number of accidental ingestions and allergic reactions that have resulted in emergency room visits. Even with strict avoidance measures, the potential for sudden and life-threatening outbreaks can lead to extreme anxiety in both the child-and the parent.Fortunately, medical research has now proven that orally-administered immunotherapy can result in a significant degree of desensitization, or tolerance, to a given food in most allergic patients. This form of therapy, however, is associated with a significant amount of risk and should only be performed under the watchful eye of a board-certified allergist experienced in oral tolerance induction. Presently in the United States, this form of desensitization is being performed at a few highly-acclaimed medical centers.An Allergy-Free FutureWith all the time and money being put into food allergy research, there is excitement in the medical field about the possibility of new breakthroughs in the near future-both in prevention and treatment. I, for one, am optimistic that a safe and effective treatment is close at hand.