# data[].attributes.headline
Suggest the most appropriate generic software process model that might be used as a basisfor managing the development of the following systems. Explain your answer according to the type of system being developed: i) A system to control antilock braking in a car ii) A university accounting system that replaces an existing system

# data[].attributes.subject
Suggest the most appropriate generic software process model that might be used as a basisfor managing the development of the following systems. Explain your answer according to the type of system being developed: i) A system to control antilock braking in a car ii) A university accounting system that replaces an existing system

# data[].attributes.headline
Incremental software development could be very effectively used for customers who do nothave a clear idea about the systems needed for their operations. Discuss.

# data[].attributes.subject
Incremental software development could be very effectively used for customers who do nothave a clear idea about the systems needed for their operations. Discuss.

# data[].attributes.headline
Suggest why it is important to make a distinction between developing the user requirement sand developing system requirements in the requirements engineering process.

# data[].attributes.subject
Suggest why it is important to make a distinction between developing the user requirement sand developing system requirements in the requirements engineering process.

# data[].attributes.headline
Explain why professional software that is developed for a customer is not simply the programs that have been developed and delivered.

# data[].attributes.subject
Explain why professional software that is developed for a customer is not simply the programs that have been developed and delivered.

# data[].attributes.headline
What is the most important difference between generic software product development and customsoftware development? What might this mean in practice for users of generic software products?

# data[].attributes.subject
What is the most important difference between generic software product development and customsoftware development? What might this mean in practice for users of generic software products?

# data[].attributes.headline
Briefly discuss why it is usually cheaper in the long run to use software engineering methods and techniques for software systems.

# data[].attributes.subject
Briefly discuss why it is usually cheaper in the long run to use software engineering methods and techniques for software systems.

# data[].attributes.body
Professional software might be used by other people and changed by other engineers. This means that you need to provide more than just the programs and provide documentation, the code, program guides and also documenting program design.

# data[].attributes.body
Professional software engineers might need to provide more than just a working program. They might need to provide help on how to accually use the software that they have created for the customer.

# data[].attributes.body
The most important difference between generic software product development and custom software development is that the custom one is made for a specific purpose, it might be a company that needs a specific software, whilst a generic software might be a pre-programmed spreadsheet for example. This might mean that users of generic software need to change some parameters for the software to work for their purpose

# data[].attributes.body
The key difference between generic and custom software is that custom made software is made by request of for example a company for a specific purpose while generic software might need to be tweaked to work the right way. Users of generic software might need to change some parts of the software to use it for there specific purpose.

# data[].attributes.body
It is usually cheaper in the long run because you often don't want to start from scratch, you want to reuse different systems to create a new and better one using different types of methods and techniques. This will save money and time when you don't start over each time.

# data[].attributes.body
There is alot more around the software than just the program. you might also need to be able to provide customer service for the software

# data[].attributes.body
It will probably be cheaper to use the code from similar programs as the one you are trying to make than start the whole project from nothing. It will save a lot of time if the developer starts with some code than to start with nothing.

# data[].attributes.body
Custom software development is made for a specific purpose, for example by a customer. While generic software develompent is as the name suggests, generic and the customer might have to change parts of the products for it to work for the customers purpose

# data[].attributes.body
It usually is cheaper because when you have to change something in the software or add something new, you dont have to redo the entire system. Instead you can change the already existing one instead and not waste time starting over from the beginning

# data[].attributes.body
According to Sommerville, professional software is just not the bits and bytes that make up the software itself: It is a whole ecosystem of services around the software that makes it "professional". Important examples of this includes quality assurance and documentation, software that may not work, and the user has no idea how to interact with is unsurprisingly seen as unprofessional. A mildly humorous consequence of this definition is that Sommerville indirectly states that open source software may never be professional: floss is seldom extensively documented and ALWAYS provided AS-IS, thus no QA guarantees.

# data[].attributes.body
One way to view the distinction between is to ask whether the developer or the consumer has control over software specification. If the developer has it then it is generic software, and they have all the power, the consumer is mostly just along for the ride, if the developer wants a GUI redesign but user not then it is bad times for the user. The other case is bespoke software, and now the consumer is calling the shoots and may dictate to the developer what features shall and shall not be priorities.

# data[].attributes.body
A professionally developed software system consist of several separate programs and configuration files to set up these programs. It also consist of system documentation describing the structure of the of the system, system documentation which explains how to use the system, and websites for users to download recent product information.

more_vertical

# data[].attributes.body
Sommerville asserts this on p:22-23 and rapidly moves on without much elaboration or citation. This claim is a bit more agreeable when one considers the counterfactual: only going on gut instinct and following no particular structure at all does not seem like a recipe for success when developing, say, a missile guidance system.

# data[].attributes.body
Generic software development are made for similar companies that have similar types of business needs. Hence, software companies develops generic software on their own for groups of customers with similar requirements.

Custom software development develops products for an individual clients and that can be a  company or a group of persons.

Generic clients may need to do some changes so the software works for the companies specific needs.

# data[].attributes.body
The majority of costs are the ones of changing the software when already in use and this applies to most systems.

# data[].attributes.body
Professional software that is developed for a customer is probable to change during its lifetime. Since professional software is not just program but also includes associated documentation, libraries and configuration data, it is not just about the programs that have been developed and delivered.

# data[].attributes.body
The main difference is that generic products are stand-alone systems developed and sold to an open market. It is designed and developed for the general public to use. On the other hand, customized software are developed for a specific reason on a more individualistic customer demand. In practice for users of generic products, this means that the product may not be applicable for their specific intention of use or an upgraded version of the generic product may hinder the user to use it.

# data[].attributes.body
The software process comes with some benefits that in turn reduces costs in the long run. The software process will make sure that the work is done correctly and thoroughly the first time and also account for the evolution of the software product. It also ensure the control of making product that meet demands and specifications.

# data[].attributes.body
Professional softwares are intended to be used by other parties rather than the developers themselves. Furthermore, professional softwares use techniques and procedures making them more reliable, cost-effective and scalable compared to computer programs built personally. Other key differentiating factors could be that professional softwares require documentation, user support manuals, user platform support and special consideration to maintenance and scalability. Moreover, programs built professionally are usually developed more quickly then computer programs that are built and delivered for non-professional use.

# data[].attributes.body
The software developed for a customer will most likely be used and altered by other personel. To make the transition of one developer to another, documentation about the use and design of the code becomes important. To seamlessly being able to update and change the code no matter the developer is of high value to a customer. Then it is no longer only about the program but also all the information surrounding it.

# data[].attributes.body
Generic software development is targeted at a larger purpose while custom software is highly specific. The custom software is developed purely by the standards of the customers needs. In practice the users of generic software products might have to alter the program to fit their purpose.

# data[].attributes.body
The generic- and custom softwares differ in terms of software specification, meaning who owns the specification. Generic softwares are normally developed upon market requirements and for everybody. Here the developer owns the specification of how the software might look like. Conversely, custom softwares are developed upon specific customer requests for example an ERP system for a company. It is important to note that these differences are now increasingly blurred into each other or in other words a large number of generic and custom software systems are built on top of each other.

# data[].attributes.body
In software the cost of constantly making new, slightly better, products is much higher compared to constantly updating your product. The development process will ensure the software executes as intended and meets the customers requirements. It will also implement features to continuously evolve the product, such as documentation to easily understand the code.

# data[].attributes.body
Computer softwares developed from the perspective of software engineering methods are considerably cheaper in terms of maintainence and scale-up after the software has been deployed, partly because the entire software does not need to change but just a number of resuable components. This makes the devlopement and modification of softwares greatly cheaper since the program does not need to be built from the scratch.

# data[].attributes.body
Professional software made for customers is not simply develop and deliver since there is a responsibility to document, maintain and continuous development within a dedicated team. Documentation includes how to use the software for the customers and how the software is built for the software engineers.

# data[].attributes.body
Difference between generic and custom software is customer requirements. Custom software is made for a specific customer use case.  Generic software is made for a broader customer spectrum. Generic product development means that the requirements comes from the Organisation itself, while custom software has requirements from the organisation that needs the custom solution.

# data[].attributes.body
To use methods, frameworks and common tools help instead of writing software from scratch helps the development and the development cost. Creating your own framework or methods techniques takes time and money to develop and implement.

# data[].attributes.body
A professional software that is develped for customers has to have the ability to change and improve, regardless of the developer. It is therefore important for the software to come with documentation so that the code can be improved and maintained.

# data[].attributes.body
The key difference between generic software and custom software is the target customer/customers. A custom software can be made with a specific purpose in mind, requested by a company for example. While a generic software is more generalized for a bigger group of customers. This means that it might need some tweaking before being put into use by a company.

# data[].attributes.body
It can be much cheaper and efficient to work and improve on already existing code and programs, instead of creating new programs each time. It can also be way easier to ensure that the program is working as intended if it is a improvment from an already exsisting and working program. This instead of creating a new one from scratch.

# data[].attributes.body
Because the programs are also accompanied by necessary documentation such as manuals and requirements

# data[].attributes.body
The most important difference would probably be that generic software product development is that it produces a product for a more broad potential customer base, meanwhile custom software development is when a product is developed specifically to the specifications of a customer, which is more like a service rather than just a product.

# data[].attributes.body
It's usually cheaper because when software engineering methods are applied to a project many things are taken into consideration and certain techniques and protocols are followed which results in a more smooth development. This will also result in the project being completed faster with less resources spent.

# data[].attributes.body
Professional software developed for a customer will probably be used by, and changed by other people and engineers after development. Because of this software engineers need to supply documentation and data along with the programs to make sure the software can be used and changed.

# data[].attributes.body
A program provided for a customer does include other documents and inbuilt data configuration. It is good for engineers and users so that they can update or change the software effectively.

# data[].attributes.body
The difference between generic software product development and custom software development is that in generic development, the developer controls the software specification, while in the case of custom software the customer usually develops and controls the specification.

# data[].attributes.body
Using software engineering methods and techniques will help create dependable software quickly at lower costs by making sure developer and customer agree on specification and requirements of the system during the process. This can save both time and help keep costs low by lowering the risk of having to redo something.

# data[].attributes.body
The difference is that in generic software the software could be designed and developed for various costumers. In custom software, the software is usually developed for one specific customer.

# data[].attributes.body
Software engineering methods contains different strategies that lower the total cost of a project and saves time as you don't have to develop your own techniques.

# data[].attributes.body
Professional software developed for a customer – someone else than the developer – often include items such as documentation for the software system, user documentations, and websites with updated product information. This is essentially to provide a guide to the system, explaining it to users and engineers that might change it in the future.

# data[].attributes.body
The biggest difference is that the developers control the software specification of the generic software product, while the customer controls the customized one. If something doesn’t go according to plan during the development of the generic product, the developers can rethink the goal product, but for the customized product, the customer still has the final say, and the developers can’t stray from that specification.

# data[].attributes.body
It’s cheaper in the long run to use already established and tested methods and techniques than to write a completely new program without them that will need testing, quality assurance, and long-term maintenance, all of which lead to higher costs.

# data[].attributes.headline
Discover ambiguities or omissions in the following statement of the requirements for part of a drone system intended for search and recovery: "The drone, a quad chopper, will be very useful in search and recovery operations, especially in remote areas or in extreme weather conditions. It will click high-resolution images. It will fly according to a path preset by a ground operator, but will be able to avoid obstacles on it sown, returning to its original path whenever possible. The drone will also be able to identify various objects and match them to the target it is looking for."

# data[].attributes.subject
Discover ambiguities or omissions in the following statement of the requirements for part of a drone system intended for search and recovery: "The drone, a quad chopper, will be very useful in search and recovery operations, especially in remote areas or in extreme weather conditions. It will click high-resolution images. It will fly according to a path preset by a ground operator, but will be able to avoid obstacles on it sown, returning to its original path whenever possible. The drone will also be able to identify various objects and match them to the target it is looking for."

# data[].attributes.headline
Rewrite the above description using the structured approach described in this chapter. Resolve the identified ambiguities.

# data[].attributes.subject
Rewrite the above description using the structured approach described in this chapter. Resolve the identified ambiguities.

# data[].attributes.headline
Using natural language descriptions 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 fuel is delivered and the customer’s account debited."

# data[].attributes.subject
Using natural language descriptions 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 fuel is delivered and the customer’s account debited."

# data[].attributes.body
i) A system to control antilock braking in a car. This is a safety-critical system and thus needs to be thoroughly analyzed and documented before the implementation begins. It could be very dangerous for the driver and the other drivers in the environment in which the system is implemented if it was implemented too early. Therefore, the waterfall model is suitable for this system.

ii) A university accounting system that replaces an existing system.

Since it already is an existing accounting system at the university, it is convenient to configure the system in place and integrate the configuration to replace the old system. There are a lot of features and functionality in the old system that most probably stay the same in the new, which make the integration and configuration model the most suitable.

# data[].attributes.body
Incremental software development is designed for development where the software is not fully mapped out or can't be fully planned. By incrementally adding functionality and features, one can more effectively reverse functionalities and features that the customer sporadically decides to not be included, as well as add new which may fit the customers new ideas. The incremental development process model is more dynamic and subjective to constant feedback and changing of ideas.

# data[].attributes.body
i) Due to safety precautions the best choice for this type of project would be a plan-driven project design. This means that each phase will go trough a  separate process, where testing phase will be very important in this type of project.

ii) University accounting system could be developed with an Scrum methodology depending on the time schedule as a whole. Since there is an existing accounting system, the requirements could be very clear so plan-driven development could also be an option.

# data[].attributes.body
Since the specification can change during the incremental software process, this type of project model is desirable. This will enable the customer to change the specification during the development. Incremental software process can produce an prototype relative fast which can help the customer with their specification.

# data[].attributes.body
User requirement and perspective is different from engineering requirement and perspective. User requirement comes from functions and constraints that affect their software experience or business problem. Engineering requirement derives from a technical standpoint where constrains for example can be technical complexity.

# data[].attributes.body
A distinction is important because there are many people that will use and view the requirements from different perspective. The system requirements provide more specific information about the service being developed which is useful for the ones that are actually going to create the service. On the other hand, the user requirements gives a more general view over the service which is more convenient for the project manager or the people that decides if the service is worth creating. To sum up, a distinction is needed since a lot of people look at the requirements from lots of different points of view.

# data[].attributes.body
i) What does it mean with search and recovery operations

ii) Remote areas - how far from the ground operator?

iii) High-resolution images - How high resolution images?

Iiii) Identify various objects - Which objects?

# data[].attributes.body
Function - Self-operating Drone with photo capture, path exploration, object detection  and obstacles avoidance.

Description - The drone, a quad chopper, shall be able to search and recover to start position. Drone should be able to manoeuvre  in remote areas or in extreme weather conditions.

Input - Map path provided by ground operator

Output - Object detection result and images from drone

Requirements - Map path provided by ground operator

Pre-condition - A working condition Drone

Post-condition - The drone is recovered to start position

Action - It will fly according to a path preset by a ground operator, with maximum 5km range. Drone should have image capture capabilities with 4K resolution. Drone will be able to avoid obstacles on it’s own, returning to its original path whenever possible. Obstacles and identify various objects includes trees, mountains and animals.

# data[].attributes.body
After the customer swipes their card, the system shall register the bank card and authenticate the user at the customer’s bank. Once the customer specifies the amount of fuel, the system delivers the fuel then send a request to the bank for customer’s account debit.

# data[].attributes.body
i) A system to control anti-lock braking

A system to control anti-lock braking is a safety-critical system where dependability is the most important factor. I suggest using the Waterfall Process when developing this system. A safety-critical system should not be subject to constant changes, because this could degrade the system structure. Instead, a safety-critical system needs to be well planned with well-specified requirements, and using the Waterfall model means approving each phase before moving on to the next making it easier to analyze and oversee project progress.

ii) A university accounting system that replaces an existing system

For this system I suggest using a reuse-oriented proces. Because the accounting system is to replace a previous system, searching for components to use should be easy, which can help reduce cost, risk and speed-up delivery. A negative effect could be that reusing components might not help meet the needs of the users.

# data[].attributes.body
Using a incremental software development proccess means developing a system bit by bit and giving the customer a chance to evaluate the system at an early stage and recommend changes if the system doesn't meet the requirements. The customer might have an idea about certain requirements, but not all, and developing incrementally makes it easy for the customer to give feedback.

# data[].attributes.body
Professional software developed for a customer is available for the public and it is important for it to consist of documentation, code, program and processes so we can go back to the documentation and understand the software after for example engineers and develepors change the software.

# data[].attributes.body
Generic software product development is when software is developed as a template for the public. This means that the software does not neccersly work for the company/indivdual purpose but can be used  as a template and then changed so it can fullfill and work the customer's purpose. Custom software development is when software is developed after a specific customer needs so it can fullfil and work the customer’s specific purpose.

# data[].attributes.body
By using software engineering methods and techniques when creating software systems it is both financially better but also timewise more effective. Instead of creating a software system from the very begining and facing challenges and failure that will be both timeconsuming and expensive, you could develop a software system by using software engineering methods and techniques such as using already existing code. In that way you can modify and change the provided code, created and developed by experienced people,  after your softwares needs and purpose and save both time and money on resources that were used beforehand when creating the already existing code that was provided.

# data[].attributes.body
Professional softwares are developed with industrial standards that the customer might not be aware of. One example is documentation that can help to maintain the program the customer asked for.

# data[].attributes.body
Generic software is not specific to any specific customer. That means users of generic software should accept less software functionality since they can’t control the software specification.

# data[].attributes.body
Maintainability, testability, and quality assurance are practices that are applied by software engineerings, and are essential for a sustainable software system. These practices usually establish robust software that has fewer bugs and less downtime, which helps avoid expensive reactive work later.

# data[].attributes.body
The waterfall model will suit the anti-lock braking system well since the requirements for such a system are already well-defined. On the other hand, since there is an existing accounting system, it would be handy to use the integration and configuration process model since it’s more likely to reuse existing components.

# data[].attributes.body
Incremental software development is when software is developed step by step where each step receives feedback from users. This makes it easy for developers to go back and further develop until the step is fullydeveloped and considerd “passed” by the users. After receiving feedback and improving the software several times so functionality after users' needs are added/taken away from the software, the software is considered finished.

# data[].attributes.body
With incremental software development model, it’s easier to iterate on ideas. For example, if there are end-users that use the product, they can give feedback about what features can be added. Moreover, this approach avoids unnecessary features and functionality that might not be needed by the end-users in the first place.

# data[].attributes.body
In the requirements engineering process we develop the specification of the software we want to develop. We start by establishing the user requirements and then we go on to system requirements. The difference between user and system requirements is that user requirements is what the system needs from a user's perspective described in a natural language. Meanwhile, system requirements is what the system needs in order to fullfill the needs of the users and is a more detailed description of what the system needs to be developed and is often provided for the system developers since they need a more detailed description.

# data[].attributes.body
Usually, user requirements and system requirements have different stakeholders. For example, User requirements provide high-level detail about the functionality. While system requirements have to be more specific about the functionality so that the implementation will be precise, more importantly, it should help avoid misfortunes.

# data[].attributes.body
What does high-resolution mean? A better approach is to specify the camera's megapixel.

Should the statement mention other import parts such as battery capacity?

How will it avoid the obstacles when needed?

How will the drone be able to identify an object, and with whom will it match them with?

# data[].attributes.body
The gas pump system shall allow customers to swipes their card so they can state the amount of fuel they want.

# data[].attributes.body
(Assuming structured natural language).

1.1 The drone shall be a quad chopper.

2.1 The drone shall be able to take 8mb images.

3.1 The drone shall be able to fly according to a path preset by a ground operator.

3.2 The drone shall be able to avoid obstacles using computer vision on its own and should return to its original path.

4.1 The drone shall be able to identify given objects and match them to a given target.

# data[].attributes.body
A system to control antilock braking in a car would probably need a very plan driven software process model, so the waterfall model would be fitting which includes planning and scheduling all the processes activities before you start working on them. A University accounting system that replaces an existing system would definitely make good use of the Reuse-oriented software engineering model, since we're replacing an existing system with a newer model we want to reuse and integrate older components from the preexisting system.

# data[].attributes.body
It could be used for that scenario since it interleaves specification, development and validation. With this in mind the customer that isn't sure about the specifics for the system needed can give comments to the developers and incrementally build up the system until they're satisfied

# data[].attributes.body
It's important because the user requirement describes the effects that need to be achieved while the system requirement describe what the software must do, regardless of the immediate effect the software has to the user.

# data[].attributes.body
How will it be able to avoid obstacles on it's own? How will it be very useful in a search and recovery operation. The statement is also omitting how it's going to be functional in extreme weather conditions.

# data[].attributes.body
1. The drone will be a quad chopper.
2. The drone needs to be resistant to extreme weather conditions
3. The drone will be able to operate in a remote environment.
4. The drone will be able to take high-resolution images.
5. The drone needs to be able to fly a preset path, laid out by the operator.
6. The drone will be able to detect obstacles interfering it's path.
7. The drone will return to it's original path once the obstacle has been cleared.
8. The drone needs to be able to identify specific objects set out by the operator.
9. The drone needs to match the identified objects with things the operator is searching for to complete it's search.

# data[].attributes.body
When the user uses the credit card reader the user will be prompted to specify the amount of petrol it wants to purchase in metric liters. After the petrol has been transferred into the vehicle with the specified amount of liters the users credit card will be debited and the transaction completed.

# data[].attributes.body
1. The embedded control system for antilock braking in vehicles must be safety critical because there are no room for errors. These system are burned in to read-only memory and therefor very expensive to change. It also require extensive verification and validation due to the extremely high costs of recalling cars because of software problems so the waterfall model should be the system to choose.

The waterfall model is a plan driven process where you plan, schedule and test all the process activities     before moving to the next phase and ultimately developing/completing  the end product.

2. Accounting systems are stand alone systems produced by a companies/organisations for customers able to buy them. In this case when they replacing an existing system, a good approach should be an integration and and configuration process where the reusable components being configured and integrated into the new system.

# data[].attributes.body
It's effective because each requirement are split in interrelated units. Each module goes through the design implementation, requirements and testing phases and the following module of add functionality to the previous version until fulfilment of the system is reached.

The customer in this case doesn’t have a clear idea of how the system should work. Incremental models are more flexible, easier to test and debug and hence the errors can be recognised easier. Also the customer gets knowledge of important functionalities early in the process.

# data[].attributes.body
System requirements need thorough descriptions of the software systems functions, constraints and services. The functional specification defines exactly what will be implemented.

User requirements are written in natural language and can vary from broad statement to detailed descriptions of what the software system is expected to provide.

It is important to distinction, because different type of readers use them differently.

The readers of user requirements are usually not concerned of the implementation or detailed solutions of the system, but the readers of the system requirements on the other hand need precise knowledge of the system because they are involved in the implementation of the system and how it will support the business processes.

# data[].attributes.body
A) The water fall process model is most suitable for a system to control anti-lock braking in a car. That is, this process is  based on sequential development and our use case which is a hard real time system, profound theoretical analysis are important in early stage. In short we can not deploy the software system for our anti-lock braking functionality unless all requirements have been fullfilled.

B) For a university's accounting system we will probably need the configuration and integration model because partly the requirements are known to us and partly the reusability of already developed components will be needed in newer versions.

# data[].attributes.body
Since the incremental software development focuses on  devloping software and testing them gradually via customer feedback, functionality review and changes until the customer requirements have been fullfilled. Here the customer does not know or is unsure about what functionality is needed so therefore testing the system at every stage and then coming up with sugestions and feedback would make the system very useful. This development method could either be agile, plan-driven or a mixture.

# data[].attributes.body
Yes, it is important to distinguish between user requirements and system requirements. Because if user requirements are not properly calssified and known then the system requirements cannot be met. User requirements are clearly spoken up which are functions and features and system should have wheras system requirements are discussed and analyzed in depth.

# data[].attributes.body
This seems to be a very high level overview of system requirements so this description should be broken down in alot further details in the requirements engineering process. Why? Here are the reasons:
1. What type of search and recovery operations?
2. "High-resolution images", what image resolution is considered best and satisfactory respectively. Should the drone be able to take images at night? Where will the taken images be stored?
3. What will happen if the target is found?
4. How will the drone scan for targets? Machine learning? thermal cameras? ...
5. "The operator can preset the destination for the drone", Should the operator control the drone in real time?
6. What will be happen if the drone collided with obstacles? lost connection to the ground stations? any backup communication?
7. How high should the drone fly?

# data[].attributes.body
1. Research and recovery drone i.e, in natural disaster.
2. The drone should be able to take images even in bad vision conditions such as night.
3. When target is found an alarm should be sent to the ground operator or rescue team on the ground.
4. The drone will fly acording to the given destination by the ground operator.
5. The drone requires match target match (or target-like image) and the path to provide the required functionality.
6. The drone should be able to detect objects in order to avoide collisions.
7. The drone should report if it is no longer functionning upon a collision (If it is possible? The communication system is not yet damaged).
8. The drone should have by default a return path.
9. Images taken will be stored in clouds.
10. The drone should have backup communication channels for example if a satelite or a cellular link is out of function, the drone should use the backup communication channel to keep working.

# data[].attributes.body
When the user swipes the credit card and is authenticated (otherwise rejected) the system should ask for amount of fuel to be delivered. The user should either specify the amount fuel such as a certain liters  or either let the system to fully tank the car (The system should know when the tank storage is full to stop flowing fuel or when the user runs out of money, or the fuel nozzel gets out of contact with the car tank to avoid flowing fuel on the ground). The amount of fuel and corresponding money should be displayed in real time by a nice interface. User authentication and enough money check should not take long time (i.e., longer than 5-10 seconds).
When the desired amount of fuel has been delivered and the payment has been through, the user should be given confirmation by printing an encrypted receipt where bank details are hidden.

# data[].attributes.body
To produce professional software does both documentation and technics/methods to ensure the final product. The documentation ensure that support, version handling and new developers can be joined. Note, user guides is part of the documentation. The purpose of documentation is to specify the product, remembering details and aspects, not repeating mistakes and make the rolls such as developer, owner and user independent of specific persons which means that the products value increase. Technics/methods how the product will be used (use cases) and for example how security will be provided. The purpose of this technics/method is to validate the product, shrink the amount of work to develop the product and to ensure the value of the product.

# data[].attributes.body
The difference between generic software and bespoke software is that the developer team decide how, why, what, when a product will be designed or the costumer. A generic product is run by the developer team and the bespoke software is run by the costumer. For the suer of a generic software does it mean in particular that the user impact is very small, thus it can be hard or impossible to customize the product and or get changes at a certain time.

# data[].attributes.body
The challenge for Software system is that they have to be scalable, running for long times and has to be secure. It is nearly impossible to ensure a software system which will provide all functionality needed and required in the futter both due to technical innovation and organization development. Thus, will it be cheaper to use technics and methods which has been validated to develop software systems to avoid costly changes/updates later. Simply, do not reinvent the wheel.

# data[].attributes.headline
For the Mentcare system, propose a set of use cases that illustrates the interactions between a doctor, who sees patients and prescribes medicine and treatments, and the Mentcare system.

# data[].attributes.subject
For the Mentcare system, propose a set of use cases that illustrates the interactions between a doctor, who sees patients and prescribes medicine and treatments, and the Mentcare system.

# data[].attributes.headline
Draw diagrams showing a conceptual view and a process view of the architectures of the following systems: i) a ticket machine used by passengers at a railway station ii) a computer-controlled video conferencing system that allows video, audio, and computer data to be visible to several participants at the same time iii) a robot floor-cleaner that is intended to clean relatively clear spaces such as corridors iv) the cleaner must be able to sense walls and other obstructions

# data[].attributes.subject
Draw diagrams showing a conceptual view and a process view of the architectures of the following systems: i) a ticket machine used by passengers at a railway station ii) a computer-controlled video conferencing system that allows video, audio, and computer data to be visible to several participants at the same time iii) a robot floor-cleaner that is intended to clean relatively clear spaces such as corridors iv) the cleaner must be able to sense walls and other obstructions

# data[].attributes.body
Software is not just the developed programs, it's also documentation for the customer (system requirements and manuals on how to use it), and documentation specifying the design of the program so developers can continue to improve the software in the future.

# data[].attributes.body
The biggest difference between generic and custom software is that generic software is developed with the intention to be sold to the open market to any customer to fulfill a general purpose (for example AVG, Photoshop, Word). Custom software is developed for a specific customer for a specific requested purpose.

# data[].attributes.body
Using software engineering methods and techniques for software systems as opposed to treating it like a personal programming project is worth it in the long run because planning the design of the system before implementing it will reduce the chance of having to go back and redo something in the middle of development, which will save time and save costs.