Cs671 final loren schwappach

13
CS671 Software Systems Engineering Process Final Test Professor Scott Puryear May 2011

Transcript of Cs671 final loren schwappach

Page 1: Cs671 final   loren schwappach

CS671 Software Systems Engineering Process

Final Test

Professor Scott Puryear

May 2011

Page 2: Cs671 final   loren schwappach

2

1. Your Name: Loren Karl Schwappach

2. 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 maintaining

software and the methodology used can determine whether the software produced becomes

garbage or instrumental. Determining the scope of the process improvement plan,

developing an action plan to meet the improvement goals, and utilization of a risk

management plan can all allow for improvement of software processes.

A software life cycle model is a descriptive or prescriptive characterization of how

software is or should be developed. The models can be used as the basis for understanding

and 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, Functional

Specification or Prototyping, Partition and Selection, Architectural Design and Configuration

Specification, Detailed Component Design Specification, Component Implementation and

Debugging, 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 great

article by David Hooker where he lists the following top seven principles of developing and

maintaining software listed below. (Hooker, 1996). Although I am only a BSEE/BSCE

major at CTU and have had no experience in this field I can agree with Mr. Hooker’s

principles.

Top Seven Principles for Software Development:

Page 3: Cs671 final   loren schwappach

3

#1: The Reason It All Exists. (Hooker, 1996).

A software system exists for one reason: to provide value to its users. All decisions

should 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 more

easily 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 to

constructing a system that is understandable, can be extended and reorganized, and is

maintainable and testable.

#5: What You Produce, Others Will Consume. (Hooker, 1996).

Always specify, design, and implement knowing someone else will have to understand

what 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 possible

answers by creating systems that solve the general problem, not just the specific one. This

could 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 goal

to accomplish in developing a software system. Planning ahead for reuse reduces the

cost and increases the value of both the reusable components and the systems into which

they are incorporated.

#7: Think! (Hooker, 1996).

Page 4: Cs671 final   loren schwappach

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

http://c2.com/cgi/wiki?SevenPrinciplesOfSoftwareDevelopment

3. What are the five critical questions in process improvement?

#1 – (Motive) What are the business issues (goals/problems), etc. that are driving process

improvement? (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 http://sstc-online.org/2002/SpkrPDFS/MonTracs/p471.pdf

Page 5: Cs671 final   loren schwappach

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 process

improvement allow for future predictability), amount of rework (can process improvement be

utilized to reduce the amount of rework being completed), customer satisfaction (can

customer satisfaction be improved through the process), and employee satisfaction (can turn

over 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

Page 6: Cs671 final   loren schwappach

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

http://www.ics.uci.edu/~wscacchi/Papers/SE-Encyc/Process-Models-SE-Encyc.pdf

6. 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.

Page 7: Cs671 final   loren schwappach

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.

Page 8: Cs671 final   loren schwappach

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.

Page 9: Cs671 final   loren schwappach

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.

Page 10: Cs671 final   loren schwappach

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.

Page 11: Cs671 final   loren schwappach

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?

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, brewer's yeast and carrots are also popular. Use oatmeal, pasta,

rice or potatoes for your dog's 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

Eggs

Garlic

Meats

Dog Food Bowls

Meat

Grinders

Vegetables

Starches

Page 12: Cs671 final   loren schwappach

12

Goal Purpose Action Priority Time Who

Manufacture enough dog

food to sell to 100 customers

weekly (That’s 15 daily)

based on current selling

trending statistics.

Make a profit

without wasting

product.

Ensure production levels are

streamlined to produce an optimal

250lbs/day.

(low Y 50lbs/ high Y 350lbs)

(Assume: An average size dog

should consume approx 4 cups of

dog food a day – about 2.5lbs)

7 2 wks. Loren

Create an

ordering/cancelation

system for repetitive buyers.

Increase profit and

predictability and

reduce wasted

product

Create an ordering/cancelation

system to preorder / specify their

dog food quantities two

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.

8 1 wk. Loren

Test the dog food for taste. Make a profit by

ensuring a quality

product.

Perform a thorough pre-launch

product taste test to determine

the optimal nutritional/taste

balance need to ensure the food is

enjoyable by a wide range of dogs.

9 1 wk. Loren

Research, Develop, and

Implement a Manufacturing

Method for Producing the

food.

Reduce costs while

increasing yield.

Organize a competitive list of

(quality/cost/availability/locality)

for equipment requirements,

facility changes, and personnel

needed for implementing the large

quantities of dog food being

considered and perform a

cost/benefit analysis.

8 2 wks. Loren

Preserve the Food when overages occur.

Reduce costs while

increasing yield.

Research methods (healthy to fit

our stores modo) for preserving

the dog food for extended

durations (inspect each

component used).

6 1 wk. Loren

Efficiently Package the Dog

Food.

Reduce costs while

increasing yield.

Research/Implement beneficial

methods for packaging the food.

2 1 wk. Loren

Page 13: Cs671 final   loren schwappach

13

Storing the food during

extended periods.

Reduce costs while

increasing yield.

Research/Implement beneficial

methods for storing the food

(Where/Methods Used)

4 2 wks. Loren

Advertize the product. Make a larger

profit.

Research/Implement methods for

cheap/effective product

advertising (Research advertising

costs/discounts via radio, paper,

internet, TV, social networking

sites, etc.)

Integrate with current

advertisement campaigns.

5 1 mo. Loren

Purchase of ingredients. Ensure a quality

product

Research/Test/Implement

possible low cost whole sellers

and delivery methods for

purchasing the products

ingredients.

3 1 wk Loren

Create dog food containing

optimal 40% meat, 30%

vegetables, and 30% starch.

Ensure a quality

product

Determine optimal 40% Ground Beef, 20% Carrots, 15% Corn and 25% Potatoes mixture needed as well vitamin/mineral/flavoring

concentration needed for creating quality/top-notch product at

minimal expense.

10 2 wks Loren

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 [email protected]