Solutions to Software Engineering Foundation-PartⅡ

博客围绕软件开发在关键领域的应用展开,提及软件过程模型、复杂项目模型,重点阐述了关键软件属性的定义、特定系统的质量要求以及关键软件属性等信息技术相关内容。

 

Applying Software Development to Key Domains

 

Question

 

Possible Answers

1.    

 

Name a few business domains.

1.      

 

Some of the popular business domains (also called verticals) are:

·          Retail

·          HealthCare

·          Insurance & Finance

·          Utilities

·          Consumer electronics

2.    

 

Why is it necessary to have domain knowledge while working on software projects?

2.      

 

Every domain has its unique requirements, processes, and terminology that determines what kind of software solution will be appropriate for it. Therefore, the project team and the organization should have sufficient knowledge of the domain to understand its intricacies and suggest business solutions.

 

Lack of knowledge about customer’s domain will hamper you while gathering requirements and understanding their systems properly. Incomplete or incorrect requirements will lead to effort and cost overruns and may even result in project failure.

 

Software Process Models

 

Question

 

Possible Answers

3.    

 

What is the need for a software process?

3.      

 

·          Allows division of labor: It becomes easier for each team member to understand their role and responsibilities

·          Promotes teamwork and communication: Everyone in the team is aware of what others are doing

·          Eases project management: Supervisors and managers have a better control on project is they are aware of the exact status of work

·          Allows expertise reuse or reassignment: Load balancing across projects is easier if there is work transparency

·          Eases training: It is easier to identify the best practices and standardize

·          Promotes productivity and better development: It enables teams to produce good work consistently

 

4.    

 

What is a software process model?

4.      

 

Software process model is a sequence of activities and events that define the strategies for developing software.

 

The software process models are used to develop formal descriptions of software life cycle activities based on the type of the project.

 

5.    

 

What are the different types of software process models?

5.      

 

There are many types of software process models and their further variations and adaptations. However, following are the most popular software process models:

·          Waterfall

·          Incremental & Iterative

·          Spiral

·          Prototype

 

6.    

 

What are the typical phases of a Waterfall model?

6.      

 

The standard waterfall model for software development consists of the following phases:

  1. Concept phase

  2. Software Requirements and analysis

  3. Architectural Design

  4. Systems Design

  5. Coding (Coding, Debugging, and Unit Testing)

  6. Integration (System Testing)

7.       Deployment

 

7.    

 

How is a project done in an Iterative model?

 

1.      

 

The Iterative model follows a staged delivery approach. The development cycle goes through Concept, Requirements Analysis, and Architectural Design phases. At this point, the team implements pieces of the solution with current understanding of requirements and shows them to the customer. The customer approval and feedback is taken to complete the components. The team goes back to the previous phases to plug in the feedback and evolving set of requirements, thus going into an iterative cycle. In the iterative model, the team works on the full functionality of the software to deliver a partial system, presents to the customer, takes inputs and start another iteration of the development cycle. 

 

Evolutionary or Incremental model is similar to iterative model. In this model, the team delivers a part of the software after completing the first cycle of Concept, Requirements Analysis, and Architectural Design phases. In the incremental model, the team delivers a full system with partial functionality in the first round. This is evaluated by the customer and the feedback is plugged as the team iterates back into the development cycle to work on another functionality of the system.

 

8.    

 

How is software developed using a Spiral model?

 

2.      

 

Spiral model is a refinement of the traditional waterfall, explicitly recognizing that development undergoes more than one cycle. The spiral incorporates risk analysis into the process, and allows developers to stop the process as well as clients, depending on expected returns from new requirements. A project developed using the Spiral model will incorporate the following phases:

 

1)       Planning

2)       Risk analysis

3)       Engineering

4)       Customer evaluation

5)       Go, no-go decision

6)       Constructing the completed system

 

 

Spiral model goes through series of Waterfalls, starting with a very rough notion of the system and becoming more detailed over a period.

 

9.    

 

What is Prototype model?

 

1.      

 

A project following the prototype model will typically go though the following phases:

·          Gather requirements

·          Quick design

·          Build Prototype

·          Customer evaluation of prototype

·          Refine prototype

·          Engineer product

 

The prototype model is basically a code-and-fix approach but is useful in following situations:

·          Requirements are vague or unknown

·          Need to explore user interface

·          Need to explore functionality

·          Need incremental development and delivery

 

It is appropriate for situations in which the requirements cannot be extracted in detail. This model is also applicable in research labs, which create new, first-of-a-kind software or where the development team needs to work upon a technical requirement and evaluate the feasibility of the requirement.

 

For example, a customer wants to develop a software interacts with different types of back-end software and OS to generate a consolidated report.  The team will like to first validate that interaction between different types of back-end systems is feasible before moving into the project headlong. Such small projects are referred to as proof-of-concept.

 

Evolutionary Prototyping (Start with initial concept, design and implement an initial prototype, iterate as needed through prototype refinement until acceptable, complete and release the acceptable prototype)

 

 

 

Model for Complex Projects

Solution to task

Rationale behind solution

The project has the following characteristics:

·                      The scope is very big

·                      The requirements are not complete and might be evolving

·                      There is a question of feasibility of the system because of compatibility issue between GPS technologies

·                      The project is complex, as the system must adhere to standards, technologies, and legal directives of each country.

 

In view of the complexities involved in the project and the magnitude of scope, it is best that the project be divided in 11 mini-projects, one for each country. The feasibility of the entire project can be validated by doing a quick proof-of-concept to find out whether the technologies across different countries are compatible.

Each mini-project can be an independent project that follows a different Software process model. As the requirements are not completely provided it might be best to opt for an incremental model for each mini-project.

 

The proof-of-concept can be a quick project based on RAD model, as there is no maintenance and deployment involved in the process.

 

Defining Key Software Attributes

 

Question

 

Possible Answers

10. 

 

What are software attributes?

7.      

 

Software attributes, also known as quality attributes are properties of a software delivered by the system to the users. For example, reliability, maintainability, performance to name a few.

11. 

 

How will you define non-functional requirements?

8.      

 

Non-functional requirements are attributes, which are implicit in nature and not easily measurable.

12. 

 

Define the following software attributes:

w        Performance

w        Correctness

w        Reliability

w        Usability

w        Portability

w        Scalability

w        Reusability

w        Productivity

w        Verifiability

w        Maintainability

 

9.      

 

Performance: Responsiveness of the system.

Correctness: Accuracy of the system.

Reliability: Uptime of the system.

Usability: User-friendliness of the system.

Portability: Implementation of the system on different platforms.

Scalability: Increase in capabilities of the system. For example, increased number of users, geographical spread.

Reusability: Reuse in other systems other than the original application.

Productivity: Measurable output or efficiency of the system.

Verifiability: Ability of the system to crosscheck information.

Maintainability: Aptitude of the system to undergo repair and evolution.

 

 

System-Specific Quality Requirements

Solution to task

 

Rationale behind solution

 

 Key Attributes or quality requirements

 

1. Security

 

It is an example of real-time application.

Security is the key attribute because the owner’s personal details along with account details are stored in the system.

2. Response Time

As the vehicle passes the toll bridge, the server has to react in time as the charged amount is to be displayed to the vehicle-owner.

3. Availability

 

The system should exhibit 100% availability.  

Apart from these, there can be other issues like correctness, compatibility.

 

Critical Software Attributes

Solution to task

Rationale behind solution

Critical attributes

§                           Performance

 

 

 

 

§                           Scalability

 

 

 

§                           Security

 

 

 

Trade-off

Flexibility/Usability

 

 

 

Critical attributes

Performance

As the company plans to have a centralized database, the system should be efficient enough to support the load of simultaneous transactions.

 

Scalability

The company might expand in near future. The system should take care of further increase in number of stores.

 

Security

According to the senior management, the system should provide restrictive access to employees of different profiles.

 

Trade-off

Flexibility/Usability

Customisation and flexibility might not be required in this system as the system is meant for proper handling of sales data.

 

 

### 回答1: 《软件工程10解决方案手册》是一本提供软件工程问题解决方案的手册。在软件工程领域,开发人员和团队常常会面临各种挑战和难题,需要寻找适当的解决方法。这本手册提供了一系列解决方案,旨在帮助开发人员更好地应对各种情况。 这本手册包含十个不同的解决方案,每个方案都针对特定的问题和场景。例如,其中一个方案可以是关于如何提高软件开发团队的协作和沟通能力的方法。这可能包括使用协作工具、制定清晰的沟通计划和促进团队合作的活动。另一个方案可能涉及如何管理软件开发过程中的变更和需求变更。这可能包括实施适当的变更管理系统、确保良好的需求收集和分析过程以及及时跟踪和控制变更。 手册中的解决方案还可能涉及软件质量保证、测试策略、项目管理、团队管理等多个方面。每个方案都会详细介绍问题的背景和原因,并提供一系列实际可行的解决方法。这些解决方法通常基于理论知识和过去的经验,经过验证并可操作。 对于软件工程专业的学生或从业人员来说,这本《软件工程10解决方案手册》是一本宝贵的参考资料。它不仅可以帮助他们了解软件开发中常见的问题和挑战,还提供了实用的解决方案来解决这些问题。通过学习和应用手册中的解决方案,开发人员可以提高其技术能力和解决问题的能力,并更有效地完成软件开发任务。 总之,《软件工程10解决方案手册》是一本对软件工程领域的学习和实践都有益处的书籍。它不仅提供了解决问题的方法,还促使开发人员思考如何提高软件开发过程中的质量和效率。对于想要在软件工程领域取得成功的人来说,这本手册将是一个重要的参考工具。 ### 回答2: "Software Engineering 10 Solutions Manual" (软件工程十版解答手册) 提供了软件工程领域教材《Software Engineering》的解答手册。 这本手册针对课本中的习题和问题,提供了详细的解答和方法。学生可以使用它来巩固和加深对软件工程概念和技术的理解。 具体来说,这本手册包含了以下内容: 1. 题目的解答和详细步骤说明,帮助学生理解问题的解决过程。 2. 对于复杂的问题,提供了详细的解决思路和方法,从而引导学生解决类似的问题。 3. 提供了实际案例的解答,帮助学生将理论知识应用到实际情境中。 4. 提供了额外的习题和挑战性问题,帮助学生进一步巩固和扩展知识。 5. 强调了软件工程中的最佳实践和行业标准,如需求工程、软件开发过程、项目管理等方面。 通过使用这本手册,学生可以更深入地理解软件工程的概念和原理,并在解决问题时获得指导和帮助。这对于学生提高自己在软件工程领域的能力和技术很有帮助。 总之,《Software Engineering 10 Solutions Manual》是一本适用于软件工程课程的解答手册,能够帮助学生巩固知识、解决问题,并提升在软件工程领域的能力。 ### 回答3: 《软件工程10版解答手册》是一本为了辅助学习软件工程十版教材的解答手册。这本手册为学生提供了对教材中习题和案例的详细解答,帮助他们更好地理解和掌握软件工程的相关概念和技能。 这本解答手册共包含十个章节,每章都涵盖了教材对应章节的习题和案例。手册中的解答不仅仅是简单的答案,而是通过详细的步骤和解释,帮助学生了解解答的思路和方法。 手册的解答内容涵盖了软件工程的各个方面,包括需求分析、软件设计、编码、测试、配置管理等。通过阅读手册,学生可以更深入地理解软件工程的核心概念和方法,并通过解答实践更好地熟悉和掌握这些概念和方法。 除了对习题和案例的解答,这本手册还提供了一些额外的补充材料和资源,如附加的实例和案例分析。这些额外的材料可以帮助学生拓宽视野,深入理解软件工程在实际项目中的应用。 总之,《软件工程10版解答手册》是一本对软件工程教材进行解答的辅助教材,通过提供详细的解答步骤和解释,帮助学生更好地理解软件工程的概念和方法,并通过实践应用加深对软件工程知识的掌握。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值