Name: ID: Course: SE501 Semester: 121 Assessment: Final Exam Duration: 120 minutes Weight: 30% SE501 Software Development Processes. Course Website http://info.psu.edu.sa/psu/cis/biq/se501 Print answers for Sections 1 and 2 on this set of pages. Write answers to Section 3 in the provided exam booklet. Use time wisely. No additional time would be given. Section 1 [14 pts]. Answer the questions after reading the following case study: Tietroniks is a CMMI level 3 (working towards level 4) and an ISO 13485 registered company that adheres to FDA medical device regulations for custom medical software development. Tietroniks has recently successfully acquired a $15.5 million project for developing a medical software solution for a well-known client. The final product would have the following features: 1. Clinical decision support: Clinical decision support helps medical professionals avoid errors by providing them with safeguards such as checking a new prescription for drug to drug interactions and patient allergies. 2. Disease management: Disease management software provides tools for patients and/or clinicians to help monitor chronic diseases such as diabetes, congestive heart failure (CHF), hypertension, and chronic obstructive pulmonary disease (COPD). 3. Electronic medical records (EMR): An electronic medical record (EMR) system manages data about the patient, their visit, and treatments performed. It is typically used as a replacement for a paper patient chart, but often provides much more functionality such as e-prescribing and clinical decision support. 4. E-prescribing: E-prescribing software allows clinicians to send prescriptions electronically to pharmacies. It eliminates the task of trying to decipher handwritten prescriptions and typically forces the user to specify enough information so that the drug can be dispensed without a call back from the pharmacy. 5. Integration & Standards: Integration between medical software is typically done with HL7 messaging, CCD, or CDA documents. Standards such as HL7, ICD-9-CM, and SNOMED make it possible for medical software to catalog and share complex data. 6. Medical billing software: Medical billing software provides the mechanism for the clinicians to get paid for providing treatment. Often it can be built into other pieces of software such as an electronic medical record or a practice management system. 7. Medical coding software: Medical coding software provides the tools necessary to write standardized information about a patient's condition(s) and the treatment that was provided. Medical codes are often used for medical billing software to calculate the payment due by the insurer or government agency. 8. Medical scheduling software: Medical scheduling software makes it easy to schedule patients, clinicians, resources, and locations so that procedures or exams can be performed. 9. Medication Management: Medication management software focuses on how to deliver the appropriate medication(s) to patients based on their medical history, current best practices, medication list, and insurance provider. 10. Telemedicine / Connected Health: Telemedicine allows doctors to treat patients remotely (not just over the telephone). Connected health helps remotely monitor and treat patients while they go about their daily routine. Remote monitoring can be used for early intervention for problems that may not have otherwise been seen until they cause a hospitalization. Page 1 of 7
Medical software is a very complex area with its own set of terminology, laws, and data integration standards. Due to the critical nature of this software, providing quality while delivering on time is of utmost importance. As a project manager, you are required to devise a project plan, track time and effort against initial estimations, devise and maintain quality standards and provide all possible documentation. Deliverables of the project include complete user manuals and documentation to avoid faults. Tietroniks has also agreed to provide free support for the software for 6 months after the initial deployment and 5 years thereafter. Please answer the following questions related to this case study: a. Define (plot) the complexity of each of the 10 software features using the Boehm s complexity definition system Lower Management Complexity - Small Scale - Informal - Single stakeholder - Products Higher Technical Complexity - Embedded, real-time, distributed, faulttolerant - Custom, unprecedented, architecture reengineering - High performance Higher Management Complexity - Large Scale - Contractual - Many stake holders - Projects Lower Technical Complexity - Mostly 4GL, or component-based - Application reengineering - Interactive performance b. During system development it is sometimes beneficial to reuse Commercial Off-The-Shelf (COTS) systems. Describe TWO benefits and TWO problems that can be derived from reusing COTS. Page 2 of 7
c. Assuming that you decided to utilize billing COTS modules for the project in order to reduce development time, how would you integrate these into the system? d. Some features of the software are inter-dependent on others, argue why an incremental development approach is favored. e. Most development projects nowadays utilize agile development methods. Reason if using an agile method is appropriate? Page 3 of 7
f. V-model is used in systems engineering projects due to its quality effective and intense validation mechanisms. Reason why this approach would be effective for this project? g. Should you tailor an appropriate SDLC for this project? Explain with arguments. Section 2. [8 pts] Select the most appropriate choice and print in the box provided. This section is related to Team Software Process. 1. What Strategy to establish a baseline for Quality is most appropriate for your TSP project A. Defining severity of defects and avoiding defects tagged as severe only B. Reducing the Cardinality(number) of defects per KLOC C. Create a policy for determining root-cause of defects D. All of the above E. A and B only 2. Assume Some code is written previously (re-used) for some sub-task(s). What is the best course of action for an engineer: A. Time and LOC for Re-used code should be incorporated in forms? B. Time and LOC for Re-used code should be re-calculated for integration C. Time and LOC for Re-used code should not be mentioned in forms D. None of the above Answer Page 4 of 7
3. Which of these are the 5 generic Team software process activities? A. communication, planning, construction, quality inspections, deployment B. communication, risk management, measurement, production, reviewing C. analysis, designing, programming, debugging, maintenance D. analysis, planning, designing, programming, testing 4. Which of these is not a characteristic of Team Software Process? A. Emphasizes personal measurement of work product B. Practitioner requires careful supervision by the project manager C. Planning manager is responsible for estimating and scheduling D. Quality manager is empowered to control quality of software work products 5. Which of these are objectives of Team Software Process? A. Accelerate software process improvement B. Allow better time management by highly trained professionals C. Build self-directed software teams D. Show managers how to reduce costs and sustain quality E. both b and c 6. In TSP Launch meetings, Software feasibility is determined based on which of the following A. business and marketing concerns B. scope, constraints, market C. technology, finance, time, resources D. technical prowess of the developers 7. The number of people required for a software project is determined A. after an estimate of the development effort is made. B. by the size of the project budget. C. from an assessment of the technical complexity of the system. D. all of the above 8. Estimation in TSP is typically based on A. expert judgment based on past project experiences B. refinement of expected value(ev) estimation C. regression models derived from historical project data D. trial and error determination of the parameters and coefficients 9. Which of the following provide useful measures of software quality in TSP? A. correctness, business relevance, integrity, usability B. reliability, maintainability, integrity, sales C. correctness, maintainability, size, satisfaction D. correctness, maintainability, integrity, usability 10. Why is it important to measure the process of software engineering and software it produces? A. It is really not necessary unless the project is extremely complex. B. To determine costs and allow a profit margin to be set. C. To determine whether a software group is improving or not. D. To make software engineering more like other engineering processes. 11. To be an effective aid in process improvement, the baseline data used must be: A. based on reasonable guess-estimates from past projects B. measured consistently across projects C. drawn from similar projects D. both B and C E. based only on successful projects Page 5 of 7
12. One of the best ways to avoid frustration and improve morale during the Team software development process is to A. give team members more control over process and technical decisions. B. give team members less control over process and technical decisions. C. hide bad news from the project team members until things improve. D. reward programmers based on their productivity. 13. Which of the following is a required principles of good coding for TSP? A. Create unit tests before you begin coding B. Comment proper LOC for added, deleted, re-used and modified C. Keep variable names short so that code is compact D. Write self-documenting code, not program documentation 14. The primary purpose of configuration status in weekly meetings is to A. allow revision of project schedules and cost estimates by project managers B. evaluate the performance of software developers C. make sure that change information is communicated to all affected parties D. none of the above 15. Following activities relate to Support manager A. Plan, design, develop code and documentation B. Quality plan, configuration management, project tracking C. Develop code, record defect/kloc, configuration management D. Weekly status report, produce weekly earned value and status report 16. An effective risk management plan will need to address which of the following issues? A. risk avoidance B. risk monitoring C. contingency planning D. all of the above Section 3. [18 pts] Essay Questions related to Research Papers. Please print answers (few lines for each) in the provided booklet. Questions Related to Gerald Kotonya et.al., "Scrapheap Software Development: Lessons from an Experiment on Opportunistic Reuse", IEEE Software, April 2011. Q1. What is Opportunistic Reuse of Software? How is this different from Software Re-use? Q2. Summarize in one paragraph what is scrapheap? Q3. What is ripple effect? Can this have a negative effect on software quality? Q4. What is the process of making various components work together? Give examples from paper. Questions Related to Mary Poppendieck and M. Cusumano, "Lean Software Development: A Tutorial", IEEE Software October 2012. Q5. In your opinion, how and why Lean or Just in time approach to software development, beneficial? Q6. Eliminate waste is used in what context? Explain. Q7. How is Lean approach different from Agile software development? Give reasons. Page 6 of 7
Questions Related to Xiaofeng Wang, "The Combination of Agile and Lean in Software Development: An Experience Report Analysis", Proceedings of the 2011 Agile Conference. Q8. After reading the survey on combining lean and agile software development, do you think it was proven to be a valuable practice by the authors? Questions related to Sletholt et.al., "What Do We Know about Scientific Software Development s Agile Practices?", Computing in Science & Engineering, April 2012. Q9. Practice 18 emphasizes that the customers are always available. On page 33, the authors realize that the customers were part of development team in selected projects and helped understand the requirements. In your opinion, why is this not a time wasting activity? <End of Exam. Best of Luck> Page 7 of 7