Software and Systems Engineering
Midterm Exam
Spring 2014
1. Giving reasons for your answer based on the type of system being developed; suggest the most appropriate generic software process model that might be used as a basis for managing the development of the following systems:
- A system to control anti-lock braking in a car
- A virtual reality system to support software maintenance
- A university accounting system that replaces an existing system
- An interactive travel planning system that helps users plan journeys with the lowest environmental impact
2. Explain why incremental development is the most effective approach for developing businesssoftware systems. Why is this model less appropriate for real-time systems engineering?
3. Carefully define each of the following software characteristics. Also – which are internal, and which external characteristics?
Quality / Internal or external / DescriptionRobustness
Usability
Verifiability
Reparability
Evolvability
Reusability
Portability
Interoperability
4. What is the purpose of prototyping? Explain why systems developed as prototypes should not normally be used as productionsystems.
5. What is incremental development? What are its advantages?
6. What, in contrast to incremental development, is incremental delivery? What are the advantages of this?
7. What are the four major steps of Boehm’s Spiral model?
8. What is “Test-first” development? What is it’s advantage?
9. Discover ambiguities or omissions in the following statement of requirements for part of a ticket-issuing system:
An automated ticket-issuing system sells rail tickets. Users select their destination and input a credit card and a personal identification number.The rail ticket is issued and their credit card account charged. When the userpresses the start button, a menu display of potential destinations isactivated, along with a message to the user to select a destination. Once adestination has been selected, users are requested to input their credit card.Its validity is checked and the user is then requested to input a personalidentifier. When the credit transaction has been validated, the ticket isissued.
10. Rewrite the following requirements so that they may be objectively validated. You may make any reasonable assumptions about the requirements.
- The software system should be usable by many users at once.
- The user interface should work with most function keys found on typical keyboards.
- If the system should fail in operation, there should be minimal loss of information.
- The database should allow for substantial system growth in terms of numbers of records.
- The system should be usable by most people after a minimal amount of training.
Example:
Original requirement:
The software system should provide the capability of representing the names of sufficient number of children for each employee.
Requirement that can be validated:
The software system should provide the capability of representing up to 10 children for each employee.
11. What is equivalence partitioning and how can it be used to derive test cases? Give a concrete example of the partitions for a thermostat program that turns a heater on if the temperature drops below a certain threshold (MINHEATON), turns the heater off if the temperature rises above another threshold (MAXHEATON) and turns on the A/C if the temperature rises above yet another threshold (MAXACON) and turns the A/C of is the temperature drops below a certain temp (MINACON).
12. What is a design pattern, and how does it help a Software Engineer to better solve problems. Give at lease two examples of common design patterns.
13. What is the purpose of a “context model”? What is the danger of not creating a model of a system within it’s target context?
14. What UML diagrams can be used to create interaction models? Give at least two.
15. When designing the architecture of a system you may have to choose one among several possible distinct design patterns. What are some non-functional requirements that might have a significant impact on the particular architectural design selected?
16. When working on an projects using and agile technique, it is suggested that, in contrast to common practice, programmers were told to try to not generalize their code, but rather only write code to solve the particular case being addressed. Why is this?
17. For each of the following requirements, classify it as a functional or non-functional requirement.
- The authentication interface shall present a user-selected photo at login to verify to the user that they are connected to the authentic server.
- The student information system shall include appropriate access control to constrain access based on the FERPA government regulations for student information privacy,
- The inventory system shall be designed to accommodate at least one million distinct items while retaining a .5 second response time for all interactive requests with 50 concurrent users.
- The system will log all user actions, including actions that cannot complete due to errors, in full deal, recording the before and after state of modified entries in the database, along with a timestamp.
- The system will allow the user to request, and display, a complete history of all of their previous transactions on the system.
- The system will complete transactions without failure at least 99.999% of the time.
- The system shall use Java for all programs written that run on the server.
- The system shall be useable without guidance by a typical college educated person, after 4 hours of training.
- The system will automatically assign a 10% discount on all orders made by premium members.
18. Software timeline stages include evolution, servicing, and phase-out. Explain what this means, and why the process occurs in this manner.
Computer and Information Security MidtermSpring 2014