In the world of computers being used for business, it is essential to have quality software regardless of the type of business you offer or the size of it. While technology is a great thing, it can be complicated especially when it comes to the issue of software. You don't want to purchase general applications that are difficult to use and maneuver. You also don't want to have additional features that you will never use. This is why custom software development is often a much better choice. Custom software development starts with identifying your goals and the needs of your business.
In many cases custom software development is less expensive than a general application because it is designed to meet your business needs. You also don't have additional programs and features that you will never use. You will also get the software to do exactly what you need it to do, saving time for yourself and the other employees who may use the software. It is important to choose a software programmer or developer who has taken the time to understand the type of business you conduct and what you want the software to do for your business.
Check their references and that they are credible. You will want to find out about training, customer support, and a refund in the event you are not happy with your software. There are many reputable software programmers you can find in the newspaper, the yellow pages, and on the internet. It is a good idea to get an estimate for the work, what the software functions will be, and the completion date. You also should discuss what guarantee they offer. Some companies will make changes until you are satisfied, or in some cases, there may be a third party to enforce the contract terms.
All of this information as well as the training time and customer support should be in writing before you pay any money for services.
Chapter 1: Introduction Software Engineering 9 1.2 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. 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.
Developing validation techniques for simulation systems (which will be essential in predicting the extent and planning for climate change). 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 cost effective for systems that change very rapidly. 1.5 Cont’d 2. The most important ‘non-functional’ requirements. Different systems have different priorities for non- functional requirements. For example, a real-time 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.
1.5 Cont’d 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. 1.8 Cont’d 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.
CS3043 Assignment 1 Sample Answers 1. What are the most important differences 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. Based on your own knowledge of some of the application types discussed in the textbook (chapter 1, 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: a) 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 cost effective for systems that change very rapidly. B) The most important &non-functional* requirements. Different systems have different priorities for non-functional requirements. For example, a real-time 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. C) 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. As 2870 residential slabs and footings pdf free printable. Explain why there are fundamental ideas of software engineering that apply to all types of software systems.
Because of all software systems have common quality attributes, including availability, modifiability, performance, security and safety, testability and usability, the fundamental software ideas provides common solutions or tactics to support those qualities.
ASSIGNMENT No. 1 Note: All Questions Carry Equal Marks. Q.1 What are the differences between generic software product development and custom software development? Q.2 What are the four important attributes which all software products should have? Suggest four other attributes that may sometimes be significant. Q.3 Describe the main activities in software development process and output of these activities. Use a diagram to justify your answer.
Wordperfect x9 serial number. Q.4 Explain why programs that are developed using evolutionary development are likely to be difficult to maintain. Q.5 Explain the purpose of software project management activities.
How it is related to software development.
4665-1-2E SA: 9818 SR: 4475 Differences between generic software product development and custom software development: Generic software is a s/w which is open to market and whose specifications are designed by the programmer. That is designed only for Public usage. These are stand-alone system that are produced by a development organization and sold on the open market to any customer who is able to buy them.
Where as Customized software is software whose specifications are designed according to a particular firm or organization, it is not open for all. Software that is designed special for certain organization. These are systems that are commissioned by a particular customer.
Difference Between Generic Software Product DevelopmentDifference Between Generic Software Product Development Course
A software contractor develops the software especially for that customer.
Comments are closed.
|
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |