Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Cs671 final loren schwappach


Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Cs671 final loren schwappach

  1. 1. CS671 Software Systems Engineering Process Final Test Professor Scott Puryear May 2011
  2. 2. 1. Your Name: Loren Karl Schwappach2. Describe the importance of the software process and the basic principles for improving the development and maintenance of software. Having a software process is extremely important when developing and maintainingsoftware and the methodology used can determine whether the software produced becomesgarbage or instrumental. Determining the scope of the process improvement plan,developing an action plan to meet the improvement goals, and utilization of a riskmanagement plan can all allow for improvement of software processes. A software life cycle model is a descriptive or prescriptive characterization of howsoftware is or should be developed. The models can be used as the basis for understandingand improving the software development process. (Scacchi, 2001) Most life cycle models usually include the following activities or Basic Principles..(System Initiation/Planning, Requirement Analysis and Specification, FunctionalSpecification or Prototyping, Partition and Selection, Architectural Design and ConfigurationSpecification, Detailed Component Design Specification, Component Implementation andDebugging, Software Integration and Testing, Documentation Revision and System Delivery,Deployment and Installation, Training and Use, and Software Maintenance) (Scacchi, 2001).A software process model represents a networked sequence of activities, objects,transformations, and events that allow for software evolution throughout the life cycle(Scacchi, 2001). However, to the specifics of software development and maintenance I found a greatarticle by David Hooker where he lists the following top seven principles of developing andmaintaining software listed below. (Hooker, 1996). Although I am only a BSEE/BSCEmajor at CTU and have had no experience in this field I can agree with Mr. Hooker’sprinciples. Top Seven Principles for Software Development: 2
  3. 3. #1: The Reason It All Exists. (Hooker, 1996).A software system exists for one reason: to provide value to its users. All decisionsshould be made with this in mind.#2: KISS (Keep It Simple, Stupid!). (Hooker, 1996).All design should be as simple as possible, but no simpler. This facilitates having a moreeasily understood, and easily maintained system.#3: Maintain the Vision. (Hooker, 1996).A clear vision is essential to the success of a software project and is essential toconstructing a system that is understandable, can be extended and reorganized, and ismaintainable and testable.#5: What You Produce, Others Will Consume. (Hooker, 1996).Always specify, design, and implement knowing someone else will have to understandwhat you are doing.#5: Be Open to the Future. (Hooker, 1996).Never design yourself into a corner. Always ask "what if ", and prepare for all possibleanswers by creating systems that solve the general problem, not just the specific one. Thiscould very possibly lead to the reuse of an entire system.#6: Plan Ahead for Reuse (Hooker, 1996).Reuse saves time and effort. Achieving a high level of reuse is arguably the hardest goalto accomplish in developing a software system. Planning ahead for reuse reduces thecost and increases the value of both the reusable components and the systems into whichthey are incorporated.#7: Think! (Hooker, 1996). 3
  4. 4. Placing clear, complete thought before action almost always produces better results. When you think about something, you are more likely to do it right. You also gain knowledge about how to do it right again.Hooker D. (1996). Seven Principles of Software Development, Retrieved from What are the five critical questions in process improvement?#1 – (Motive) What are the business issues (goals/problems), etc. that are driving processimprovement? (Waina, 2002)#2 – (Model) Which reference model best maps to the organizations practices? (Waina,2002)#3 – (Method) How can you quickly and effectively identify improvement opportunities?(Waina, 2002)#4 – (Managing Change) What factors impact the effectiveness of introduced changes?(Waina, 2002)#5 – (Measures) What are the critical factors in setting up a measurement program? (Waina,2002)Waina D. (2002). Five Critical Questions in Process Improvement, Multi-dimensional Maturity. Retrieved from 4
  5. 5. 4. What are the critical business issues driving process improvement today? I believe that the critical business issues driving process improvement today are cost(how much can be saved by improving current processes), predictability (how will processimprovement allow for future predictability), amount of rework (can process improvement beutilized to reduce the amount of rework being completed), customer satisfaction (cancustomer satisfaction be improved through the process), and employee satisfaction (can turnover rates be improved through process improvement).5. One thesis from “Process Models in Software Engineering” is that contemporary models of software development must account for the software, the interrelationships between software products and production processes, as well as for the roles played by tools, people and their workplaces. Explain what this means. (Make sure you describe what “account for” is as defined by Walt Scacchi in his paper) After thoroughly reading Mr. Scacchi’s white paper Process Models in Software Engineering, several times, it seems that Mr. Scacchi’s provided conclusion statement... “that contemporary models of software development must account for the software, the interrelationships between software products and production processes, as well as for the roles played by tools, people and their workplaces” (Scacchi, 2001) is stating that modern day models (such as CMMI and current process centered emerging trends and new directions) need to be concerned with “developing formal specifications of how a system or family of software systems should be developed” (Scacchi, 2001). This includes the connections between the production process and the software products. If the interrelationships between these two are not accounted for the software model will fail to fully merge/implement the models improvement incentives and goal actualization will be limited. As Mr. Scacchi mentions “Such specifications therefore provide an account for the organization and description of various software production task chains, how they interrelate, when then can iterate, etc., as well as what software tools to use to support different tasks, and how these tools should be used (Hoffnagel 1985, Osterweil 1987)” (Scacchi, 2001). This is what Mr. Scacchi means by “account for”. As Mr. Scacchi states 5
  6. 6. “many process programming proposals (as of 1987) were focused almost exclusively to those aspects of software engineering that were amenable to automation”, most of these proposals failed because they did not take into account the production processes, roles played by tools, or the people involved. However, using the Goal-Problem approach we analyzed in class allied with models like CMMI and Six Sigma improve the odds.Scacchi, W. (2001). Process Models in Software Engineering Retrieved from What is Six Sigma and how is Six Sigma an enabler? Six Sigma is a multifaceted approach to business improvement that is designed to improve customer satisfaction by eliminating defects (any product, service, or process variation that prevents meeting the customer’s needs and/or cost) and thereby increase profitability. It includes a philosophy, a collection of performance measures (six sigma means 99.9997% defect free), multiple improvement frameworks (to include the commonly used Define-Measure-Analyze-Improve-Control, DMAIC framework), and an analytical toolkit. (Siviy, Penn, Stoddard, 2008) Six Sigma is said to be an enabler for CMMI because when used with CMMI it results in better choices of improvement practices and project selection, accelerated implementation of selected improvements, more effective implementation of the actions, and valid measurement results and success through the use of Six Sigma framework and toolset. (Siviy, Penn, Stoddard, 2008) Appendix D.7.2 of the book CMMI and Six Sigma: Partners in Process Improvement below shows several findings illustrating Six Sigma as an enabler of the adoption of software, systems, and IT improvement models and practices and mentions several findings which support this hypothesis. (Siviy, Penn, Stoddard, 2008) Siviy, M. J., Penn, L. M., & Stoddard, W. R. (2008). CMMI and Six Sigma: Partners in Process Improvement. Boston: Pearson. 6
  7. 7. 7. What is an action plan and how is it used? An action plan is used to map goals/problems to actions that can be used to accomplish the goals and eliminate the problems. Action plans can help you accomplish the following: (Potter, Sakry, 2002)  Break each goal into smaller, manageable tasks.  Identify the most appropriate tasks and sequence that will achieve the desired goals.  Determine feedback points to monitor progress.  Think ahead, so the benefits and consequences of each action are considered before it is performed.  Communicate the actions and priorities to others who are affected. Before creating an action plan you need to scope the improvement which includes: (Potter, Sakry, 2002) 1. Establish plan ownership. 2. State the major goals and problems. 3. Group the problems related to each goal 4. Ensure the goals and problems are crystal clear and compelling. 5. Set goal priorities. 6. Derive metrics for the goals. To develop an action plan you need to do the following: (Potter, Sakry, 2002) 1. Enumerate actions using brainstorming and a process framework. 2. Organize the action plan based on the goals and problems. 3. Add placeholders for checking progress and taking corrective action. A good action plan model can be found in Figure 1-8 of the book Making Process Improvement Work by Niel S. Potter and Mary E. Sakry (below). Potter, N., and M. Sakry. (2002) Making Process Improvement Work: A Concise Action Guide for Software Managers and Practitioners. Boston: Pearson. 7
  8. 8. 8. What is a risk management plan? Risk management involves identifying applicable risks , analyzing those risks, managing/mitigating risks, and finally reviewing risks. (Potter, Sakry, 2002) Careful use of risk management techniques can help prevent problems from occurring and allow anticipation of future problems allowing process improvement to run smoothly (Potter, Sakry, 2002). A risk management plan is used to accomplish risk management and involves the following tasks: (Potter, Sakry, 2002). 1. Determine the scope (gaols/problems that will be addressed) 2. Selecting a risk management team and moderator (trying to limit to around nine people to include the improvement team, stakeholders, previous members, and subject area experts). 3. Identifying the risks (potential problems not guaranteed to occur) 4. Analyzing the risks (to include removing ambiguities, enumerating the primary consequence of each risk, setting risk priorities by likeliness and impact, and selecting a few risks to be managed). 5. Planning to Mitigate (reduce the likelihood and impact) each risk. 6. Periodic Risk Reviews. A good risk management plan model can be found on Table 1-11 of the book Making Process Improvement Work by Niel S. Potter and Mary E. Sakry (below). Potter, N., and M. Sakry. (2002) Making Process Improvement Work: A Concise Action Guide for Software Managers and Practitioners. Boston: Pearson. 8
  9. 9. 9. Describe and define the findings, inferences, and hypotheses of using Six Sigma? Some of the general findings of using Six Sigma as an enabler from the SEI- sponsored Independent Research & Development (IR&D) project were as follows: (Siviy, Penn, Stoddard, 2008)  Six Sigma ensures that model-driven projects are focused on business needs.  Model-based improvement implementation undertaken with Six Sigma consistently shows quantitative results meaningful to businesses.  Process improvement efforts led by Six Sigma tend to be focused on mission critical business results.  Design for Six Sigma (DFSS) and DMAIC-based Six Sigma can be used to roll out optimized model-based practices.  Six Sigma can be part of an integrated process solution and is influential in their design.  Organizations that realize significant success using Six Sigma in conjunction with other initiatives are fully utilizing Six Sigma.  Six Sigma typically spans organizational and enterprise boundaries.  There is a correlation between the presence of Six Sigma and good decision making within an organization.  Six Sigma provides a unifying language across the enterprise. Some of the general hypothesis (things that the SEI-sponsored IR&D believes to be true) of using six sigma include: (Siviy, Penn, Stoddard, 2008)  Six Sigma has value for DoD organizations as well as commercial organizations and government contractors.  Lessons learned from Six Sigma, CMMI, ITIL, and COBIT in large organizations are directly applicable to DoD IT organizations and federal agencies.  Six Sigma can be a key driver in decision to use maturity models and proven best practices.  The integration of Six Sigma with Domain-specific best practices and improvement models is more critical for success in software systems and engineering organizations and IT than in manufacturing. 9
  10. 10. Siviy, M. J., Penn, L. M., & Stoddard, W. R. (2008). CMMI and Six Sigma: Partners in Process Improvement. Boston: Pearson.10. What are CMM and CMMI? How does one map goals and problems to CMM and CMMI? Capability Maturity Model (CMM) is a development model (collection of process and product development best practices, and a framework for process infrastructure) that allows an effective approach to improve an organizations software development practices. The Capability Maturity Model Integration (CMMI) project was sponsored by the DoD and was developed to solve the problem of using multiple CMMs for software development. CMMI is structured by process areas (PAs) to include Process Management, Project Management, Engineering, and Support, each of which describes goals and practices for a particular process. (Siviy, Penn, Stoddard, 2008) Mapping goals and problems to CMM and CMMI are as easy as it sounds. You take each goal/problems and map (match) it with a corresponding CMM/CMMI accepted practice. The book Making Process Improvement Work below illustrates an example of this mapping in Appendixes A (CMM) and B (CMMI). (Potter, Sakry, 2002). Potter, N., and M. Sakry. (2002) Making Process Improvement Work: A Concise Action Guide for Software Managers and Practitioners. Boston: Pearson. Siviy, M. J., Penn, L. M., & Stoddard, W. R. (2008). CMMI and Six Sigma: Partners in Process Improvement. Boston: Pearson.11. What are some of the basic principles for improving the development and maintenance of software? See question #2 above as this is the same question. 10
  11. 11. 12. In your local New Age Healthy Pet Food Store, you plan to make enough dog food to sell to 100 customers weekly. What process improvements would you include for the recipe below? Provide an Action Plan with Goals on how you would manufacture the food. Make sure your plan includes how the food is packaged and sold. How do you purchase the raw ingredients? What recipe do you follow? Eggs Garlic Meats Dog Food Bowls Meat Grinders Vegetables Starches Understanding that dogs need a diet that consists of 40% meat, 30% vegetables, and 30% starch. Follow this formula to ensure that your dog has a well-balanced diet. Try making a mixture of ground turkey, rice, and carrot for your own dog food. Meals made of ground beef, brown rice, brewers yeast and carrots are also popular. Use oatmeal, pasta, rice or potatoes for your dogs starch requirement. Keep cooked dog food in the refrigerator no longer than three days.Local New Age Health Store Brainstorming .. Initial Ideas…Goals:- Make a large profit Manufacture enough dog food to sell to 100 customers weekly (That’s 15 daily) Selling the food (When/Where/How)- Ensure a quality product - Purchase of ingredients (Sellers/Cost) - Delivery of ingredients (Freshness) - Create dog food containing 40% meat, 30% vegetables, and 30% starch. -(I’ll use Ground Beef, Carrots, Corn and Potatoes)- Reduce costs while increasing yield - Manufacturing the food - Equipment, facilities, personnel - Preserving the Food (Method) - Packaging the Food (Method/Equipment needed) -Storing the food (Method/Where) -Advertising the product 11
  12. 12. Goal Purpose Action Priority Time Who Manufacture enough dog Make a profit Ensure production levels are 7 2 wks. Lorenfood to sell to 100 customers without wasting streamlined to produce an optimal weekly (That’s 15 daily) product. 250lbs/day. based on current selling trending statistics. (low Y 50lbs/ high Y 350lbs) (Assume: An average size dog should consume approx 4 cups of dog food a day – about 2.5lbs) Create an Increase profit and Create an ordering/cancelation 8 1 wk. Loren ordering/cancelation predictability and system to preorder / specify theirsystem for repetitive buyers. reduce wasted dog food quantities two product weeks/month/year in advance with savings incentives based on amount purchased and pre-order period. Cancelations must be completed at least a week prior to pick up date. Test the dog food for taste. Make a profit by Perform a thorough pre-launch 9 1 wk. Loren ensuring a quality product taste test to determine product. the optimal nutritional/taste balance need to ensure the food is enjoyable by a wide range of dogs. Research, Develop, and Reduce costs while Organize a competitive list of 8 2 wks. LorenImplement a Manufacturing increasing yield. (quality/cost/availability/locality) Method for Producing the for equipment requirements, food. facility changes, and personnel needed for implementing the large quantities of dog food being considered and perform a cost/benefit analysis. Preserve the Food when Reduce costs while Research methods (healthy to fit 6 1 wk. Loren overages occur. increasing yield. our stores modo) for preserving the dog food for extended durations (inspect each component used).Efficiently Package the Dog Reduce costs while Research/Implement beneficial 2 1 wk. Loren Food. increasing yield. methods for packaging the food. 12
  13. 13. Storing the food during Reduce costs while Research/Implement beneficial 4 2 wks. Loren extended periods. increasing yield. methods for storing the food (Where/Methods Used) Advertize the product. Make a larger Research/Implement methods for 5 1 mo. Loren profit. cheap/effective product advertising (Research advertising costs/discounts via radio, paper, internet, TV, social networking sites, etc.) Integrate with current advertisement campaigns. Purchase of ingredients. Ensure a quality Research/Test/Implement 3 1 wk Loren product possible low cost whole sellers and delivery methods for purchasing the products ingredients.Create dog food containing Ensure a quality Determine optimal 40% Ground 10 2 wks Loren Beef, 20% Carrots, 15% Corn and optimal 40% meat, 30% product 25% Potatoes mixture needed asvegetables, and 30% starch. well vitamin/mineral/flavoring concentration needed for creating quality/top-notch product at minimal expense. When done, please either hand in a printed copy during the last night of class or (ask the bookstore to put it in my box), a floppy disk copy, CD, or email it to 13