2024软件工程第一次作业

communication tasks

  1. Set a project (can use the project I give in the class in the file), then try to develop a set of actions for the communication activity. Select one action and define a task set for it.
    1.设置一个项目(可以使用我上课在文件中给出的项目),然后尝试为交流活动开发一组操作。选择一个操作并为其定义任务集。
    Answer:
    Taking the development of image browsing software as an example,,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.
    答:
    以开发图像浏览软件为例,需求收集是通信活动中必不可少的软件工程操作。
    任务集定义了为实现软件工程操作的目标而要做的实际工作。
    通信活动的需求收集任务集如下:
    •为项目创建利益相关者列表。
    •单独采访每个利益相关者,以验证总体需求和要求。
    •根据利益相关者的输入,构建一个特征和功能的序列表。
    •安排一系列方便的需求收集会议。
    •召开会议。
    •在每次会议中生成非正式的用户场景。
    •作为每次会议和利益相关者反馈的一部分,改进用户场景。
    •编制利益相关者要求的调整清单。
    •应用质量功能部署技术来确定需求的优先级。
    •包装要求,以便可以增量交付
    •注意将对系统施加的约束和限制。
    •讨论验证系统的方法。

process patterns(stage pattern)

  1. 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 addressed this problem and suggest an effective approach to it.
    2.在沟通过程中,当你遇到两个利益相关者对软件应该是什么有冲突的想法时,就会出现一个常见的问题。也就是说,你们有相互冲突的需求。使用第3.4节中提出的模板开发一个过程模式(这将是一个阶段模式),该模板解决了这个问题,并提出了一种有效的方法。
    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.
  2. Stake holders have been identified;
  3. A mode of communication between stakeholders and the software team has been established;
  4. 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.
    答:
    当利益相关者发生冲突时,以下流程模式描述了一种方法关于软件应该是什么:
    模式名称:冲突的要求
    意图:此模式描述了一种方法,用于识别和列出利益相关者指定的需求。
    类型:阶段模式。
    在启动此模式之前,必须满足以下条件。
    1.已确定利益相关者;
    2.建立了利益相关者与软件团队之间的沟通模式;
    3.利益相关者已经确定了需要解决的首要软件问题;问题:两个利益相关者的要求相互冲突。对需求有明确的认识,但利益相关者的想法并不相同。不清楚软件应该是什么。
    解决方案:使用演化过程模型来解决这个问题。演化过程模型认识到项目的迭代增量性质,并被设计为适应这些变化。由于需求相互冲突,因此基于利益相关者的输入构建了一个功能和特性的初步列表。模式是根据基本要求构建的。然后使用演化模型来适应这些变化。结果:确定基本需求的软件原型得到利益相关者的批准。原型已经建立,如果需要,还会进行更改。否则,该模式将被弃用,并开发出具有新功能的新模式。
    相关模式:
    客户沟通,客户评估,需求收集,约束描述。
    已知用途和示例。当需求不确定和冲突时,需要这种模式。

prototyping model

  1. Provide three examples of software projects that would be amenable to the prototyping model. Be specific.
    3.提供三个适用于原型模型的软件项目示例。具体一点。
    Answer:
    Software applications that are relatively easy to prototype almost always involve human-machine interaction.
    When the customer has a legitimate need but is clueless about the details then develop a prototype as a first step. A customer defines a set of general objectives. For these applications that are amenable to prototyping are certain classes of mathematical algorithms, subset of command driven systems and other applications where results can be easily examined without real-time interaction.
    Example software projects for prototyping.
    ① A shopping mall website. You can use website prototyping tools such as Axure RP, Sketch, Adobe XD, or Figma to create page layouts, interactive elements, and user processes. The design team collaborates with stakeholders to validate the design by sketching and creating interactive prototypes.
    ② Academic Affairs System Website. Perhaps the school does not know what function it really needs, for example, when querying the schedule, it may not have the function of querying according to the teacher's name, but after developing the prototype, the school also proposed this requirement.
    ③ Home security system website. The customer is unaware that they want to adjust the camera angle and track objects until they see the prototype.
    These projects are not suitable for waterfall models because customers do not know what they want.
    答:
    相对容易原型化的软件应用程序几乎总是涉及人机交互。
    当客户有合法的需求,但对细节一无所知时,第一步就是开发原型。客户定义了一组总体目标。对于这些适用于原型设计的应用程序,是某些类别的数学算法、命令驱动系统的子集和其他应用程序,在这些应用程序中,可以在没有实时交互的情况下轻松检查结果。以下是用于原型设计的示例软件项目:
    ①购物商城网站。可以使用网站原型设计工具,如Axure RP、Sketch、Adobe XD或Figma来创建页面布局、交互元素和用户流程。设计团队通过绘制草图和创建可交互的原型,与利益相关者合作验证设计。
    ②教务系统网站。也许学校并不知道自己到底需要什么功能,比如查询课表的时候,也许并没有按照老师名字查询的功能,但是开发出原型之后学校又提出了这一需求。
    ③家庭安保系统网站。客户并不知道自己想要调整摄像头角度、追踪物体,直到他们看到原型。
    这些项目都不适合瀑布模型,因为客户并不知道自己想要什么。

extreme programming(xp) model & spiral model

  1. How does the Extreme Programming(XP) model differ from the Spiral model in its treatment of incremental prototypes?
    4.极限编程(XP)模型在处理增量原型方面与螺旋模型有何不同?
    Answer:
    Extreme Programming (XP) and the Spiral model are two different approaches to software development, each with its own methodologies and practices. While both emphasize iterative development and incremental prototyping, they differ in several key aspects:
    Extreme Programming (XP):
    XP is an agile software development methodology that emphasizes frequent releases of small, incremental features.
    In XP, incremental prototypes are developed as part of the iterative development process, but they are usually small and focused on delivering specific functionality rather than comprehensive system prototypes.
    Prototypes in XP are often used to gather feedback from stakeholders and users, which is then incorporated into subsequent iterations of development.
    XP relies heavily on practices such as pair programming, test-driven development, continuous integration, and frequent communication with stakeholders.
    Spiral Model:
    The Spiral model is a risk-driven software development process model that combines elements of both waterfall and iterative development models.
    In the Spiral model, incremental prototypes are developed and refined through a series of iterations or "spirals." Each spiral represents a phase in the software development process, such as requirements gathering, design, implementation, and testing.
    Unlike XP, the Spiral model places a stronger emphasis on risk management. Each iteration includes a risk analysis phase where potential risks are identified, assessed, and mitigated.
    Prototypes in the Spiral model may be more comprehensive than those in XP, as they are used not only for gathering feedback but also for validating requirements, designs, and addressing identified risks.
    In summary, while both XP and the Spiral model involve iterative development and incremental prototyping, XP focuses on delivering small, focused increments of functionality through frequent releases, while the Spiral model emphasizes risk management and iterative refinement of more comprehensive prototypes.
    答:极限编程(XP)和螺旋模型是两种不同的软件开发方法,每种方法都有自己的方法和实践。虽然两者都强调迭代开发和增量原型设计,但它们在几个关键方面有所不同:
    极限编程(XP):
    XP是一种敏捷的软件开发方法,它强调频繁发布小的增量功能。
    在XP中,增量原型是作为迭代开发过程的一部分开发的,但它们通常很小,专注于提供特定的功能,而不是全面的系统原型。
    XP中的原型通常用于收集利益相关者和用户的反馈,然后将其纳入后续的开发迭代中。
    XP在很大程度上依赖于诸如配对编程、测试驱动的开发、持续集成以及与利益相关者的频繁沟通等实践。
    螺旋模型:
    Spiral模型是一个风险驱动的软件开发过程模型,它结合了瀑布和迭代开发模型的元素。
    在螺旋模型中,增量原型是通过一系列迭代或"螺旋"来开发和细化的。每个螺旋代表软件开发过程中的一个阶段,如需求收集、设计、实现和测试。
    与XP不同,Spiral模型更加强调风险管理。每个迭代都包括一个风险分析阶段,在该阶段识别、评估和缓解潜在风险。
    Spiral模型中的原型可能比XP中的原型更全面,因为它们不仅用于收集反馈,还用于验证需求、设计和解决已识别的风险。
    总之,虽然XP和Spiral模型都涉及迭代开发和增量原型设计,但XP侧重于通过频繁发布提供小的、有重点的功能增量,而Spiral模型则强调风险管理和更全面原型的迭代改进。

agile modeling (am)principles

  1. Visit the Official Agile Modeling site and make a complete list of all core and supplementary Agile Modeling(AM) principles.
    5.访问官方敏捷建模网站,列出所有核心和补充敏捷建模(AM)原则的完整列表。
    Answer:
    The official website address is: https://agilemanifesto.org/iso/zhchs/manifesto.html
    Twelve principles:
    ① Our most important goal is to satisfy customers by continuously delivering valuable software early.
    ② Xinran faces changes in demand, even in the later stages of development. For the competitive advantage of customers, agile processes control change.
    ③ Frequently delivering working software, with intervals of a few weeks or one or two months, tends to adopt shorter cycles.
    ④ Business personnel and developers must collaborate with each other, and every day in the project is no exception.
    ⑤ Stimulate individual morale and build projects with them as the core. Provide the necessary environment and support, complemented by trust, to achieve goals.
    ⑥ The best and most efficient way to convey information, both inside and outside the team, is through face-to-face conversations.
    ⑦ Workable software is the primary measure of progress.
    ⑧ Agile processes advocate for sustainable development. The responsible person, developers, and users should be able to maintain a stable and continuous pace together.
    ⑨ Persistently pursuing technological excellence and good design enhances agility.
    ⑩ Based on simplicity, it is an art that strives to reduce unnecessary workload.
    ⑪ The best architecture, requirements, and design come from self-organizing teams.
    ⑫ The team regularly reflects on how to improve effectiveness and adjusts their behavior accordingly.
    答:官网地址为:https://agilemanifesto.org/iso/zhchs/manifesto.html
    十二条原则:
    ① 我们最重要的目标,是通过持续不断地及早交付有价值的软件使客户满意。
    ② 欣然面对需求变化,即使在开发后期也一样。为了客户的竞争优势,敏捷过程掌控变化。
    ③ 经常地交付可工作的软件,相隔几星期或一两个月,倾向于采取较短的周期。
    ④ 业务人员和开发人员必须相互合作,项目中的每一天都不例外。
    ⑤ 激发个体的斗志,以他们为核心搭建项目。提供所需的环境和支援,辅以信任,从而达成目标。
    ⑥ 不论团队内外,传递信息效果最好效率也最高的方式是面对面的交谈。
    ⑦ 可工作的软件是进度的首要度量标准。
    ⑧ 敏捷过程倡导可持续开发。责任人、开发人员和用户要能够共同维持其步调稳定延续。
    ⑨ 坚持不懈地追求技术卓越和良好设计,敏捷能力由此增强。
    ⑩ 以简洁为本,它是极力减少不必要工作量的艺术。
    ⑪ 最好的架构、需求和设计出自自组织团队。
    ⑫ 团队定期地反思如何能提高成效,并依此调整自身的举止表现。
相关推荐
rolt2 天前
长得像用例图的类图-《软件方法》8.2.3.4
软件工程·uml·面向对象
阿萨姆.3572 天前
结对编程 --- 软件工程
java·软件工程·结对编程
写代码的橘子n2 天前
软件工程笔记一
笔记·软件工程
思茂信息2 天前
CST汽车天线仿真(双向混合求解)
javascript·人工智能·5g·汽车·ar·软件工程
幸运超级加倍~2 天前
软件设计师-上午题-12、13 软件工程(11分)
笔记·软件工程
晓北斗NorSnow2 天前
在软件工程开发中,瀑布式开发和螺旋式开发的优缺点比较
软件工程
zk计科小牛马3 天前
软件工程(软考高频)
软件工程
蜗牛学苑_武汉3 天前
浏览器中的事件循环
前端·javascript·chrome·ajax·软件工程·html5
诗和远方ya5 天前
c# 值类型
开发语言·c#·软件工程·visual studio
张瑞东6 天前
系统架构设计师-未来信息综合技术(2)
系统架构·软件工程