Proposal 111

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 6

Proposal

There is the huge difference between generic software product development and custom
software development. Let's categorize them in following parts:

Specification:

Generic software is designed and developed by development organization which is the stand-
alone system. It sold in the market to anyone. Another hand, custom software is
commissioned by the particular customer. Here users are more specific and made it according
to their need.

Control:

The major difference between the generic software product and custom software product is,
it has control of development organization in the generic software whereas, in custom
software, it has control of buying organization.

Needs:

In generic software, the developer can make changes any time but in custom software,
changes can make according to customer need. Here customer requirement can be fulfilled as
per their need but not possible for generic software.

Updates:

Again the major difference between both is updates. The generic software product is made
according to future updates and it's for a limited period. Whereas, custom software is made
according to time, budget and needs. So anytime you can update it.

Last words:

There is a big difference between both! For choosing software product whether it is custom
or generic it depends on the choice of the customer.

Custom Software Development, Offshore Development Company India- NIBO


Technologies

Generic Software: These software are the software developed by the product based company,
who developed the software for any specific task OR industry.

User can purchase these software from the company and use as per the teṛms and conditions
provided by the companies.

You can not make change in these types of software, you need to use the software developed
by the company only. You are bound to use only the functionality which are provided in the
software.

In certain cases if you need some customization then you are supposed to pay a heavy amount
of money .
Customized Software: These are the software developed by the service based company. It is
delivered by the company as per your requirements, which you provided before starting of
the project.

You can ad and delete functionality in the custom software as per your requirement.Full
support is provided by the Custom Software Development Company to you after delivering
the product also.

Customized software proved to be very useful for you in comparison to generic software, a sit
provides functionalities as per your business requirements. It is easy to learn that software
because it belongs to your business specifically

FRIDAY, 3 OCTOBER 2008

What are the differences between generic software product development


and custom software development?
Firstly in defining the differences between generic and custom software it is important to define what
generic and custom software actually is; according to Dr A Capiluppi (2008, slide 5) generic software
can be defined as: ‘stand-alone systems produced for an open market – production controlled by the
development organisation’, whereas custom software can be defined as: ‘commissioned systems by a
particular customer – production controlled by the customer organisation’. Now that these two types
of software have briefly been defined, a comparison between them is that; generic software
development differs from custom software development mainly in the intended users and functions
for those users that will be contained within the software. Generic software has to include as many
functions as possible as it will have a very wide use base, and will need to provide functionality and
usability to that wider range of users. However because of the wide use base of generic software it also
needs to be quite concise with the functions that are included; as having too many functions available
to users, who may not be the best experts on computers, would probably affect the ease of use of the
software. Generic software also has to be developed to be very reusable and have components that can
be easily modified or added to at a later date, making the software as upgradable as possible so it can
have a longer useful lifetime.
The development of custom made software differs from this because the uses of the software
are for a lot more specific of a customer base, and usually would include components that
would need to be freshly written for the software; as if generic components already existed to
perform the requirements of the users then they would have brought off the shelf software.
Custom software development is usually a lot more based around communication with the
specific needs of the users the software is being created for, to insure the finish product will
meet the needs of the end user, whilst still being made of separate components that make the
software as upgradable as possible. However as custom software is usually developed by one
company/group of developers for a specific user, the upgradability and maintainability of the
software will always be limited as if the knowledge from the original creators is lost, possibly
through hiring of new IT support staff, then the new staff would take a long time to get to
grips with the custom software and would risk damage to it when making modifications or
upgrades to it at a later date.

Reference:
Dr Andrea Capiluppi. 2008. lecture 01- Characteristics of Software. [Online] University of
Lincoln blackboard site. Available at:
http://blackboard.lincoln.ac.uk/webapps/blackboard/content/listContent.jsp?
mode=reset&course_id=_25772_1&content_id=_141234_1#_209998_1
[Accessed 3rd October 2008].
PO ST E D BY L CSD G RP1 AT 06:25

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.
 
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) 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.

CSCI362
Thursday, August 21, 2014
1.3

What are the four important attributes that all professional software should have? Suggest four other attributes
that may sometimes be significant.

There are four attributes that all professional software should have:

1. Software must be maintainable.

Unmaintainable software is difficult to change to meet new demands. Software should be able to easily evolve,
as change is inevitable in a growing business. It would be very inefficient if software engineers had to rewrite
the software from the ground up again every time they needed to make a change. Making software maintainable
would include having a well organized framework, good documentation, clean code, ect. Even when changes
are made, these changes must follow this maintainability rule.

2.Software must be dependable and secure.

Software should ideally not have many bugs. In the event of failure, software should not cause any damages. In
addition, software must be secure. It would be unfortunate if an online banking website had a security flaw that
allowed outsiders to access a users account. That would not be good software. In the event a bug or security
flaw is discovered, it should be fixed immediately, and users should be notified of any major flaws.

3. Software must be efficient.

Software should only use as many system resources as it needs. Wasteful use of system resources can slow
processes down and decrease responsiveness. healthcare.gov is a good example of software that was inefficient. 

4. Software must be acceptable.


It should be compatible with the systems its users use, understandable, and usable. As an example, a web
application should be compatible with all browsers. A good user interface would help with understandability
and usability.

I would also like to add to this list:

5. Software should be scalable.

This is especially necessary when software is running on a network. Good software should be able to handle
many concurrent processes and connections efficiently. It should be able to handle large loads of data if need be.

6. Software should be modern.

This means software should be up to date with modern conventions and standards. This can help keep software
more secure by adopting up to date security protocols.

7. Software should be ethical.

Software must not be used for amoral actions or intentions. This includes many debated topics such as privacy,
the right to be forgotten, and file sharing. Software should follow a code of ethics.

8. Software should be original.

This doesn’t mean using open source projects in software is forbidden, but what is created should be an original
work and idea. It should be able to separate itself in some way from what has already been created.

1.8

Discuss whether professional engineers should be certified in the same way as doctors or lawyers.

I personally don’t think software engineers should be certified in the same way as doctors and lawyers. That
could mean many more years of schooling for me. I do think that software engineers should have an
understanding of ethics. Software engineers can potentially have as much responsibility as a lawyer or doctor
when designing software. In the same way a surgeon may make a mistake, if medical software fails, it could
cause a death. There is something to say about software engineers needing higher certification, especially in the
case where an engineer is working on a potentially lethal system. 

1.9

For each of the clauses in the ACM/IEEE Code of Ethics shown in Figure 1.3, suggest an appropriate example
that illustrates that clause.
1. A software engineer should not create software that steals private information.

2. Testing the software to make sure it is void of any bugs and security flaws, which creates a better product for
the client, increases the reputation of the employer, and is in the best interest of the public by being a reliable
piece of software.

3. Same as example 2. Software should be tested to meet usability, efficiency, security standards, ect.

4. I see someone stealing company trade secrets, I report it. Even if it is my friend who is stealing.

5. If a problem is found in a released piece of software, the software manager should report that problem to the
users of that software.

6. I should pass on to others what I have learned so they know how to act as a professional. 

7. If a colleague has a question I know the answer to, I should give him an honest answer and help him with his
problem.

8. A friend suggest I go to a workshop for some new technology, I go to learn something new.

1.10

To help counter terrorism, many countries are planning or have developed computer systems that track large
numbers of their citizens and their actions. Clearly this has privacy implications. Discuss the ethics of working
on the development of this type of system.

These systems are likely agains the public interest. They are unethical because they use people as a means to an
end and survey them without their consent. To work on this system is unethical in the ACM/IEEE Code of
Ethics because a person working on this is going against the public interest. However, a person working on this
software also has an obligation to his employer to create a good reliable piece of software. This is also helping
stop terrorism, so there is a benefit to this software. A software engineer should refuse to participate given the
ethical implications of this software. He would not be doing anything wrong to his employer unless they had a
contract, and he would be serving public interest by not working on these systems.

You might also like