Problem:
In the introduction to this chapter Baetjer notes: “The process provides interaction between users and designers, between users and evolving tools, and between designers and evolving tools [technology].” List five questions that (1) designers should ask users, (2) users should ask designers, (3) users should ask themselves about the software product that is to be built, (4) designers should ask themselves about the software product that is to be built and the process that will be used to build it.

Answer:
(a) Users should ask designers

1. Will you tell me a little bit about yourself ?

2. How long have you been in business?

3. What your specialty ? How much does it cost?

4. What if I’m not happy with the design?

5. Will you show me a few samples of your ideas for my project so I can get a feel for your work?

(b) Designers should ask users.

1. What are all of your needs for this project?

2. What is the timeline, deadline for this project?

3. Who will use this project?

4. What sites do you find similar?

5. Who will be your competitors?

(c) Designers should ask themselves.

1. What kind of development tools he / she uses?

2. How many applications he / she previously designed?

3. Does your web designer publish a blog?

4. Does all requirements reflect in the software?

5. What’s the maintenance record?

(d) Users ask themselves.

1. How quickly developer understand my requirements?

2. Do I have budget to build it correctly?

3. Do I have the human resources to effectively maintain this functionality?

4. Does adding this functionality help me achieve my goals?

Problem:
Discuss the differences among the various process flows described in Section 3.1. Can you identify types of problems that might be applicable to each of the generic flows described?

Answer:
The software engineering process basically defines 5 framework activities. They are communication, planning, modeling, construction and deployment. They four types of process flow begin with communication activity.

Difference between the various process flows are described in section 3.1 are given in table below:-

No.

Linear process flow

Iterative process flow

Evolutionary process flow

Parallel process flow

1

It executes the 5 framework activities in sequence.

It repeats a set of activities before proceeding to the next one.

It executes the activities in a circular routine.

It executes a set of activities in parallel with another activity.

2

It ends with deployment activity.

It ends with deployment activity.

After deployment activity it again starts with next circle for another version.

It ends with deployment activity.

3

There is a single version release.

There is a single version release.

Each circuit through the five activities leads to a more complete version of the software.

There is a single version release.

4

All 5 activities are gone through just once.

The first 4 activities can repeated.

The 5 activities can repeated a number of times

All 5 activities are gone through just once.

5

At a time only one activity is performed.

At a time only one activity is performed.

At a time only one activity is performed.

At a time one or more activity can be performed in parallel.

The problems that are faced by the generic flows described in section 3.1 are:-

• Linear process flow:

o Unpredicted integration issues can crop up.

o Defects can be traced to previous activities that is they are identified later.

o It is difficult for clients to state all requirements just initially.

• Iterative process flow:

o It can lead to a blocking state.

o More time is spent waiting than for production

• Evolutionary process flow:

o Project team waits for the earlier activity to finish.

o Developers can end up making compromises in implementation.

• Parallel process flow:

o It can cause confusion in the project team as it proceeds.

o It demands a good experts in risk assessment.

Problem:
Try to develop a set of actions for the communication activity. Select one action and define a task set for it.

Answer:
A requirements gathering is an essential software engineering action for the communication activity.

A task set defines the actual work to be done to accomplish the objectives of a software engineering action.

The requirement gathering task set for communication activity follows:

• Create a list of stakeholders for the project.

• Interview each stakeholder individually to verify overall needs and requirements.

• Construct a preface list of features and functions based on stakeholder input.

• Schedule series of facilitated requirements gathering meetings.

• Conduct meetings.

• Generate informal user scenarios as part of each meeting.

• Improve user scenarios as a part of each meeting and the stake holder’s feedback.

• Construct adjust list of stakeholder requirements.

• Apply quality function deployment techniques to prioritize requirements.

• Package requirements so that they can be delivered incrementally

• Note constraints and restrictions that will be placed on the system.

• Discuss method for validating the system.

Problem:
A common problem during communication occurs when you encounter two stakeholders who have conflicting ideas about what the software should be. That is, you have mutually conflicting requirements. Develop a process pattern (this would be a stage pattern) using the template presented in Section 3.4 that addresses this problem and suggest an effective approach to it.

Answer:
When stakeholders have conflicting, the following process pattern describes an approach

about what the software should be

Pattern name: Conflicting Requirements

Intent: This pattern describes an approach for identifying and making a list of the requirements specified by the stakeholders.

Type: Stage pattern.

Initial context:

The following conditions must be met prior to the initiation of this pattern.

1. Stake holders have been identified;

2. A mode of communication between stakeholders and the software team has been established;

3. The overriding software problem to be solved has been identified by stakeholders;Problem: Requirements of the two stakeholders are conflicting. There is a clear recognition of the requirements but, the ideas of the stakeholders are not the same. No clear idea of what the software should be.

Solution: Evolutionary process models are used to solve this problem. The evolutionary process models recognize the iterative incremental nature of the project and are designed to accommodate the changes. As the requirements are conflicting, a preliminary list of functions and features based on stakeholder input is built. The pattern is built according to the basic requirements. And then the changes are accommodated using the evolutionary models.Resulting context: A software prototype that identifies basic requirements is approved by the stakeholders. The prototype is built and changes are made, if needed. Or the pattern will be rejected and a new pattern with new features is developed.

Related patterns:

Customer Communication,

Customer Assessment,

Requirements Gathering,

Constraint Description.

Known uses and examples. This pattern is needed when the requirements are uncertain and conflicting."


Solutions: Chapter 3: Software Process Structure.

3.1)

a) Designers should ask users:

Is the product satisfactory, or does it require redesign or rework?

Was user input solicited, to avoid the product being unsatisfactory and requiring

rework?

Is there a need for new requirements?

Is the product larger than estimated?

Do the modules require more testing, design and implementation work to correct

than expected?

b) Users should ask as designers:

Is the scope clear?

Do we have the tools and people with skills required for the development?

Are the requirements properly defined, are additional requirements needed.

Are the specified areas of the product more time consuming than usual?

Does the module require more testing, design?

c) Users should ask themselves about the software product that is to be built:

What is the scope and purpose of the software product?

Is the product larger than estimated?

Are the best people available?

Is the staff committed and possess skills required?

Will the turnover among staff members be low enough to allow continuity?

d) Designers should ask themselves about software product that is to be built and the process that will used to build it:

Scope and purpose of the document?

What tools are to be used?

What are the objectives and risk aversion priorities?

What will be the steps for risk analysis, identification, estimation, and evaluation and management?

3.2)

  1. Linear process flow does not accommodate change well, but can be good if a team is building a routine product similar to something they have done before
  2. Iterative process flow handles change better by building in opportunities to reviews the intermediate work products as they are developed. Often used when building systems involving technologies that are new to the development team.
  3. Evolutionary process models are often adopted for projects (e.g. WebApps) that need to be developed in a rapid, but controlled manner that avoids unnecessary rework.
  4. Parallel process flow has the potential to allow self-contained work products to be developed simultaneously for systems that are composed of subsystems.

3.3)     Task Set for Communication Activity: A task set would define the actual work to be done to accomplish the objectives of a software engineering action. For the communication activity these are:

Make a list of stakeholders for the project

Invite all the stakeholders to an informal meeting

Ask them to make a list of features and functions

Discuss requirements and build a final list

Prioritize requirements and note the areas that he is uncertain of

These tasks may be larger for a complex software project, they may then include

To conduct a series of specification meetings, build a preliminary list of functions and features based on stakeholder input.

To build a revised list of stake holder requirements

Use quality function deployment techniques to prioritize the requirements.

Note constraints and restrictions on the system.

Discuss methods for validating system.

3.4)

Pattern Name. Conflicting Stakeholder Requirements

Intent. This pattern describes an approach for resolving conflicts between stakeholders during the communication framework activity.

Type.  Stage pattern

Initial context. (1) Stakeholders have been identified; (2) Stakeholders and software engineers have established a collaborative communication; (3) overriding software problem to be solved by the software teams has been established; (4) initial understanding of project scope, basic business requirements and project constraints has been developed.

Problem.  Stakeholders request mutually conflicting features for the software product under development.

Solution. All stakeholders asked to prioritize all known system requirements, with resolution being to keep the stakeholder requirements with highest priorities and/or the most votes.

Resulting Context. A prioritized list of requirements approved by the stakeholders is established to guide the software team in the creation of an initial product prototype.

Related Patterns. Collaborative-guideline definition, Scope-isolation, Requirements gathering, Constraint Description, Requirements unclear

Known Uses/Examples. Communication is mandatory throughout the software project.

软件工程 实践者的研究方法 第三章答案相关推荐

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

    Problem: Based on information contained in this chapter and your own experience, develop "10 co ...

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

    Problem: Why is the "artistic ideal" an insufficient design philosophy when modern WebApps ...

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

    Problem: Reread the "Manifesto for Agile Software Development" at the beginning of this ch ...

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

    Problem: Describe how you would assess the quality of a university before applying to it. What facto ...

  5. 《软件工程—实践者的研究方法》读书笔记

    <软件工程-实践者的研究方法>读书笔记 <软件工程-实践者的研究方法>这本书内容丰富,从软件工程的定义.软件过程.建模.质量管理到管理软件项目和软件工程发展趋势的探讨,作者逐个 ...

  6. 《软件工程——实践者的研究方法》重难点复习笔记(第八章——理解需求)

    8项需求工程任务 inception 开始 8.1.1 identify stakeholders 定义:从软件开发中收益 例如:市场人员.销售经理.顾客.顾问.维护团队等(P139) 8.1.2 这 ...

  7. 软件工程--实践者的研究方法[设计的概念]

    设计的概念 11.1 软件工程中的设计 11.2 设计过程 11.2.1 软件质量 11.2.2 软件设计的历史发展 11.3 设计概念 11.4 设计模型 11.4.1 数据设计元素 11.4.2 ...

  8. 软件工程--实践者的研究方法[体系结构设计]

    体系结构设计 12.1 软件体系结构概念 12.1.1 什么是软件的体系结构? 12.1.2 体系结构是不是重要? 12.1.3 体系结构如何描述呢? 12.1.4 体系结构决策 12.2 体系结构的 ...

  9. 体系结构类型——《软件工程:实践者的研究方法》第八版

    尽管体系结构设计的基本原则适用于所有类型的体系结构,但对于需要构建的结构,体系结构类型(genre)经常会规定特定的体系结构方法.在体系结构设计环境中,类型隐含了在整个软件领域中的一个特定类别.在每种 ...

  10. 体系结构风格——《软件工程:实践者的研究方法》第八版

    基于计算机系统构造的软件也展示了众多体系结构风格中的一种.每种风格描述一种系统类别,包括:(1)完成系统需要的某种功能的一组构件(例如,数据库.计算模块);(2)能使构件间实现"通信.合作和 ...

最新文章

  1. 某程序员吐槽:媳妇要给孩子报少儿编程班,将来继续做程序员!以后要看到穿着纸尿裤的P7!...
  2. 寒假——练车、脑力风暴和辅导初中生
  3. Angular文件上传---fileUpload的使用
  4. linux的 0号进程(idle进程) 和 1 号进程(init进程)
  5. 2013 QConf上海软件开发大会总结
  6. sap-ui-core.js reference in Webclient ui
  7. [ python ] 基础技巧
  8. net core体系-web应用程序-4asp.net core2.0 项目实战(1)-10项目各种全局帮助类
  9. 险些被吓到!白宇代言新品万元荣耀8X售价原因揭秘
  10. mzy git学习,初识git(一)
  11. python实现QQ登陆验证码数据采集
  12. 机器人学基础(三):机器人运动学
  13. XP pro下安装Windows XP Tablet PC 2005组件教程
  14. win10如何找计算机管理员密码,win10管理员密码忘了怎么办 win10系统找回admin密码方法...
  15. 2021厦大计算机考研炸了,【图片】一战厦大计算机上岸,经验帖。慢更【考研吧】_百度贴吧...
  16. Java+spring 基于ssm的幼儿园管理系统程序#毕业设计
  17. 2022-2028年中国商业智能化行业发展现状调查及前景战略分析报告
  18. 用计算机升级ipad系统软件,ipad如何升级系统 三大方法推荐【图解】
  19. 使用setoolkit制作简单钓鱼网站
  20. linux 下载jdk方式

热门文章

  1. 计算机相关的外文参考文献,计算机英文参考文献
  2. GitHub 近两万 Star,无需编码,可一键生成前后端代码
  3. 使用淘宝api直接上传图片的方法
  4. 概要设计说明书的书写
  5. windows,远程开机,远程唤醒(WOL,Wake-on-LAN)
  6. java乘法口诀编程题_【视频+图文】Java经典基础练习题(二)输出9*9乘法口诀表...
  7. 学习Fiddler安全测试
  8. 电视机当计算机屏幕,电视机能不能当电脑显示器?告诉你正确答案
  9. java 比较excel文件,如何在Excel中使用宏比较两个Excel文件
  10. (Tekla Structures二次开发)操作梁的属性对话框的宏语句