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