CS 487 Week 8 Reading: 1. Ian Sommerville, Chapter 3. Objective: 1. To check the understandibility of the students in life cycle and process model for development of a software product. 2. To check if the students have understood the concepts of user requirements, system requirements, functional requirements and non-functional requirements. 3. To check if the students have understood the design methods and design models. Concepts: 1. Life Cycle Models 2. Functional and Non-Functional Requirements 3. Types of Requirement 4. Design Models Outline: 1. Life Cycle Model a. Software process models b. Component based development c. Evolutionary software process model 2. Types of Requirement a. User Requirements b. System Requirements 3. Functional and Non-Functional Requirements a. Functional Requirements b. Non-Functional Requirements c. Domain Requirements 4. Design Models a. Context models b. Behavior models c. Data models d. Object models e. CASE workbenches Reference: 1. Software engineering, roger s. pressman. CS487 Week 8 Page 1
Midterm Paper Student Name: Section : ID : Grading Criteria: Total Marks: 75 10 Multiple Choice Questions: 20 15 True or False Questions: 30 2 Match the Following Questions: 25 Multiple Choice Questions 10 X 2 = 20 1. Which of the following statements is false about the goals of Inception? a. What is the vision and business case for this project b. Is it feasible? c. Are we going to buy or build? d. Provide accurate estimates of cost e. Produce a development schedule f. Get decision from management to proceed or stop 2. Which of the following statement is false? a. Aggregation is a special kind of Association b. Both Aggregation and Composition are 'part-of' relationship c. When the whole is deleted, parts in aggregation are also removed 3. The prototyping model of software development is a. A reasonable approach when requirements are well defined. b. The best approach to use for projects with large development teams. c. A risky model that rarely produces a meaningful product. d. A useful approach when a customer cannot define requirements clearly. 4. The spiral model of software development a. Ends with the delivery of the software product b. Is more chaotic than the incremental model c. Includes project risks evaluation during each iteration d. All of the above 5. The incremental model of software development is a. A reasonable approach when requirements are well defined. b. The best approach to use for projects with large development teams. c. A revolutionary model that is not used for commercial products d. A good approach when a working core product is required quickly. 6. Which of following is not a UML diagram used creating a system analysis model? a. activity diagram b. class diagram CS487 Week 8 Page 2
c. dataflow diagram d. state diagram 7. The top level of the hierarchical model of a system is known as the a. AFD b. DFD c. SCD d. SFD 8. Analysis models depict software in which three representations? a. architecture, interface, component b. cost, risk, schedule c. information, function, behavior d. None of the above 9. The linear sequential model of software development is also known as the a. Classical life cycle model b. Fountain model c. Spiral model d. Waterfall model e. both a and d 10. The rapid application development model is a. Another name for component-based development. b. A useful approach when a customer cannot define requirements clearly. c. A high speed adaptation of the linear sequential model. True or False 15 X 2=30 1. In the Unified Process model requirements are determined iteratively and may span more than one phase of the process. 2. Within a specification model, generalization means that the interface of the subtype must include all elements from the interface of the super type. 3. Generalization at the implementation perspective is associated with inheritance in programming languages. 4. State diagrams are good at describing the behavior of an object across several use cases. 5. In the Unified Process model requirements are determined iteratively and may span more than one phase of the process. 6. Prototype, Spiral and Concurrent are all Evolutionary Process Models 7. Requirements engineering is a generic process that does not vary from one software project to another. 8. Process technology tools allow software organizations to compress schedules by skipping unimportant activities. CS487 Week 8 Page 3
9. It is generally accepted that one cannot have weak software processes and create high quality end products. 10. Software processes can be constructed out of pre-existing software patterns to best meet the needs of a software project. 11. Software engineering umbrella activities are only applied during the initial phases of software development projects. 12. Information hiding makes program maintenance easier by hiding data and procedure from unaffected parts of the program. 13. The deployment design elements specify the build order for the software components. 14. One of the key problems in software reuse is the inability to find existing reusable design patterns when hundreds of candidates exist. 15. Frameworks and design patterns are the same thing as far as designers are concerned. Match the Following 1. Place the following type of requirements in the right place in the table below. 5 X 3=15 Functional, Non-Functional, Domain, User Requirement, System Requirement Statements in natural language plus diagrams of the services the system provides and its operational constraints. Written for customers. constraints on the services or functions offered by the system How the system should react to particular inputs and how the system should behave in particular situations. Describe functionality or system services. Requirements that come from the application domain of the system and that reflect characteristics of that domain. A structured document setting out detailed descriptions of the system s functions, services and operational constraints CS487 Week 8 Page 4
2. Link each diagram to its appropriate description 5 X 2=10 State Diagram Use-case Diagram Data Flow Diagram System Flow Diagram ERD Is created to define the major subsystems and to show the lines of information (data and control) flow Describes how the external entities (people, devices) can interact with the system. Provides an indication of how data are transformed as they move through the system and the functions that transformed the data flow Used to describe the behavior of objects and could also be used to describe the entire system behavior. Depicts data object relationships CS487 Week 8 Page 5