Model Answer Software Engineering – CIS 343-Z 1435 – 1436 – First Semester Dr. Zeiad El-Saghir 1 Q1: Choose the best alternative in the following (8 marks) (0.33 marks for each item): 1. What is usability in software engineering? (a) a measure of the relative effort required to learn how to use a software product. (b) the degree to which the product integrates with the environment in which it is used. (c) a metric that describes the degree to which a software product meets its requirements. (d) the ability of the end user to use the product successfully. 2. _____________ is the process of developing a software specification. (a) software Engineering. (b) requirements Engineering. (c) systematic Engineering. (d) computer Engineering. 3. Verification is defined as _____________ . (a) are we building the right project? (b) are we building the right product? (c) are we building the product right? (d) are we building the project right? 4. The ability of the system to deliver services when requested is defined by ______________ . (a) availability. (b) reliability. (c) usability. (d) security. 5. Which activity refers to the action Are we building the product right? (a) verification. (b) validation. (c) testing. (d) debugging. 6. The stand alone systems that are produced by a development organization and sold on the open market to any customer who is able to buy them are called ____________. (a) customized product. (b) generic product. (c) system product. (d) software product. 7. The risk that is derived from the software or hardware that is used to develop a system is called ____________ . (a) technology risks. (b) people risks. (c) dangerous risks. (d) organizational risk. 8. The likelihood and consequences of the risk that are assessed is called as _________ . (a) risk identification. (b) risk analysis. (c) risk planning. (d) risk management. 9. As the reliability decreases, failure intensity ______________ . (A) decreases (B) increases (C) no effect (D) none of the above 10. What is the main concern of software engineering area? (a) hardware configuration (b) software validation (c) software production (d) software reusability 11. ___________ is concerned with modifying existing software systems to meet new requirements. (a) software specification (b) software design and implementation (c) software validation (d) software evolution 2 12. Is the capability of software to provide functions which meet stated and implied needs when the software is used. (a) efficiency (b) portability (c) functionality (d) maintainability 13. The Microsoft Excel is an example of ____________ . (a) Interactive transaction-based applications (b) Embedded control systems (c) Stand-alone applications (d) Entertainment systems 14. Business trends are dictating that the time to market of a product should be ______________. (a)raised. (b) reduced. (c) fixed. (d) good. 15. The most important feature of spiral model is _______________ . (a) requirement analysis. (b) risk management. (c) quality management. (d) configuration management. 16. The feature of the object oriented paradigm which helps code reuse is ___________ . (a) object. (b) class. (c) inheritance. (d) aggregation. 17. The prototyping model of software development is _____________ . (a) a reasonable approach when requirements are well defined. (b) a useful approach when a customer cannot define requirements clearly. (c) the best approach to use for projects with large development teams. (d) a risky model that rarely produces a meaningful product. 18. _______________ describe the “what” of a system, not the “how”. (a) requirements. (b) design. (c) coding. (d) testing. 19. ____________ are statements in natural language plus diagrams of the services the system provides and its operational constraints. Written for customers. (a) user designs. (b) user requirements. (c) customer statements. (d) customer documents. 20. ___________ are statements of services the system should provide and how the system should react to particular inputs. (a) non-functional requirements. (b) functional requirements. (c) domain requirements. (d) system requirements. 21. _____________ are constraints on the services or functions offered by the system such as timing constraints. (a) non-functional requirements. (b) user requirements. (c) domain requirements. (d) system requirements. 22. _______________ are requirements which specify that the delivered product must behave in a particular way e.g. execution speed and reliability. (a) non-functional requirements. (b) product requirements. (c) domain requirements. (d) organizational requirements. 23. ______________ requirements cannot be sacrificed. (a) non-functional requirements. (b) functional requirements. (c) mandatory requirements. (d) desirable requirements. 3 24. _______________ is quite helpful when tradeoffs need to be made. (a) non-functional requirements. (b) functional requirements. (c) Ranking requirements. (d) desirable requirements. Q2: Match the items on the right to those on the left (4 marks) (0.5 marks for each item): Job satisfaction is increased for developers Timeboxing process model 1 2 3 in the V process model 4 for the prototyping model 5 waterfall model is one of the XP unique practices user training to use the system a disadvantage of the Spiral model 6 7 8 ( 8 ) no strict standards for software development ( 5 ) is a document-driven process Automated unit tests are written first before ( 6 ) the actual code is written, and then the code should be written to pass the tests is well suited for projects that require a large number of features to be developed in a short ( 2 ) time around a stable architecture using stable technologies ( 7 ) is one of the advantages of prototyping model is one of the advantages of iterative ( 1 ) enhancement model ( 3 ) testing is a full life-cycle activity ( 4 ) requirements are not freezed Q3: Write “T” if the statement is true and “F” if the statement is false. Correct the false statements to make them true (4 marks) (0.33 marks for each item): 1. Adaptive maintenance means enhancing the performance or modifying the programs to respond to the user’s additional or changing needs. 2. F Perfective The goal of the design phase is to transform the requirements specified in the SRS document into a program. F Development (or may be Design and Coding phases) 3. Detailed design is also called high-level design. F Low-Level 4. Object oriented design has higher development time and effort. F Lower 5. The system testing is done in two phases. 6. The main disadvantage of the waterfall model is its simplicity. F Advantage 4 F Three phases 7. The selection of the development process specifies things like how long each phase should last. F Does not specify 8. A software plan is usually produced after the development activity begins. F Before 9. External requirements are requirements which specify that the delivered product must behave in a particular way e.g. execution speed, reliability, etc. F Product 10. “The system shall be completely reliable” is an example of good requirements. F Bad 11. “It imposes an additional burden” is one of the advantages of a decision table. F Disadvantages 12. For DFDs, the direction of flow is from destination to source. F from source to destination Q4: Answer the following questions (20 marks) (5 marks for each question): 1. Design your own development process for the following software project: The client is willing to spend some time only at the start to help develop the requirements - The developing organization is not familiar with the problem domain - The client wanted to reduce the delivery time as much as possible - The project requires a large number of features and there is some flexibility in grouping them. Solution In this project we can use the following: In the requirements phase, we use the prototyping process model because the client is willing to spend some time only at the start to help develop the requirements and the developing organization is not familiar with the problem domain. In the remaining phases of the life cycle, we use the timeboxing model because the client wanted to reduce the delivery time as much as possible and the project requires a large number of features and there is some flexibility in grouping them. 2. A software project uses the time-boxing process model with 6 stages in each time box. Suppose that each stage takes 5 days. Find the number of time boxes if the time required to complete this project is 620 days. Solution Total time = time of one stage x number of stages in one time box + (number of timeboxes – 1) x time of one stage 620 = 5 x 6 + (N – 1) x 5 (620 – 30) / 5 = N – 1 N = 118 + 1 = 119 Timeboxes. 5 3. Construct a DFD that describes the arithmetic expression (a * b) + (a – b * c). Assume that the data a, b, and c are read from a keyboard and the result is printed. Solution Input (keyboard) a b c * * - + Output (printer) 4. Convert the following flowchart into a decision table. Is the decision table complete? Why? Is there any redundant or contradictory rules? Why? Explain your answer. 6 Solution Conditions Do I want to do this ? Will it likely end with disaster ? Will it make a good story any way ? Rules N y Y Y - N Y Y - - N Y Actions Do it Don’t do it - X X X X The decision table is complete because every possible set of conditions has a corresponding action prescribed. Note that rule 1 has 2 don’t care conditions that can be expanded to 4 rules. Also, rule 2 has 1 don’t care condition that can be expanded to 2 rules - There are no redundant rules, because there are no pairs of decision rules that specify identical actions. - There are no contradictory rules that has identical entries and specifying different actions. Q5: Answer the following questions (4 marks) (2 marks for each question): 1. Suppose changes are to be made to a software system that is in operation. Why will changes to such a system cost a lot more than just making changes to the source code files? Solution :هذا السؤال إبداعي وقد يتفاوت الطالب في إجاباته The changes in a software system that is in operation cost a lot more than just making changes to the source code files because we need to read all the documents and understand all the phases of this software (design – coding . . . etc), so the changes may affect the architecture of this system for example. Also, we may need to use a different technology for rebuilding the system. Also, we need to make a testing for the system after modifying it. Testing costs is very high. And so on. 7 2. If the primary goal is to make software maintainable, list some of the things you will do and some of the things you will not do during design and coding. Solution :هذا السؤال إبداعي وقد يتفاوت الطالب في إجاباته In design phase, we need to make the system modular. Also, we should implement the volatile requirements in separate modules. In coding phase, we have to meke the programs as clear as possible by dividing code lines in short modules and by inserting detailed comments about what each module will do. ، ، ، انتهت األسئلة مع خالص دعائي بالتفوق 8