软件工程 实践者的研究方法 第31章答案

Problem:

Based on information contained in this chapter and your own experience, develop “10 commandments” for empowering software engineers. That is, make a list of 10 guidelines that will lead to software people who work to their full potential.

Answer:

Ten Commandments for software people who lead to do their work with full potential.

We should focus on to “get smarter (provide education)”.

We should “focus on quality”.

We are aware of “listen to the customer’s requirements”.

We should be capable to “Understand the problem”

We should have a sound commitment of “work within a repeatable process”.

“Don’t agree with ridiculous schedules”.

We must have the knowledge on “complete details of the product, it’s processing and our knowledge on the product”.

“Document the work in the most effective way”.

We should remember that,“ others will also work on the software”.

We should focus on “continuous updation of process”.

 

Problem:

The Software Engineering Institute’s People Capability Maturity Model (People-CMM) takes an organized look at “key practice areas” (KPAs) that cultivate good software people. Your instructor will assign you one KPA for analysis and summary.

Answer:

The basis of the people management capability maturity model implements human resources best practices and orgazational development methodologies as its basic pattern KPA.

The People management capability maturity model framework:-

Level

Maturity

KPA

1

Initial

An Organization should focus on to improve its software process.

2

Repeatable

Work environment staffing, training, compensation

3

Defined

Organization process focus,

Integrated software Management,

Skill analysis,

work force planning,

career development

4

Managed

Quantitative Process Management

Software Quality Management

5

optimizing

Personal competency development,

Coaching,

Continuous word force innovation.

In the above KPA requirements that are unique to the PCMM framework.

Problem:

Describe three real-life situations in which the customer and the end user are the same. Describe three situations in which they are different.

Answer:

If we considered as customer and the end-user are same person, then we consider below factors.

 

(1) A person who must develop a program for personal use, he/she may think about their requirement.

(2) A business person creating a spreadsheet model for his/her personal use;

(3) An entrepreneur who has a new concept for a Web App.

If we considered as customer and the end-user are Different persons then developer must consider below factors:

(1) An Information System department servicing the some business function;

(2) A software development group servicing marketing needs;

(3) A contractor building to customer specs.

Problem:

The decisions made by senior management can have a significant impact on the effectiveness of a software engineering team. Provide five examples to illustrate that this is true.

Answer:

The decisions made by senior management can have a significant impact on the effectiveness of a software engineering team.

Goals and objectives:

It should make clear to the senior management which business goals and critical success factors will be supported by the new information system. It will also define the specific goals of the project and the objectives.

Approach and time table:

When are the project’s objectives going to be achieved and by whom are the briary questions addressed in this part of the document. It comprises a proposal regarding the “make or buy” decision, or an evolution of these two alternatives. The bow question is further refused by a rough project plan composed of the major section of the project. Each section is terminated by a milestone.

Cost benefit analysis:

The costs caused by the project are specified, and expected benefits are elaborated, benefits can either be short p term or long – term. Some benefits can be measured in financial figures, while others are qualitative benefits requiring casual analysis and argumentation.

Project budget:

A budget summary sates the duration of the project and the total project cost, as well as any already available income. There are different ways to structure a budget depending on the type of the project and on the organizations requirements. However, almost every budget includes items like: project personal, S/W casts. Additional hardware requirements meeting, trending the future users and overhead casts such as project administration.

Project risks:

A project risks can originate from the task to be soled (E.g. too complex, too many departments involved), from project management (E.g. inappropriate development toads), from the project team (E.g. knowledge level, experience etc of team member team size) from the IT infrastrure, from the implementation process in the organization, and also from senior management.

 

Problem:

Review a copy of Weinberg’s book [Wei86], and write a two- or three-page summary of the issues that should be considered in applying the MOI model.

Answer:

MOI model

MOI means motivation, organization and ideas or innovation.

Motivation: The ability to encourage (by “Push or Pull”) technical people to produce to them best ability.

Involve them. Many people employees want to be involved in the ongoing. Development and progress of their company and they have insightful ideas that can make a significant difference in the company.

Employees want regular updates on the progress of the business and their personal performance. Use emails and group meetings to keep you team apprised of changes, up dates new products etc.

Organization:

Team members have zeal to achieve new things from the existing and will enable the initial concept to be translated into final product. And generic team organizations can able to success the project leaders by applying a problem solving management style.

No permanent leader rather “task coordinator” decision made by group consensus.

To encourage the people to create and feel creative even when they must software product or application.

That is a software project manager solved, managing the flow of ideas, and at the same time letting everyone on the team know (by words and far more important, by actions) that quality counts and that it will not be compromised.

Problem:

You have been appointed a project manager within an information systems organization. Your job is to build an application that is quite similar to others your team has built, although this one is larger and more complex. Requirements have been thoroughly documented by the customer. What team structure would you choose and why? What software process model(s) would you choose and why?

Answer:

I choose controlled centralized (CC):

Top – level problem solving and internal team Co-Ordination are managed by a team leader.

Control is hierarchical and communication is vertical.

Centralized:

Fast, works for simple well defined problems scales well since performance of team is inversely proportional to amount communication.

Process management:-

The project manger must decide which process model (linear, prototyping, RAD, spiral, component based) is most appropriate for.

1) The customers and practitioners.

2) The characteristics of the product.

3) The project environment in which the soft ware team works.

Choosing team structure:-

(i) The difficulty of the problem to be solved.

(ii) The size of the resultant program in lines of code.

(iii) The time that the team will stay together.

(iv) The degree to which the problem can be modularized

(v) The required quality and reliability of the system to be built

(vi) The rigidity of the definers date

(vii) The degree of sociability required for project.

Model process: The linear sequential model because the team with already of the experiment with this type of product.

Problem:

You have been appointed a project manager for a small software products company. Your job is to build a breakthrough product that combines virtual reality hardware with state-of-the-art software. Because competition for the home entertainment market is intense, there is significant pressure to get the job done. What team structure would you choose and why? What software process model(s) would you choose and why?

Answer:

Task: Build a break through product that combines virtual reality hard ware with state of the art software. Because competition for the home entertainment market is intense, there is significant pressure to get the job done.

I choose contracted de – centralized(CD) structure.

Controlled decentralized (CD): A defined leader who co – ordinates specific tasks. Problem solving is a group activity but implementation of solution is partitioned among subgroups.

Control is vertical and communication is horizontal.

Model process: The spiral model.

Problem:

You have been appointed a project manager for a major software products company. Your job is to manage the development of the next-generation version of its widely used word-processing software. Because competition is intense, tight deadlines have been established and announced. What team structure would you choose and why? What software process model(s) would you choose and why?

Answer:

If I appointed as a project manager for a major software Products Company, my main Job is to manage the development of the next generation version of word processing software. For this, based on hazy requirements and the experimental nature of the work

i used an open paradigm team structure

Open paradigm—structures a team that achieves some of the controls but also much of the innovation. Here time pressure and familiarity with the work is good. An incremental process model is indicated by the deadline driven nature of this work

Problem:

You have been appointed a software project manager for a company that services the genetic engineering world. Your job is to manage the development of a new software product that will accelerate the pace of gene typing. The work is R&D oriented, but the goal is to produce a product within the next year. What team structure would you choose and why? What software process model(s) would you choose and why?

Answer:

If I appointed as a project manager for a company, I preferred random team structure because here work is experimental and business deadline is also there. For this,

I started by trying to create a simple structured text file with the necessary data: event date and other event details, plus the team contact info. This data was all on separate lines.

Another possibility is to use an open paradigm team structure. An incremental process model or an evolutionary process model could be used, given the deadline driven nature of this work.

Problem:

You have been asked to develop a small application that analyzes each course offered by a university and reports the average grade obtained in the course (for a given term). Write a statement of scope that bounds this problem.

Answer:

Statement of scope about – a small application that analyzes each course offered by a university and reports the average grade is

The Grade Analyzer application will obtain grades for all undergraduate and graduate for-credit courses contained in the Registrar's data base of courses for a given semester.

Ex:

Determining student – course information which is available from the register. It format and method of access should be made available by the requesters.

A couple of possibilities are the machine readable grade sheets submitted by the instructor or the sheets have been processed into an electronic database.

Assuming it is a database format, develop an query which will access course’s grade sheet, extracting from it each student’s grade. Note that query does not required either student’s name or ID so the query software can be developed and used with limited database access permissions.

The semester catalog will be scanned and each course section, recorded by appropriate ID as needed to interrogate Regis arts database. The query result will then be scanned, passed to function with will use the grade in a switch based upon grade type. This will allow maximum flexibility to enhance the software to handle additional grade types. The ‘W’ grade will be ignored, the grades “A” – “F” along with “+” and “-“will be weighted according to the universities GPA weighting summed, counted as a grade count and at the and averaged. The pass/ fail grades, “P” and “FF” will be attendance counted. Other grade types will be handled as a required by the requesters. The result of each query with appropriate course ID will be stored in a database with restricted availability to the organization requesting the information.

Here grade analyzer will read all grades for each course and compute the average grade using a numerical scale in which an A = 4.0 and other grades are assigned values as indicated in grade value document UC29-1. Grade Analyzer will print and/or display a report that lists each course, the instructor, the average grade. The report may be sorted by department, by highest to lowest average grade, by instructor or by any permutation of these characteristics. Grade Analyzer will be implemented to run under Microsoft Windows XP environment.

 

Problem:

Do a first-level functional decomposition of the page layout function discussed briefly in Section 31.3.2.

Answer:

Problem decomposition, some times called partitioning or problem elaboration, is an activity that is the core of software requirements analysis.

Decomposition is applied in the major areas.

(i) The functionality that must be delivered

(ii) The process that will be used to deliver it.

Page layout is considerations

Define page parameters

Allocate text regions

Allocate graphical regions

Define emphasis (lines, shading, etc.)

Input/import text

Input/import graphics

Edit text

Edit graphics

Out page/export page

End page layout

Ex:-

The first level of partitioning naturally occurs,

(i) Spell checking

(ii) Sentence grammar checking

(iii) Reference checking for large documents.

(iv) Section and chapter reference validation for large documents.

 


Solution :Chapter 31 PROJECT MANAGEMENT CONCEPTS

31.1 Ten commandments:

1. Thou shalt get smarter (provide education).

2. Thou shalt focus on quality.

3. Thou shalt listen to the customer.

4. Thou shalt understand the problem.

5. Thou shalt work within a repeatable process.

6. Thou shalt not agree to ridiculous schedules.

7. Thou shalt measure the product, the process and yourself.

8. Thou shalt document the work in the most effective way.

9. Thou shalt remember that others will also work on the software.

10. Thou shalt continually improve

31.2 The latest SEI information can be obtained at:

http://www.sei.cmu.edu/

31.3 Same person: (1) an engineer who must develop a program for personal use; (2) a business person creating a spreadsheet model for personal use; (3) an entrepreneur who has a new concept for a killer App.

Different person: (1) an IS department servicing some business function; (2) a software development group servicing marketing needs; (3) a contractor building to customer specs.

31.4 In today’s environment downsizing and outsourcing have the most immediate and significant impact. In addition, "expense reduction measures" that lead to lower product quality; unrealistic project deadlines; failure to "listen" to the customer, or conversely, to warnings noted by the software engineers doing the work.

31.5 Answers will vary

31.6 A closed paradigm team structure is one option. Since requirements are well defined, it will be possible to partition requirements and allocation to subteams. The large size of the project also mitigates in favor of a CD team. Since there is no discussion of schedule, we assume that delivery date is reasonable. Therefore, it might be possible to use a linear sequential process model (work has been done before). However, an iterative model (e.g., spiral) is also a good possibility.

31.7 The random paradigm team structure is probably the only viable option, given hazy requirements and the experimental nature of the work. A prototyping approach or an evolutionary process model should be used.\

31.8 An open paradigm team structure is probably best, given time pressure and familiarity with the work (however, a closed paradigm team might also work well). An incremental process model is indicated by the deadline driven nature of this work.

31.9 A random team structure is probably best, given that the work is experimental, but that there is a business deadline. Another possibility is to use an open paradigm team structure. An incremental process model or an evolutionary process model could be used, given the deadline driven nature of this work.

31.10 The GradeAnalyzer application will obtain grades for all undergraduate and graduate for-credit courses contained in the Registrar’s data base of courses for a given semester. GradeAnalyzer will read all grades for each course and compute the average grade using a numerical scale in which an A = 4.0 and other grades are assigned values as indicated in grade value document UC29-1. GradeAnalyzer will print and/or display a report that lists each course, the instructor, the average grade. The report may be sorted by department, by highest to lowest average grade, by instructor or by any permutation of these characteristics. GradeAnalyzer will be implemented to run under Microsoft Windows Visat environment.

31.11 A simple decomposition:

page layout

define page parameters

allocate text regions

allocate graphical regions

define emphasis (lines, shading, etc.)

input/import text

input/import graphics

edit text

edit graphics

outpage/export page

end page layout

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Progress in software engineering has been remarkable over my professional lifetime. Our societies could not function without large, professional software systems. For building business systems, there is an alphabet soup of technologies—J2EE, .NET, SaaS, SAP, BPEL4WS, SOAP, CBSE, etc.—that support the development and deployment of large enterprise applications. National utilities and infrastructure— energy, communications, and transport—all rely on complex and mostly reliable computer systems. Software has allowed us to explore space and to create the World Wide Web, the most significant information system in the history of mankind. Humanity is now faced with a new set of challenges—climate change and extreme weather, declining natural resources, an increasing world population to be fed and housed, international terrorism, and the need to help elderly people lead satisfying and fulfilled lives. We need new technologies to help us address these problems and, for sure, software will play a central role in these technologies. Software engineering is, therefore, a critically important technology for the future of mankind. We must continue to educate software engineers and develop the discipline so that we can create more complex software systems. Of course, there are still problems with software projects. Software is still sometimes late and costs more than expected. However, we should not let these problems conceal the real successes in software engineering and the impressive software engineering methods and technologies that have been developed. Software engineering is now such a huge area that it is impossible to cover the whole subject in one book. My focus, therefore, is on key topics that are fundamentalto all development processes and topics concerned with the development of reliable, distributed systems. There is an increased emphasis on agile methods and software reuse. I strongly believe that agile methods have their place but so too does ‘traditional’ plan-driven software engineering. We need to combine the best of these approaches to build better software systems. Books inevitably reflect the opinions and prejudices of their authors. Some readers will inevitably disagree with my opinions and with my choice of material. Such disagreement is a healthy reflection of the diversity of the discipline and is essential for its evolution. Nevertheless, I hope that all software engineers and software engineering students can find something of interest here.

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值