100% satisfaction guarantee Immediately available after payment Both online and in PDF No strings attached 4.6 TrustPilot
logo-home
Exam (elaborations)

Software Engineering 9 Solutions Manual 2021.

Rating
-
Sold
-
Pages
96
Grade
A+
Uploaded on
14-11-2021
Written in
2021/2022

INF3705 - Advanced Systems Development. What is the most important difference between generic software product development and custom software development? What might this mean in practice for users of generic software products? The essential difference is that in generic software product development, the specification is owned by the product developer. For custom product development, the specification is owned and controlled by the customer. The implications of this are significant – the developer can quickly decide to change the specification in response to some external change (e.g. a competing product) but, when the customer owns the specification, changes have to be negotiated between the customer and the developer and may have contractual implications. For users of generic products, this means they have no control over the software specification so cannot control the evolution of the product. The developer may decide to include/exclude features and change the user interface. This could have implications for the user’s business processes and add extra training costs when new versions of the system are installed. It also may limit the customer’s flexibility to change their own business processes. 1.3 What are the four important attributes that all professional software should have? Suggest four other attributes that may sometimes be significant. Four important attributes are maintainability, dependability, performance and usability. Other attributes that may be significant could be reusability (can it be reused in other applications), distributability (can it be distributed over a network of processors), portability (can it operate on multiple platforms e.g laptop and mobile platforms) and inter-operability (can it work with a wide range of other software systems). Decompositions of the 4 key attributes e.g. dependability decomposes to security, safety, availability, etc. is also a valid answer to this question. Software Engineering 9 – Solutions Manual ©Ian Sommerville 2010 5 1.4 Apart from the challenges of heterogeneity, business and social change and trust and security, identify other problems and challenges that software engineering is likely to face in the 21st century (hint: think about the environment). Problems and challenges for software engineering There are many possible challenges that could be identified. These include: 1. Developing systems that are energy-efficient. This makes them more usable on low power mobile devices and helps reduce the overall carbon footprint of IT equipment. 2. Developing validation techniques for simulation systems (which will be essential in predicting the extent and planning for climate change). 3. Developing systems for multicultural use 4. Developing systems that can be adapted quickly to new business needs 5. Designing systems for outsourced development 6. Developing systems that are resistant to attack 7. Developing systems that can be adapted and configured by end-users 8. Finding ways of testing, validating and maintaining end-user developed systems 1.5 Based on your own knowledge of some of the application types discussed in section 1.1.2, explain, with examples, why different application types require specialized software engineering techniques to support their design and development. Different application types require the use of different development techniques for a number of reasons: 1. Costs and frequency of change. Some systems (such as embedded systems in consumer devices) are extremely expensive to change; others, must change frequently in response to changing requirements (e.g. business systems). Systems which are very expensive to change need extensive upfront analysis to ensure that the requirements are consistent and extensive validation to ensure that the system meets its specification. This is not costeffective for systems that change very rapidly. 2. The most important ‘non-functional’ requirements. Different systems have different priorities for non-functional requirements. For example, a real-time Software Engineering 9 – Solutions Manual Introduction ©Ian Sommerville 2010 6 control system in an aircraft has safety as its principal priority; an interactive game has responsiveness and usability as its priority. The techniques used to achieve safety are not required for interactive gaming; the extensive UI design required for games is not needed in safety-critical control systems. 3. The software lifetime and delivery schedule. Some software systems have a relatively short lifetime (many web-based systems), others have a lifetime of tens of years (large command and control systems). Some systems have to be delivered quickly if they are to be useful. The techniques used to develop short-lifetime, rapid delivery systems (e.g. use of scripting languages, prototyping, etc.) are inappropriate for long-lifetime systems which require techniques that allow for long-term support such as design modelling. 1.8 Discuss whether professional engineers should be certified in the same way as doctors or lawyers. These are possible discussion points - any discussion on this will tend to be wide ranging and touch on other issues such as the nature of professionalism, etc. Advantages of certification • Certification is a signal to employers of some minimum level of competence. • Certification improves the public image of the profession. • Certification generally means establishing and checking educational standards and is therefore a mechanism for ensuring course quality. • Certification implies responsibility in the event of disputes. Certifying body is likely to be accepted at a national and international level as ‘speaking for the profession’. • Certification may increase the status of software engineers and attract particularly able people into the profession. Disadvantages of certification • Certification tends to lead to protectionism where certified members tend not to protect others from criticism. • Certification does not guarantee competence merely that a minimum standard was reached at the time of certification. • Certification is expensive and will increase costs to individuals and organisations. • Certification tends to stultify change. This is a particular problem in an area where technology developments are very rapid. Software Engineering 9 – Solutions Manual ©Ian Sommerville 2010 7 2 Software Processes 2.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 1. Anti-lock braking system This is a safety-critical system so requires a lot of up-front analysis before implementation. It certainly needs a plan-driven approach to development with the requirements carefully analysed. A waterfall model is therefore the most appropriate approach to use, perhaps with formal transformations between the different development stages. 2. Virtual reality system This is a system where the requirements will change and there will be an extensive user interface components. Incremental development with, perhaps, some UI prototyping is the most appropriate model. An agile process may be used. 3. University accounting system This is a system whose requirements are fairly well-known and which will be used in an environment in conjunction with lots of other systems such as a research grant management system. Therefore, a reuse-based approach is likely to be appropriate for this. 4. Interactive travel planning system System with a complex user interface but which must be stable and reliable. An incremental development approach is the most appropriate as the system requirements will change as real user experience with the system is gained. 2.3 Consider the reuse-based process model shown in Figure 2.3. Explain why it is essential to have two separate requirements engineering activities in the process. Software Engineering 9 – Solutions Manual Introduction ©Ian Sommerville 2010 8 In a reuse based process, you need two requirements engineering activities because it is essential to adapt the system requirements according to the capabilities of the system/components to be reused. These activities are: 1. An initial activity where you understand the function of the system and set out broad requirements for what the system should do. These should be expressed in sufficient detail that you can use them as a basis for deciding of a system/component satisfies some of the requirements and so can be reused. 2. Once systems/components have been selected, you need a more detailed requirements engineering activity to check that the features of the reused software meet the business needs and to identify changes and additions that are required. 2.4 Suggest why it is important to make a distinction between developing the user requirements and developing system requirements in the requirements engineering process. There is a fundamental difference between the user and the system requirements that mean they should be considered separately. 1. The user requirements are intended to describe the system’s functions and features from a user perspective and it is essential that users understand these requirements. They should be expressed in natural language and may not be expressed in great detail, to allow some implementation flexibility. The people involved in the process must be able to understand the user’s environment and application domain. 2. The system requirements are much more detailed than the user requirements and are intended to be a precise specification of the system that may be part of a system contract. They may also be used in situations where development is outsourced and the development team need a complete specification of what should be developed. The system requirements are developed after user requirements have been established. 2.6 Explain why change is inevitable in complex systems and give examples (apart from prototyping and incremental delivery) of software process activities that help predict changes and make the software being developed more resilient to change. Systems must change because as they are installed in an environment the environment adapts to them and this adaptation naturally generates new/different Software Engineering 9 – Solutions Manual ©Ian Sommerville 2010 9 system requirements. Furthermore, the system's environment is dynamic and constantly generates new requirements as a consequence of changes to the business, business goals and business policies. Unless the system is adapted to reflect these requirements, its facilities will become out-of-step with the facilities needed to support the business and, hence, it will become less useful. Examples of process activities that support change are: 1. Recording of requirements rationale so that the reason why a requirement is included is known. This helps with future change. 2. Requirements traceability that shows dependencies between requirements and between the requirements and the design/code of the system. 3. Design modeling where the design model documents the structure of the software. 4. Code refactoring that improves code quality and so makes it more amenable to change. 2.9 What are the advantages of providing static and dynamic views of the software process as in the Rational Unified Process? An approach to process modeling which is simply based on static activities, such as requirements, implementation, etc. forces these activities to be set out in a sequence which may not reflect the actual way that these are enacted in any one organization. In most cases, the static activities shown in Figure 2.13 are actually interleaved so a sequential process model does not accurately describe the process used. By separating these from the dynamic perspective i.e. the phases of development, you can then discuss how each of these static activities may be used at each phase of the process. Furthermore, some of the activities that are required during some of the system phases are in addition to the central static activities shown in Figure 2.13. These vary from one organization to another and it is not appropriate to impose a particular process in the model. Software Engineering 9 – Solutions Manual Introduction ©Ian Sommerville 2010 10 3 Agile Software Development 3.2 Explain how the principles underlying agile methods lead to the accelerated development and deployment of software. The principles underlying agile development are: 1. Individual and interactions over processes and tools. By taking advantages of individual skills and ability and by ensuring that the development team know what each other are doing, the overheads of formal communication and process assurance are avoided. This means that the team can focus on the development of working software. 2. Working software over comprehensive documentation. This contributes to accelerated development because time is not spent developing, checking and managing documentation. Rather, the programmer’s time is focused on the development and testing of code. 3. Customer collaboration over contract negotiation. Rather than spending time developing, analyzing and negotiating requirements to be included in a system contract, agile developers argue that it is more effective to get feedback from customer’s directly during the development about what is required. This allows useful functionality to be developed and delivered earlier than would be possible if contracts were required. 4. Responding to change over following a plan. Agile developers argue (rightly) that being responsive to change is more effective than following a plan-based process because change is inevitable whatever process is used. There is significant overhead in changing plans to accommodate change and the inflexibility of a plan means that work may be done that is later discarded. Software Engineering 9 – Solutions Manual ©Ian Sommerville 2010 11 3.3 When would you recommend against the use of an agile method for developing a software system? Agile methods should probably not be used when the software is being developed by teams who are not co-located. If any of the individual teams use agile methods, it is very difficult to coordinate their work with other teams. Furthermore, the informal communication which is an essential part of agile methods is practically impossible to maintain. Agile methods should probably also be avoided for critical systems where the consequences of a specification error are serious. In those circumstances, a system specification that is available before development starts makes a detailed specification analysis possible. However, some ideas from agile approaches such as test first development are certainly applicable to critical systems. 3.4 Extreme programming expresses user requirements as stories, with each story written on a card. Discuss the advantages and disadvantages of this approach to requirements description. Advantages of stories: 1. They represent real situations that commonly arise so the system will support the most common user operations. 2. It is easy for users to understand and critique the stories. 3. They represent increments of functionality – implementing a story delivers some value to the user. Disadvantages of stories 1. They are liable to be incomplete and their informal nature makes this incompleteness difficult to detect. 2. They focus on functional requirements rather than non-functional requirements. 3. Representing cross-cutting system requirements such as performance and reliability is impossible when stories are used. 4. The relationship between the system architecture and the user stories is unclear so architectural design is difficult. Software Engineering 9 – Solutions Manual Introduction ©Ian Sommerville 2010 12 3.6 Suggest four reasons why the productivity rate of programmers working as a pair might be more than half that of two programmers working individually. Reasons why pair programming may be more efficient as the same number of programmers working individually: 1. Pair programming leads to continuous informal reviewing. This discovers bugs more quickly than individual testing. 2. Information sharing in pair programming is implicit – it happens during the process. This reduces the need for documentation and the time required if one programmer has to pick up another’s work. Individual programmers have to spend time explicitly sharing information and they are not being productive when doing so.. 4. Pair programming encourages refactoring (the code must be understandable to another person). This reduces the costs of subsequent development and change and means that future changes can be made more quickly. Hence, efficiency is increased. 5. In pair programming, people are likely to spend less time in fine-grain optimization as this does not benefit the other programmer. This means that the pair focus on the essential features of the system which they can then produce more quickly. 3.9 It has been suggested that one of the problems of having a user closely involved with a software development team is that they ‘go native’. That is, they adopt the outlook of the development team and lose sight of the needs of their user colleagues. Suggest three ways how you might avoid this problem and discuss the advantages and disadvantages of each approach. 1. Involve multiple users in the development team. Advantages are you get multiple perspectives on the problem, better coverage of user tasks and hence requirements and less likelihood of having an atypical user. Disadvantages are cost, difficulties of getting user engagement and possible user conflicts. 2. Change the user who is involved with the team. Advantages are, again, multiple perspectives. Disadvantages are each user takes time to be productive and possible conflicting requirements from different users. 3. Validate user suggestions with other user representatives. Advantages are independent check on suggestions; disadvantage is that this slows down the development process as it takes time to do the checks. Software Engineering 9 – Solutions Manual ©Ian Sommerville 2010 13 4 Requirements Engineering 4.2 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 user presses the start button, a menu display of potential destinations is activated, along with a message to the user to select a destination. Once a destination has been selected, users are requested to input their credit card. Its validity is checked and the user is then requested to input a personal identifier. When the credit transaction has been validated, the ticket is issued. Ambiguities and omissions include: 1. Can a customer buy several tickets for the same destination together or must they be bought one at a time? 2. Can customers cancel a request if a mistake has been made? 3. How should the system respond if an invalid card is input? 4. What happens if customers try to put their card in before selecting a destination (as they would in ATM machines)? 5. Must the user press the start button again if they wish to buy another ticket to a different destination? 6. Should the system only sell tickets between the station where the machine is situated and direct connections or should it include all possible destinations? Software Engineering 9 – Solutions Manual Introduction ©Ian Sommerville 2010 14 4.4 Write a set of non-functional requirements for the ticket-issuing system, setting out its expected reliability and response time. Possible non-functional requirements for the ticket issuing system include: 1. Between 0600 and 2300 in any one day, the total system down time should not exceed 5 minutes. 2. Between 0600 and 2300 in any one day, the recovery time after a system failure should not exceed 2 minutes. 3. Between 2300 and 0600 in any one day, the total system down time should not exceed 20 minutes. All these are availability requirements – note that these vary according to the time of day. Failures when most people are traveling are less acceptable than failures when there are few customers. 4. After the customer presses a button on the machine, the display should be updated within 0.5 seconds. 5. The ticket issuing time after credit card validation has been received should not exceed 10 seconds. 6. When validating credit cards, the display should provide a status message for customers indicating that activity is taking place. This tells the customer that the potentially time consuming activity of validation is still in progress and that the system has not simply failed. 7. The maximum acceptable failure rate for ticket issue requests is 1: 10000. Note that this is really ROCOF. I have not specified the acceptable number of incorrect tickets as this depends on whether or not the system includes trace facilities that allow customer requests to be logged. If so, a relatively high failure rate is acceptable as customers can complain and get refunds. If not, only a very low failure rate is acceptable. Obviously, these requirements are arbitrary and there are many other possible answers. You simply have to examine their credibility. Software Engineering 9 – Solutions Manual ©Ian Sommerville 2010 15 4.6 Suggest how an engineer responsible for drawing up a system requirements specification might keep track of the relationships between functional and non-functional requirements. Keeping track of the relationships between functional and non-functional requirements is difficult because non-functional requirements are sometimes system level requirements rather than requirements which are specific to a single function or group of functions. One approach that can be used is to explicitly identify system-level nonfunctional requirements that are associated with a functional requirement and list them separately. All system requirements that are relevant for each functional requirement should be listed. They can be related by including them in a table as shown below. Notice that in this example, the system non-functional requirement would normally take precedence over the timing requirement, which applied to the specific operation. Obviously, any sensible answer that provides a way of linking functional and nonfunctional requirements is acceptable here. 4.7 Using your knowledge of how an ATM is used, develop a set of use cases that could serve as a basis for understanding the requirements for an ATM system. There are a variety of different types of ATM so, obviously, there is not a definitive set of use cases that could be produced. However, I would expect to see use cases covering the principal functions such as withdraw cash, display balance, print statement, change PIN and deposit cash. The use case description should describe the actors involved, the inputs and outputs, normal operation and exceptions. Functional requirement Related non-functional system requirements Non-functional requirements The system shall provide an operation which allows operators to open the release valve to vent steam into the atmosphere. Safety requirement: No release of steam shall be permitted if maintenance work is being carried out on any steam generation plant. Timing requirement: The valve must open completely within 2 seconds of the operator initiating the action. Software Engineering 9 – Solutions Manual Introduction ©Ian Sommerville 2010 16 Withdraw cash: Actors: Customer, ATM, Accounting system Inputs: Customer’s card, PIN, Bank Account details Outputs: Customer’s card, Receipt, Bank account details Normal operation: The customer inputs his/her card into the machine. He/she s promoted for a PIN which is entered on the keypad. If correct, he/she is presented with a menu of options. The Withdraw cash option is selected. The customer is promoted with a request for the amount of cash required and inputs the amount. If there are sufficient funds in his/her account, the cash is dispensed, a receipt if printed and the account balance is updated. Before the cash is dispensed, the card is returned to the customer who is prompted by the machine to take their card. Exception: Invalid card. Card is retained by machine; Customer advised to seek advice. Incorrect PIN. Customer is request to rekey PIN. If incorrect after 3 attempts, card is retained by machine and customer advised to seek advice. Insufficient balance Transaction terminated. Card returned to customer. Display balance: Actors: Customer, ATM, Accounting system Inputs: Customer’s card, PIN, Bank Account details Outputs: Customer’s card Normal operation: The customer authenticates using card and PIN as in Withdraw cash and selects the Display Balance option. The current balance of their account is displayed on the screen. The card is returned to the customer. Exception: Invalid card. As in Withdraw cash Incorrect PIN. As in Withdraw cash Print statement: Actors: Customer, ATM, Accounting system Inputs: Customer’s card, PIN, Bank Account details Outputs: Customer’s card, Printed statement Normal operation: The customer authenticates using card and PIN as in Withdraw cash and selects the Print statement option. The last five transactions on their account is printed. The card is returned to the customer. Exception: Invalid card. As in Withdraw cash Incorrect PIN. As in Withdraw cash Change PIN: Actors: Customer, ATM Inputs: Customer’s card, PIN Outputs: Customer’s card Software Engineering 9 – Solutions Manual ©Ian Sommerville 2010 17 Normal operation: The customer authenticates as in Withdraw cash and selects the Change PIN option. He/she is prompted twice to input the new PIN. The PINS input should be the same. The customer’s PIN is encrypted and stored on the card. Card returned to customer. Exception: Invalid card. As in Withdraw cash. Incorrect PIN. As in Withdraw cash. PINS do not match. The customer is invited to repeat the process to reset his/her PIN. Deposit cash: Actors: Customer, ATM, Accounting system Inputs: Customer’s card, PIN, Bank Account details, Cash to be deposited Outputs: Customer’s card, Receipt Normal operation: The customer authenticates as in Withdraw cash and selects the Deposit option. The customer is promoted with a request for the amount of cash to be deposited and inputs the amount. He or she is then issued with a deposit envelope in which they should put the cash then return it to the machine. The customer’s account balance is updated with the amount deposited but this is marked as uncleared funds and is not cleared until checked. A receipt is issued and the customer’s card is returned. Exception: Invalid card. As in Withdraw cash. Incorrect PIN. As in Withdraw cash. No cash deposited within 1 minute of envelope being issued. Transaction terminated. Card returned to customer. 4.9 When emergency changes have to be made to systems, the system software may have to be modified before changes to the requirements have been approved. Suggest a model of a process for making these modifications that will ensure that the requirements document and the system implementation do not become inconsistent. The following diagram shows a change process that may be used to maintain consistency between the requirements document and the system. The process should assign a priority to changes so that emergency changes are made but these changes should then be given priority when it comes to making modifications to the system requirements. The changed code should be an input to the final change process but it may be the case that a better way of making the change can be found when more time is available for analysis. Software Engineering 9 – Solutions Manual Introduction ©Ian Sommerville 2010 18 Analyze change request Change program code Record code changes Update CR DB Change requirements «DB» Change Req DB [emergency change] [nonemergency change] Assess requirements impact Resubmit CR for analysis «DB» Change Req DB Design/ change code Software Engineering 9 – Solutions Manual ©Ian Sommerville 2010 19 5 System Modeling 5.2 How might you use a model of a system that already exists? Explain why it is not always necessary for such a system model to be complete and correct. Would the same be true if you were developing a model of a new system? You might create and use a model of a system that already exists for the following reasons: 1. To understand and document the architecture and operation of the existing system. 2. To act as the focus of discussion about possible changes to that system. 3. To inform the re-implementation of the system. You do not need a complete model unless the intention is to completely document the operation of the existing system. The aim of the model in such cases is usually to help you work on parts of the system so only these need to be modelled. Furthermore, if the model is used as a discussion focus, you are unlikely to ne interested in details and so can ignore parts of the system in the model. This is true, in general, for models of new systems unless a model-based approach to development is taking place in which case a complete model is required. The other circumstances where you may need a complete model is when there is a contractual requirement for such a model to be produced as part of the system documentation. 5.5 Develop a sequence diagram showing the interactions involved when a student registers for a course in a university. Courses may have limited enrolment, so the registration process must include checks that places are available. Assume that the student accesses an electronic course catalog to find out about available courses. A relatively simple diagram is all that is needed here. It is best not to be too fussy about things like UML arrow styles as hardly anyone can remember the differences between them. Software Engineering 9 – Solutions Manual Introduction ©Ian Sommerville 2010 20 5.6 Look carefully at how messages and mailboxes are represented in the email system that you use. Model the object classes that might be used in the system implementation to represent a mailbox and an e-mail message. :CourseCatalog lookup ( ) Display ( ) reportWeather () register ( ) :Course Confirm ( ) :student check-availability ( ) Mail message sender: receiver list: cc list: bcc list: date: subject: return path: routing info: spam info: mailer: message info: message body: attachments: signature: read () reply () reply all () print () forward () send () Mailbox name: pathname: creation date: change date: messages: unread messages: flagged messages: deleted messages: move message ( ) copy message ( ) delete message ( ) fetch mail ( ) create ( ) rename ( ) delete ( ) Software Engineering 9 – Solutions Manual ©Ian Sommerville 2010 21 5.7 Based on your experience with a bank ATM, draw an activity diagram that models the data processing involved when a customer withdraws cash from the machine. Notice that I have not developed the activities representing other services or failed authentication. 5.10 You are a software engineering manager and your team proposes that model-driven engineering should be used to develop a new system. What factors should you take into account when deciding whether or not to introduce this new approach to software development? The factors that you have to consider when making this decision include: 1. The expertise of the team in using UML and MDA. (Is expertise already available or will extensive training be required.) 2. The costs and functionality of the tools available to support MDA. (Are tools available in house or will they have to be purchased. Are they good enough for the type of software being developed) Get customer info Authenticate «system» Accounting system [OK] [withdrawal] [other service] [insufficient] Present service menu Get amount Other services Check balance Dispense cash Update balance Print receipt Return card Return card [OK] «system» Accounting system Authentication failure Software Engineering 9 – Solutions Manual Introduction ©Ian Sommerville 2010 22 3. The likely lifetime of the software that you are developing. (MDA is most suitable for long-lifetime systems) 4. Requirements for high performance or throughput (MDA relies on code generation that creates code which may be less efficient than hand written code) 5. The long term benefits of using MDA (are there real cost savings from this approach) 6. The enthusiasm of the software developers. (are all team members committed to this new approach) Software Engineering 9 – Solutions Manual ©Ian Sommerville 2010 23 6 Architectural Design 6.1 When describing a system, explain why you may have to design the system architecture before the requirements specification is complete. The architecture may have to be designed before specifications are written to provide a means of structuring the specification and developing different subsystem specifications concurrently, to allow manufacture of hardware by subcontractors and to provide a model for system costing. 6.3 Explain why design conflicts might arise when designing an architecture for which both availability and security requirements are the most important non-functional requirements. Fundamentally, to provide availability, you need to have (a) replicated components in the architecture so that in the event of one component failing, you can switch immediately to a backup component. You also need to have several copies of the data that is being processed. Security requires minimizing the number of copies of the data and, wherever possible, adopting an architecture where each component only knows as much as it needs to, to do its job. This reduces the chance of intruders accessing the data. Therefore, there is a fundamental architectural conflict between availability (replication, several copies) and security (specialization, minimal copies). The system architect has to find the best compromise between these fundamentally opposing requirements. 6.7 Explain how you would use the reference model of CASE environments (available on the book’s web pages) to compare the IDEs offered by different vendors of a programming language such as Java. You can make the comparison between the IDEs by taking the different components of the reference model in turn than assess how well the IDE toolset Software Engineering 9 – Solutions Manual Introduction ©Ian Sommerville 2010 24 being studied provides these services. You also have to look at how these services are used in particular toolsets. Generally, IDEs are tightly integrated systems and all parts of the reference model may not be applicable. In this case, comparisons would be drawn using: 1. Data repository services. What kind of data management is supported? 2. Data integration services. How well can data be interchanged with other tools and what support is provided for configuration management? 3. User interface services. What facilities are supported to allow presentation integration? How well integrated at the user interface level are different parts of the systems? 4. Task management services. This is really for general purpose environments so is probably inapplicable to Java IDEs. 5. Message services. How do different components of the IDE communicate? 6.8 Using the generic model of a language processing system presented here, design the architecture of a system that accepts natural language commands and translates these into database queries in a language such as SQL. Lexical analysis Command parser Parameter analysis SQL code generator Abstract syntax tree Part of speech tagger Dictionary Software Engineering 9 – Solutions Manual ©Ian Sommerville 2010 25 6.9 Using the basic model of an information system as presented in Figure 6.16, suggest the components that might be part of an information system that allows users to view information about flights arriving and departing from a particular airport. Students should consider the levels in the information system and should identify components that might be included at each level. Examples of these components might be: Level 1 (Database level) Flight database; Flight status database; Airport information; Level 2: (Information retrieval level) Status management; Flight management; Search; Level 3: (User interaction level) Authentication; session management; forms processing () Level 4 (User interface) Input checking (Javascript), browser Software Engineering 9 – Solutions Manual Introduction ©Ian Sommerville 2010 26 7 Design and Implementation 7.1 Using the structured notation shown in Figure 7.3, specify the weather station use cases for Report status and Reconfigure. You should make reasonable assumptions about the functionality that is required here. System: Weather station Use case: Report status Actors: Weather information system, weather station Data: The weather station sends a status update to the weather information system giving information about the status of its instruments, computers and power supply. Stimulus: The weather information system establishes a satellite link with the weather station and requests status information. Response: A status summary is uploaded to the weather information system Comments: System status is usually requested at the same time as the weather report. System: Weather station Use case: Reconfigure Actors: Weather information system, weather station Data: The weather information station sends a reconfiguration command to the weather station. This places it into remote control mode where further commands may be sent from the remote system to update the weather station software. Stimulus: A command from the weather information system. Response: Confirmation that the system is in remote control mode Comments: Used occasionally when software updates have to be installed. Software Engineering 9 – Solutions Manual ©Ian Sommerville 2010 27 7.3 Using the UML graphical notation for object classes, design the following object classes, identifying attributes and operations. Use your own experience to decide on the attributes and operations that should be associated with these objects. • a telephone • a printer for a personal computer • a personal stereo system • a bank account • a library catalogue There are many possible designs here and a great deal of complexity can be added to the objects. However, I am only really looking for simple objects which encapsulate the principal requirements of these artefacts. Possible designs are shown in the above diagram. Telephone status (on hook, off hook) number dialled last call directory ring tone display setup-call ( ) clear-call ( ) dial ( ) redial ( ) search ( ) change-ring-tone ( ) edit directory ( ) change volume ( ) change ring volume ( ) Personal stereo song store playlists volume now playing recently played display battery level play ( ) stop ( ) select playlist ( ) select song ( ) search ( ) random play ( ) repeat ( ) change volume ( ) display status ( ) Library catalogue Publication records Transactions Date created Date updated Permissions keyword index new entry ( ) edit entry ( ) delete entry ( ) search ( ) create index ( ) edit permissions ( ) record transaction ( ) Printer document toner level paper status error status display setup-printer ( ) print ( ) cancel print job ( ) self test ( ) startup ( ) shutdown ( ) Bank Account account number account type date opened date closed balance transaction list overdraft limit open ( ) close ( ) credit ( ) debit ( ) show balance ( ) edit overdraft limit ( ) add transaction ( ) list transactions ( ) Software Engineering 9 – Solutions Manual Introduction ©Ian Sommerville 2010 28 7.7 Draw a sequence diagram showing the interactions of objects in a group diary system, when a group of people are arranging a meeting

Show more Read less
Institution
University Of South Africa
Course
INF3705 - Advanced Systems Development (INF3705)











Whoops! We can’t load your doc right now. Try again or contact support.

Written for

Institution
University of South Africa
Course
INF3705 - Advanced Systems Development (INF3705)

Document information

Uploaded on
November 14, 2021
Number of pages
96
Written in
2021/2022
Type
Exam (elaborations)
Contains
Questions & answers

Subjects

  • inf3705

Get to know the seller

Seller avatar
Reputation scores are based on the amount of documents a seller has sold for a fee and the reviews they have received for those documents. There are three levels: Bronze, Silver and Gold. The better the reputation, the more your can rely on the quality of the sellers work.
ExcelAcademia2026 Chamberlain College Of Nursing
View profile
Follow You need to be logged in order to follow users or courses
Sold
2113
Member since
4 year
Number of followers
1648
Documents
8613
Last sold
1 day ago
EXCEL ACADEMIA TUTORS

At Excel Academia Tutoring, You will get solutions to all subjects in both assignments and major exams. Contact me for assistance. Good luck! Well-researched education materials for you. Expert in Nursing, Mathematics, Psychology, Biology etc. My Work has the Latest & Updated Exam Solutions, Study Guides and Notes (100% Verified Solutions that Guarantee Success)

3.7

353 reviews

5
145
4
78
3
64
2
21
1
45

Trending documents

Recently viewed by you

Why students choose Stuvia

Created by fellow students, verified by reviews

Quality you can trust: written by students who passed their tests and reviewed by others who've used these notes.

Didn't get what you expected? Choose another document

No worries! You can instantly pick a different document that better fits what you're looking for.

Pay as you like, start learning right away

No subscription, no commitments. Pay the way you're used to via credit card and download your PDF document instantly.

Student with book image

“Bought, downloaded, and aced it. It really can be that simple.”

Alisha Student

Frequently asked questions