Assignment4

docx

School

Johns Hopkins University *

*We aren’t endorsed by this school

Course

645

Subject

Industrial Engineering

Date

Feb 20, 2024

Type

docx

Pages

5

Uploaded by CommodoreBoulder10819

Report
Software Systems Engineering EN 645.764 Homework Assignment #4 Name: Mya Reid 100 Possible Points 1. Reliability and safety are related but distinct dependability attributes. Describe two important distinctions between these attributes [5 pts each] and provide examples showing how it is possible for a reliable software-driven system to be unsafe and vice versa [5 pts each]. 1. Focus and Definition: o Reliability: Reliability refers to the ability of a system to consistently perform its intended functions accurately over a specified period under specific conditions. It's primarily concerned with the system's ability to avoid failures and errors, ensuring that it operates as expected. o Safety: Safety, on the other hand, is about preventing harm to users, the environment, or assets. A safe system is designed to minimize the potential for accidents, injuries, or damage. Example: A reliable software-driven system, such as an autonomous vehicle, might consistently follow traffic rules and navigate without technical glitches. However, if it lacks the ability to accurately identify pedestrians, it could be considered unsafe because it might fail to prevent collisions with people. 2. Failure and Consequences: o Reliability: A reliable system aims to minimize the occurrence of failures and errors. It's concerned with maintaining consistent performance and avoiding unexpected shutdowns. o Safety: Safety is focused on preventing catastrophic failures that could result in harm. A safe system may still have occasional failures, but these should not lead to dangerous outcomes. Example: Consider a medical infusion pump used in a hospital. If the pump consistently delivers medication at the correct dosage but occasionally displays incorrect dosage information, it might be considered reliable but unsafe because medical professionals could make dosing errors based on the incorrect information. 2. Build a very brief and simple Safety Case (Claim, Evidence, Argument, and Conclusion) that the HT-300 hearing test system your company is developing is adequately safe for administering hearing tests to babies [20 points]. {For background on such testing, see: https://www.babyhearing.org/newborn-hearing-screening-tests } Claim: The HT-300 hearing test system is adequately safe for administering hearing tests to babies. Evidence: Tested Accuracy: The HT-300 system underwent rigorous testing on a diverse range of simulated and actual infant hearing cases. The test results consistently demonstrated accurate detection of hearing impairments in babies. Pediatrician Endorsement: Renowned pediatric audiologists and medical professionals specializing in infant care reviewed the HT-300 system's design, functionality, and safety protocols. Their endorsement of the system's safety further validates its suitability for use with babies. Compliance with Regulatory Standards: The HT-300 system adheres to the safety and performance standards set by relevant regulatory bodies for medical devices, including those specifically addressing equipment used with infants. Redundant Safety Mechanisms: The HT-300 incorporates redundant safety mechanisms to prevent excessive sound levels during testing. If any irregularities are detected, the system immediately halts the test and alerts the operator. Argument: The combination of accurate testing results, expert endorsements, regulatory compliance, and advanced safety features demonstrates that the HT-300 hearing test system is designed to provide reliable and safe hearing assessments for babies.
3. Review Assignment4.py and primeSieve.py. One nonfunctional requirement we did not discuss in the lecture is “performance” or “response time.” This requirement specifies how quickly an application provides an output once given an input. Imagine you are building an application and one of the engineers on the team believes the Sieve of Eratosthenes algorithm will be the bottleneck in meeting performance requirements. They have implemented the algorithm and put it under test in the hopes of establishing a performance baseline. a. Part 1 [2 points] Run Assignment4.py and record the result from the part 1 section: “X function calls in Y seconds.” After the rest of the application and main algorithms are written, the engineers put the full application under performance testing, in part 2 of Assignment4.py. 78501 function calls in 1.789 seconds b. Part 2 [2 points] Record the result from the part 2 section: “X function calls in Y seconds.” 470991 function calls in 12.038 seconds
c. Part 3 [6 points] The approach outlined in this question is to test performance by making an educated guess on where performance bottlenecks occur prior to completing and testing the entire application (or at least a complete portion of a major function) (a) Was the guess right? (b) Was it a good idea? Why or why not? [6 points] The performance bottleneck might arise during the process of importing the primeSieve, sys, and math values. Situations may arise where a user's software compiler is outdated or fails to interpret the import function, leading to an error message. While the assumption could be correct for certain compilers, my experience using Microsoft Visual Studio and executing programs within the project folder proved otherwise. Conducting performance tests by making informed assumptions about potential bottlenecks is a prudent approach. This strategy empowers developers to detect possible challenges and enhance the code's efficiency even before the entire application is finalized and tested. As a result, this practice minimizes the need for debugging and refining the application's performance, consequently saving valuable time and effort.
Your preview ends here
Eager to read complete document? Join bartleby learn and gain access to the full version
  • Access to all documents
  • Unlimited textbook solutions
  • 24/7 expert homework help
d. Part 4 [5 points] Write a short performance requirement for the (full) application [2 points]. Explain why it is important to write a “good” performance requirement and what constitutes “good.” [3 points] REQ: The application shall complete the primeSieve in less than 10 seconds. Writing a "good" performance requirement is crucial as it serves as a clear guideline for achieving desired outcomes and ensuring the success of a project. A well-defined performance requirement outlines the specific criteria that a system, product, or service needs to meet in terms of speed, capacity, efficiency, or other performance aspects. A "good" performance requirement is characterized by being specific, measurable, achievable, relevant, and time- bound. A well-constructed performance requirement helps align project stakeholders' expectations, aids in accurate planning, facilitates effective testing, and provides a basis for evaluating the project's success. It minimizes ambiguity, prevents misunderstandings, and guides developers in building systems that deliver the intended performance, leading to higher user satisfaction of the application 4. Review Guidance for the Development of Statement Of Objectives (SOO) on one approach to contracting: starting with a Statement of Objectives (SOO), written by the entity that wants to have a software intensive system developed . Objectives are tangible things that you want, not verbs describing work you want someone to do (don’t tell the experts how to do their job). Imagine you’d like a contractor to build a software application for you that operates like Windows Calculator © (i.e., imagine that this application doesn’t already exist). Write 5 technical objectives that would be appropriate for a SOO [20 points total 4 points each objective]. 1. Develop and maintain a software application that performs basic and advanced calculations. 2. The application will be compatible with Windows operating systems only. 3. The software application should perform with little to no impact on the overall performance of the user’s operating system 4. The application will display the user’s current inputs and previous inputs from the same instance 5. The software application will go through as-needed updates as capabilities are developed 5. Now imagine you are the contractor receiving the SOO, and you are to reply by writing a Statement of Work (SOW) . Referencing the objectives you wrote in #4 , write 5 activities tasks (“My business shall…”) and 5 deliverables that would be appropriate for a Statement of Work (SOW) in response to the SOO. [2 points for each task and each deliverable]. Please remember these tasks/activities are not software requirements – they are the activities you propose to “do.” For an example SOW template, see the included “Generic-SOW-Template” document. Remember this question only asks you to develop 5 example tasks and 5 deliverables – not the entire document. Tasks Deliverables
1 The company shall develop and maintain a software application that performs basic and advanced calculations (i.e. addition, subtraction, division, multiplication, trigonometry, exponents, calculus, etc.) Defined plan for use of application 2 The company shall develop the application in compatibility with a Windows operating system Detailed summary from verification and validation testing 3 The company shall develop an app that in no way impacts the users’ device’s performance Directions for use and accessibility 4 The app shall display the previously and current inputs from the user Log of debugging tasks, results and mitigation plans 5 The company shall release updates as needed to the application Fully functional calculating software application 6. Explain how you would (but do not) estimate costs and schedule to include as part of the SOW [5 points]. In developing cost and schedule estimates to be included in the Statement of Work (SOW), a systematic approach is crucial. Firstly, a thorough breakdown of project tasks and activities is essential. By identifying each discrete step required to complete the project, from research and design to testing and implementation, an accurate scope is established. Next, resource allocation is determined. This involves quantifying the personnel, materials, equipment, and any external services needed for each task. Assigning costs to these resources, such as hourly rates for labor and market prices for materials, provides a clear financial projection. Moreover, understanding task dependencies is vital for crafting a realistic project schedule. By mapping out the sequence of activities and identifying critical paths, which dictate the minimum time required for project completion, a timeline is formulated. Contingencies are also integrated into both the cost and schedule estimates to account for unforeseen delays or changes in project scope. Ensuring that these estimates are well-justified, transparent, and aligned with project goals and constraints enhances the accuracy and reliability of the SOW's cost and schedule components. Incorporating these meticulously estimated costs and schedules into the SOW serves to communicate a comprehensive project plan to stakeholders. The cost estimate section outlines the financial outlay required for each project phase, accounting for labor, materials, equipment, and contingencies. This transparency aids stakeholders in understanding the financial scope of the project and facilitates budget allocation. Simultaneously, the schedule estimate section provides a detailed timeline of tasks, milestones, and their interdependencies. This visual representation helps stakeholders grasp the projected project duration and important milestones. Additionally, the documented assumptions and constraints underlying the estimates offer context, allowing stakeholders to appreciate the feasibility of the proposed timeline and costs. By ensuring the accuracy and clarity of these estimates, the SOW becomes an invaluable document that guides project planning, execution, and management.