What is specialized software made




















You may not be needing many of these functionalities and may be using just some features. The tools become bulky and difficult to operate due to this. The ease of use increases productivity and reduces costs by automating repetitive tasks. This will increase your profits and lower the cost involved further.

Many times, off- the- shelf companies release newer versions of their software and they stop all support for older versions. You can run your business without worrying about an off-the-shelf software that is being used to run your entire business or a critical function may be discontinued and no further updates or improvements can be received. Most of the time, continuous support is built into your contracts with outsourcing partners which means there will be a dedicated team that they will provide you to maintain the software.

This provides better problem solving and defect fixing than the support provided by off-the-shelf software. The response and resolution time are faster with custom software development and this can be ensured by building Service level agreements SLAs in your contracts. You can get all kinds of unique features built into the system which your competition may not have. You have a unique solution in hand which can become your USP unique selling proposition and gives a competitive advantage to you over your competitors.

An off-the-shelf software is rigid and you need to align your processes against it. While it may pay in the long run, the initial investment may be a little overwhelming for some organizations. Apart from investment in terms of money, a huge time investment is required to complete the software development process. While off-the-shelf solutions will give benefits quickly, it may take months or years to actually get the custom software delivered.

The organization need to invest a lot of their time in providing requirements to the outsourcing company or to your in-house software development team. An off-the-shelf software has been tested for all defects, has gone through elaborate usability tests and is ready to use when it reaches your desk. This whole time spent in various software development phases may be draining for you or the teams working with the outsourcing partner.

Specialized is making its e-bikes much smarter with a host of new features on the software side. That includes over-the-air software updates, meaning customers can enjoy new features as Specialized develops them over time. If you want more of a workout while riding, you can decrease the amount of support or vice versa if you feel like arriving at your destination nice and dry. Once locked, the motor cannot be activated by anyone else but the owner.

Perhaps one of the coolest new features is the inclusion of a rear-facing Garmin radar to detect vehicles as they approach from behind as you ride. Garmin says its radar can detect objects from up to meters away, which should provide a comfortable buffer for anyone experiencing justifiable anxiety about riding alongside car traffic. Riders can also opt for a haptic alert for approaching vehicles if they want to be extra cautious.

The bikes are available as both Class 1 pedal assist with a top speed of 20 mph and Class 3 speed pedelecs with a top speed of 28 mph. The new Vados are Class ,3 as well as Como 5. All of the Tero bikes as well as Como 3. The Specialized 2. And the Wh battery is fully integrated, lockable, and on some versions of the Turbo bikes even removable. Answer: Possible non-functional requirements for the ticket issuing system include: Between and in any one day, the total system down time should not exceed 5 minutes.

Between and in any one day, the recovery time after a system failure should not exceed 2 minutes. Between and 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. After the customer presses a button on the machine, the display should be updated within 0. The ticket issuing time after credit card validation has been received should not exceed 10 seconds.

When validating credit cards, the display should provide a status message for customers indicating that activity is taking place. This tells customer that the potentially time consuming activity of validation is still in progress and that the system has not simply failed. The maximum acceptable failure rate for ticket issue requests is 1: 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. Using the technique suggested here, where natural language descriptions are presented in a standard format, write plausible user requirements for the following functions: An unattended petrol gas pump system that includes a credit card reader.

The customer swipes the card through the reader then specifies the amount of fuel required. The cash-dispensing function in a bank ATM. The spelling-check and correcting function in a word processor. Answer: Fuel delivery system 1. The customer inputs either a cash limit or a maximum amount of fuel to be delivered The customer validates the transaction by providing credit card account details. By specifying a maximum, the system can check if credit is available.

Note that the definition does not set out how credit card details should be provided. The pump is activated and fuel is delivered, under customer control. The transaction is terminated either when the pump nozzle is returned to its holster for 15 seconds or when the customers fuel or cash limit is reached.

Rationale: Termination should not be immediate when the nozzle is returned as the customer may wish to restart the transaction e. A receipt is printed for the customer. The fuel stock is updated. Section 1 Dispensing cash 2. If the amount breaches either of these limits, then a message is issued which tells the customer of the maximum amount allowed and the transaction is cancelled.

Section 2. Section 7. Suggest how an engineer responsible for drawing up a system requirements specification might keep track of the relationships between functional and non-functional requirements. Answer: 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 non-functional 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 also be related by including them in a table to explicitly identify the relationship.

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. Answer: 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. The Withdraw cash option is selected. The customer is promoted with a request for the amount of cash required and inputs the amount. Before the cash is dispensed, the card is returned to the customer who is prompted by the machine to take their card.

Card is retained by machine; Customer advised to seek advice. Customer is request to rekey PIN. If incorrect after 3 attempts, card is retained by machine and customer advised to seek advice. Card returned to customer. Page 17 of 44 4. Who should be involved in a requirements review? Draw a process model showing how a requirements review might be organized.

Answer: A requirements review is a process where a group of people from the system customer and the system developer read the requirements document in detail and check for errors, anomalies, and inconsistencies. A requirements review is a manual process that involves people from both client and contractor organisations.

They check the requirements document for anomalies and omissions. The review process may be managed in the same way as program inspections. Alternatively, it may be organised as a broader activity with different people checking different parts of the document.

Requirements reviews can be informal or formal. Informal reviews simply involve contractors discussing requirements with as many system stakeholders as possible. 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.

Answer: Figure below shows a change process which 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.

Page 18 of 44 4. You have taken a job with a software user who has contracted your previous employer to develop a system for them. Discuss what you should do in such a situation. You know that the costs to your current employer will increase if the ambiguities are not resolved. However, you have also a responsibility of confidentiality to your previous employer.

Answer: The key here is the ambiguities…. I would discuss the ambiguities, and email a bullet pointed list of the specific ambiguities and recommendations to my current employer specific decision maker.

As a system developer, explain to your team members types of non-functional requirements? Answer: Non-functional requirements are those which describe aspects of the system that are concerned with how well it provides the functional requirements. Give 5 reasons why eliciting requirements is difficult? Stakeholders in a system naturally express requirements in their own terms and with implicit knowledge of their own work.

Different stakeholders have different requirements and they may express these in different ways. Requirements engineers have to discover all potential sources of requirements and discover commonalities and conflict.

Political factors may influence the requirements of a system. Managers may demand specific system requirements because these will allow them to increase their influence in the organization. The economic and business environment in which the analysis takes place is dynamic. It inevitably changes during the analysis process. The importance of particular requirements may change. New requirements may emerge from new stakeholders who were not originally consulted.

What is the distinction between functional and non-functional requirements? Answer: Functional requirements define what the system should do. Non-functional requirements are not directly concerned with specific system functions but specify required system properties or place constraints on the system or its development process.

What are the main advantages of using a standard format to specify requirements? What checks should be applied during requirements validation? Answer: Validity checks Consistency checks Completeness checks Realism checks The verifiability of the requirements should be assessed Chapter 5 5. Explain why it is important to model the context of a system that is being developed. Give two examples of possible errors that could arise if software engineers do not understand the system context.

Answer: Page 20 of 44 At early stage in the requirements elicitation and analysis process software engineers should decide on the boundaries of the system.

Software engineers should make these decisions early in the process to limit the system costs and the time needed for analysis. The definition of a system boundary is not a value-free judgement. The position of the system boundary has profound effect on the system requirements. Social and organisational concerns may mean that the position of a system boundary may be determined by non-technical factors.

Two Examples: Software engineers may give an incorrect system environment in requirements documentation System cost and time of system analysis may increase in the future because the wrong system boundary was defined in the previous process.

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? Answer: a Using an existing model during requirements engineering will decrease the system cost and time when setting up the corresponding system model.

It is difficult to determine whether the chosen model will fulfil the requirements of the current proposed system. System modelling is a process of developing abstract models of a system, with each model presenting a different view or perspective of that system.

It only helps the analyst to understand the functionality of the system and models are used to communicate with customers. System models are determined by the functional and non-functional requirements, therefore different systems have different system models to fulfil the system requirements and there is no complete or correct system.

Engineers use these models to discuss design proposals and to document the system for implementation. You have been asked to develop a system that will help with planning large-scale events and parties such as weddings, graduation celebrations, birthday parties, etc.

Using an activity diagram, model the process context for such a system that shows the activities involved in planning a party booking a venue, organizing invitations, etc. Develop a sequence diagram showing the interactions involved when a student registers for a course in a university. Courses may have limited enrollment, 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. Answer: Page 21 of 44 5. Look carefully at how messages and mailboxes are represented in the e-mail system that you use.

Model the object classes that might be used in the system implementation to represent a mailbox and an email message. 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. Draw a sequence diagram for the same system. Explain why you might want to develop both activity and sequence diagrams when modeling the behavior of a system.

The system should allow the telephone customer to dial in from any location, type a sequence of numbers identified as tones , and play any recorded messages. 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?

Is expertise already available or will extensive training be required. 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 The likely lifetime of the software that you are developing. MDA is most suitable for long-lifetime systems Requirements for high performance or throughput MDA relies on code generation that creates code which may be less efficient than hand written code The long term benefits of using MDA are there real cost savings from this approach The enthusiasm of the software developers.

Answer: An external perspective An interaction perspective A behavioural perspective A structural perspective. Your manager expects you to inform him how an already existing system might be used. Elaborate on how you might use a model of a system that already exists?

See above 5. Activity diagrams can be used to describe the business and operational step-by-step workflows of components in a system. An activity diagram shows the overall flow of control. Use case were developed originally to support requirements elicitation and now incorporated into the UML.

Each use case diagram represents a discrete task that involves external interaction with a system. Actors in a use case diagram may be people or other systems. Sequence diagrams: Sequence diagrams are part of the UML and are used to model the interactions between the actors and the objects within a system. A sequence diagram shows the sequence of interactions that take place during a particular use case or use case instance.

The objects and actors involved are listed along the top of the sequence diagram, with a dotted line drawn vertically from these. Interactions between objects are indicated by annotated arrows. Class diagrams: Class diagrams are used when developing an object-oriented system model to show the classes in a system and the associations between these classes: An object class can be thought of as a general definition of one kind of system object.

An association is a link between classes that indicates that there is some relationship between these classes. State diagrams State diagrams are used to model the behavior of the system in response to external and internal events. State diagrams show system states as nodes and events as arcs between these nodes. When an event occurs, the system moves form one state to another.

Chapter 7 Page 23 of 44 7. Using the structured notation shown in Figure 7. You should make reasonable assumptions about the functionality that is required here. Draw a use case diagram showing at least six possible use cases for this system.

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.

Using the weather station objects identified in Figure 7. Design an inheritance hierarchy for the objects that you have identified. Develop the design of the weather station to show the interaction between the data collection subsystem and the instruments that collect weather data. Use sequence diagrams to show this interaction.

Identify possible objects in the following systems and develop an object-oriented design for them. You may make any reasonable assumptions about the systems when deriving the design. When an appointment is to be made that involves a number of people, the system finds a common slot in each of their diaries and arranges the appointment for that time. If no common slots are available, it interacts with the user to rearrange his or her personal diary to make room for the appointment. Drivers swipe their credit card through a reader connected to the pump; the card is verified by communication with a credit company computer, and a fuel limit is established.

The driver may then take the fuel required. The credit card is returned after debiting. If the card is invalid, the pump returns it before fuel is dispensed.

Draw a sequence diagram showing the interactions of objects in a group diary system when a group of people are arranging a meeting. Draw a UML state diagram showing the possible state changes in either the group diary or the filling station system. Using examples, explain why configuration management is important when a team of people are developing a software product. Edition 8 Answer: In software development, change happens all the time, so change management is absolutely essential.

That is, if two people are working on a component, their changes have to be coordinated. You also have to ensure that everyone can access the most up-to-date versions of software components, otherwise developers may redo work that has already been done. When something goes wrong with a new version of a system, you have to be able to go back to a working version of the system or component. Edition 9 answer: Page 24 of 44 The aims of configuration management is to ensure that a changes made by different system developers do not interfere with each other and b it is always possible to create a specific version of a system.

Without configuration management it is easy to lose track of the changes that each developer makes to code and for changes made by one programmer to overwrite changes made by another programmer. For example, one programmer may change a component to improve its performance whilst another may correct a bug in the functionality of the component. Without CM, whoever writes the component last to the shared component store will overwrite and so lose the previous component changes.

Furthermore, systems are usually composed of multiple components, each of which exists in multiple versions, where each version as a specific purpose. For example, there may be a version of a system for different platforms such as Windows, Linux and MacOS. These versions have some specific components and some shared components and it is potentially error prone if these versions are assembled without CM tool support.

It is very easy to include the wrong component in a version and this is likely to lead to subsequent software failure. A small company has developed a specialized product that it configures specially for each customer. New customers usually have specific requirements to be incorporated into their system, and they pay for these to be developed. The company has an opportunity to bid for a new contract, which would more than double its customer base.

The new customer also wishes to have some involvement in the configuration of the system. Explain why, in these circumstances, it might be a good idea for the company owning the software to make it open source. Answer: The key benefits of open source are is that it opens up development to a wide range of developers and so accelerates the development and debugging of the product.

Doubling the customer base places immense strains on a small company of they have to take on a lot of new staff and so going open source means that the costs of expansion are reduced. In this case, because the product is specialized to the needs of different users, the company that own the software can still charge these users to make the changes to the system. Hence the loss in revenue from selling the software is compensated by the additional effort available to service more customers.

Furthermore, large companies are often reluctant to buy from small companies who may go out of business, To some extent, open source provides reassurance to customers that, even of the original owners of the software are unavailable, they can get access to the source code and hence continue to maintain their system. Chapter 8 8. Explain why it is not necessary for a program to be completely free of defects before it is delivered to its customers.

Answer: Page 25 of 44 A program need not be completely free of defects before delivery if: Remaining defects are minor defects that do not cause system corruption and which are transient i. Remaining defects are such that they are recoverable and a recovery function that causes minimum user disruption is available. Testing cannot completely validate that a system is fit for its intended purpose as this requires a detailed knowledge of what that purpose will be and exactly how the system will be used.

As these details inevitably change between deciding to procure a system and deploying that system, the testing will be necessarily incomplete. In addition, it is practically impossible for all except trivial system to have a complete test set that covers all possible ways that the system is likely to be used. Explain why testing can only detect the presence of errors, not their absence. Answer: Assume that exhaustive testing of a program, where every possible valid input is checked, is impossible true for all but trivial programs.

Test cases either do not reveal a fault in the program or reveal a program fault. If they reveal a program fault then they demonstrate the presence of an error. If they do not reveal a fault, however, this simply means that they have executed a code sequence that — for the inputs chosen — is not faulty.

The next test of the same code sequence — with different inputs — could reveal a fault. Some people argue that developers should not be involved in testing their own code but that all testing should be the responsibility of a separate team.

Assistive technology AT : products, equipment, and systems that enhance learning, working, and daily living for persons with disabilities. Assistive technology AT is any item, piece of equipment, software program, or product system that is used to increase, maintain, or improve the functional capabilities of persons with disabilities. Assistive technology helps people who have difficulty speaking, typing, writing, remembering, pointing, seeing, hearing, learning, walking, and many other things.

Different disabilities require different assistive technologies. Professional organizations in the field also have helpful websites. For more links, see AT Resources.

Most often, the choice is a decision you make with a team of professionals and consultants trained to match particular assistive technologies to specific needs. An AT team may include family doctors, regular and special education teachers, speech-language pathologists, rehabilitation engineers, occupational therapists, and other specialists including consulting representatives from companies that manufacture assistive technology. Find out more about how various professionals can help you at the websites of their professional organizations:.

Service organizations and manufacturers offer important information as well. The answer depends on the technology, the use, and the user. Many kinds of AT may cost you little or nothing, even for some very expensive items.

Some examples:. Other sources of funds in states or communities include private foundations, charities, and civic organizations.



0コメント

  • 1000 / 1000