RecapQuiz of 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:

a.      Retail

b.      HealthCare

c.      Insurance & Finance

d.      Utilities

e.      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:

 

g.      Planning

h.      Risk analysis

i.         Engineering

j.         Customer evaluation

k.       Go, no-go decision

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

 

Question

 

Possible Answers

10.   

What are the limitations of the Waterfall model?

7.        

Although Waterfall is the most commonly used model, it has been criticised for the following reasons:

·         No output is evident and therefore no problems are discovered until the project reaches the testing phase.

  • Requirements must be complete and clear before the system is designed. There is no scope for requirements evolution, which enhances the project risks.
  • Missing and inadequate requirements are identified while Design and Coding phase with no option of revisiting the Requirements phase, which makes the development process unstable.
  • System performance cannot be tested until the system is near completion.

 

 

Defining Key Software Attributes

 

Question

 

Possible Answers

11.   

What are software attributes?

8.        

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.

12.   

How will you define non-functional requirements?

9.        

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

13.   

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

 

10.    

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

 

Question

 

Possible Answers

1.

Identify one example of each:

·      Real-time applications

·      Mission-critical applications

·      Business applications Entertainment applications

·      Productivity applications

 

1.

·      Real-time -ATM system

·      Mission-critical - Aviation system

·      Business - ERP system (SAP)

·      Entertainment - Games

·      Productivity - MSOffice

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值