In this chapter, we examined the functional specifications document. The functional specifications document represents what the product will be. The goals of the functional specifications are to consolidate a common understanding of the business and user requirements. This document also provides a framework for planning, scheduling, and creating the solution. This could be considered a contract between the team and the customer for what will be delivered. The functional specifications consist of the conceptual design summary, logical design summary, physical design summary, standards, and processes used by the team. The conceptual design is the process of gathering, analyzing, and prioritizing business and user perspectives on the problem and the solution, and then creating a preliminary version of the solution. The conceptual design consists of three steps: research, analysis, and optimization.
The technical specifications are a set of reference documents that usually include the artifacts of physical design, such as class specifications, component models, metrics, and network component topologies. To create this document, design considerations needed to be incorporated into the document. These design goals are scalability, availability, performance, integration, and localization.
The scalability design can be implemented two ways: scaling up or scaling out. Scaling up is the ability to add hardware components to existing server hardware, and scaling out is adding new hardware to the existing environment. Next, we discussed strategies for handling availability, which is the measure of how often an application is available for use. These are normally explained as percentages of nines. The process of designing for reliability involves reviewing the application’s expected usage pattern, specifying the required reliability profile, and engineering the software architecture with the intention of meeting the profile. Performance is defined by key application metrics, such as transaction throughput and resource utilization. Integration is the ability to integrate heterogeneous applications. Localization is the process of adapting a globalized application to a particular culture and locale.
The development plan describes the solution development process used for the project. This plan includes a monitoring plan, how the data will be stored, and state management techniques to be employed by the team. Application monitoring is used to ensure that the application is functioning correctly and performing at the optimal level. The monitoring plan describes what will be monitored, how the application will be monitored, and how the results of monitoring will be reported and used.
The test plan describes the strategy and approach used to plan, organize, and manage the project’s testing activities, and identifies testing objectives, methodologies and tools, expected results, responsibilities, and resource requirements.
The deployment plan describes the factors necessary for a smooth deployment and transition to ongoing operations and includes the processes of preparing, installing, training, stabilizing, and transferring the solution to operations.
The functional specifications represent what the product will be.
Functional specifications are a virtual repository of project and design-related artifacts.
Synthesizing of information is the process of assimilating gathered data and interpreting the results.
Restating requirements involves categorizing and prioritizing the requirements.
Scaling involves the designing of processes so that they don’t have to wait. It also looks at the allocation of resources for processes and designing for commutability and interchangeability.
Availability is the examination of the expectations of the customer of how much downtime is expected and how internal resources are available for the solution to achieve high availability.
The monitoring plan determines what, how, and when results will be monitored and reported.
1. | The technical team has diagnosed that the web application gets very slow when more than 1,000 people are concurrently using the application. Choose the correct methods to scale the application without adding additional servers.
|
|
2. | While consulting with a client to design a scalable web application, what should be considered?
|
|
3. | The solution that is being designed needs to run 24 hours a day and 7 days a week. Which of the following considerations are correct?
|
|
Answers
1. | A and B. These options are for scaling up. Scaling up either upgrades components or replaces machines with more powerful machines. |
2. | B, C, and D. Designing processes that do not compete for resources allows for a minimum set of hardware and increases performance. Partitioning resources and activities allows applications to minimize the shared resources needed. |
3. | A, C, and D. The purpose of availability is to keep an application running continuously. This can be performed by reducing planned downtime, using network load balancing, and queuing. |
4. | The current application’s availability is about 50 percent. The application needs to be redesigned to reduce the planned downtime. Which are the correct techniques?
|
|
5. | While identifying requirements for the new application, you want to show the customer the importance of reliability considerations. Which of these items are correct?
|
|
6. | The client is having problems with code that consistently has errors and is designed incorrectly. What techniques can be suggested to improve the reliability of the application?
|
|
7. | After gathering requirements for the new solution, you are asked to identify performance requirements and techniques for the new solution. Which of these apply?
|
|
8. | You are writing the technical specifications document for your solution. The customer needs to understand the need for interoperability with the existing mainframe, which stores its current order data. Which of these concepts are correct?
|
|
9. | The new application being designed needs to support multiple languages. What must be identified in the technical specifications document on how to prepare the application for globalization?
|
|
Answers
4. | C and D. When planning downtime, you want to minimize the time services are not available. Using rolling updates allows for the release of updates in phases. Clustering and load balancing allow machines to be taken down without loss of services. |
5. | B and C. Reliability is concerned with the correctness of the application. Applications that contain errors in code and in operational logic can be very costly to fix and maintain. |
6. | B and D. Implementing reliability goals for an application requires error handling, quality testing, and reuse of reliable components. |
7. | B and C. Performance requirements are concerned with identifying critical features that need to have metrics assigned to how they perform. |
8. | C and D. Interoperability is the leveraging of existing hardware and software that can exist in different environments and require various protocols for communication. |
9. | B and C. Globalization is the beginning of the process of localization. To create a world-ready application requires the preparation of resource files and identifying features that are culturally correct. |
10. | After creating the functional specifications, the customer is asking what the next step is in the process. Identify the purposes of the development plan.
|
|
11. | You are creating the technical specifications document. Identify for the support team the purpose of the test plan.
|
|
12. | You are writing the deployment plan for the new application. What are the correct items that are needed to be identified in the deployment plan?
|
|
13. | You are writing the technical specifications document. Identify the correct items about the technical specifications.
|
|
14. | You are writing the functional specifications document. The user is trying to understand the purpose of this document. Identify the correct items about the functional specifications document.
|
|
15. | While writing the functional specifications document, identify the correct risks associated with not creating functional specifications.
|
|
16. | You are writing the functional specifications document. The first step in conceptual design is the analysis phase. Identify the correct items about this phase.
|
|
17. | You are in the process of restating the business requirements gathered in the initial phase of the project. Identify the common characteristics of the restated requirements.
|
|
18. | You are in the process of restating the business requirements gathered in the initial phase of the project. During the restatement of requirements, they are grouped into categories. Identify the main categories of requirements.
|
|
19. | The current application is not very secure. The new application will be used by a broader range of users and systems within the organization. You are writing the technical specifications document and need to identify security strategies for the application. Identify the correct security strategies.
|
|
20. | You are writing the functional specifications for the new application. The existing application had many security problems. Identify the correct security principles associated with STRIDE.
|
|
Answers
10. | A, C, and D. The development plan is the road map for the design, standards, and features of the application. |
11. | B and C. The test plan identifies what will be tested, how it will be tested, and what types of results are needed. |
12. | A, B, and D. Deployment plans are used to determine what is needed to deliver the product to production, how this will be accomplished, and who is responsible for the deployment and support. |
13. | A, B, and D. The technical specifications document identifies what work will be performed and how the environments will be set up. |
14. | A, C, and D. The functional specifications document is generally a contract between the project team and the customer to determine if all features are defined correctly, and is presented in business terms. |
15. | A, B, and D. By not creating the functional specifications, you run the risk of developing a solution that meets the requirements but is unusable or creating a solution then finding out too late that the business processes were incorrect. |
16. | A, B, and C. The analysis of the conceptual design is the reexamination of the original requirements and creating a more detailed modeling diagram and requirements. |
17. | B, C, and D. Restating business requirements is the breaking down of requirements into simpler forms and groups. These restated business requirements will be the basis for the test plan. |
18. | A, B, and C. Requirements are grouped by their functionality, whether they are for the user, for the operation of the application, or for the system. |
19. | C and D. Security strategies are designed around the goals of protecting the data and the application. This involves applying the minimal amount of permissions and proven security methods and models. |
20. | A and B. Spoofing identify and repudiation are correct STRIDE principles. |
1. | Create a C#.NET console application to copy web server log files from remote locations. The application should preprocess the log files and load them into a warehouse table. The information is then generated to rollup information from the warehouse table and populate the report structures. The source servers and file locations will be stored multiple key nodes in the config file that define: A) the web server name, B) the file location of the logs and c) the web site URL that the logs describe traffic for. All temporary files must be destroyed upon completion of processing and all system notifications, success or failure, should be written to the event log. The application config file should define a Panic E-mail key which should be used when a catastrophic failure occurs. Refine the following requirements:
|
|
Answers
1. | The following is an example of how the requirements should be refined:
User Services
Business Services
Data Services
The logger application will notify the Panic E-mail Address when catastrophic errors occur. All other notifications will be sent to the event log of the running machine. User Services
Business Services
The parsing of the web logs will be handled on a file-by-file basis. This allows for the possibility that certain web servers are not configured correctly and for future expansion. The only files that can be parsed are files that are at least one day old. Business Services
Storing of resulting processed web logs. Business Services
|