1. Explain
why good/professional software is not just the programs that are developed for
a customer
Good/professional
software is not just the programs that are developed for a customer but it consist of executable code and is associated with documentation and configuration of data that is required to make these
programs operate correctly .A professionally developed software system is often
more than a single program. The system usually consists of a number of separate
programs and configuration files that are used to set up these programs. It may
include system documentation, which describes the structure of the system; user
documentation, which explains how to use the system, and web sites for users to
download recent product information. Example
a word processing system consist of executable program, user manual and
the document such as requirements and the design needed to produce the
executable program
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?
a) What
is the most important difference between generic software product development
and custom software development?
Custom
software development these
are systems that are commissioned by a particular customer. A software
contractor develops the software especially for that customer. Examples of this
type of software include control systems for electronic devices, systems
written to support a particular business process, and air traffic control
systems
Generic software product
development these are
stand-alone systems that are produced by a development organization and sold on
the open market to any customer who is able to buy them. Examples of this type of product
include software for PCs such as databases, word processors, drawing packages,
and project-management tools. It also includes so-called vertical applications
designed for some specific purpose such as library information systems, accounting systems, or
systems for maintaining dental records
The
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.
Generic software has no specific target in
mind, and development follows that idea. It is designed from its conception to
include every function they may possibly use, and be accessible in a manner
that does not leave the user feeling that the software is “bloated” or overrun
with useless features.
Custom software, on the other hand, is
conceptualized by the customer it is developed for, and production and
development is guided by the customer. This includes custom components for a
specific piece of software will likely not be included in a generic equivalent
of the software title, as it would undoubtedly serve little to no purpose for
the general public, as well as the removal of all functionality that serves no
purpose for the company. This results in a highly efficient, stream-lined
program that suits the needs of the customer as well as can be expected from
any piece of software
b) What
might this mean in practice for users of generic software products?
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.
However, the distinction between these system
product types is becoming increasingly blurred. More and more systems are now
being built with a generic product as a base, which is then adapted to suit the
requirements of a customer Enterprise Resource Planning (ERP) systems, such as the SAP system, are
the best examples of this approach Here, a large and complex system is adapted
for a company by incorporating information about business rules and processes,
reports
3. What
are the four important attributes that all good/professional software should have?
Suggest four other attributes that may sometimes be significant.
a) What
are the four important attributes that all good/professional software should
have?
Good
software should deliver the required functionality and performance to the user
and should be
i.
Maintainability: Software developer must
develop software that can be easily scalable to meet the changes in the
business environment and their customers’ needs as they arise.
ii.
Dependability and security: software
should be dependable and well written to ensure safe data sharing among users
and business as well as protect the integrity of the system and the user alike.
iii.
Efficiency: Software developer should
take care and have consideration for processor, memory, response time and use
of resources of the system that the software will be implemented on as well as
any and all machines that it may be installed on.
iv.
Acceptability: The Software should be
easily usable, understandable and compatible with other systems that it may be
used on.
b) Other
attributes that may be significant could be
i.
Reusability .Ability to be reused in other applications
ii.
Disreputability –Ability to be
distributed over a network of
processors
iii.
Portability –Ability to operate on
multiple platforms e.g. laptop and mobile
platforms
iv.
Inter-operability –Ability to work with
a wide range of other software
systems.
4. Identify
problems and challenges that software engineering
is likely to face in the 21st century (hint: think about theenvironment).
There
are many possible challenges that could be identified. These include:
i.
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.
ii.
Developing validation techniques for
simulation systems (which will be essential
in predicting the extent and planning for climate change).
iii.
Developing systems for multicultural use
iv.
Developing systems that can be adapted
quickly to new business needs
v.
Designing systems for outsourced
development
vi.
Developing systems that are resistant to
attack
vii.
Developing systems that can be adapted
and configured by end-users
viii.
Finding ways of testing, validating and
maintaining end-user developed
systems
.
5.
Based on your own knowledge of some of
the application explain, with examples, why different application require
specialized software engineering techniques to support their design and development
i.
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
ii.
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.
iii.
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 modeling.
6. Explain
why there are fundamental ideas of software engineering that apply to all types
of software systems
i.
Software specification where customers
and engineers define the software that is to be produced and the constraints on
its operation.
ii.
Software development, where the software
is designed and programmed. They should be developed using a managed and
understood development process. The software developer should have in mind what
is the business value that the software is to provide to the owner and end user
of the application, and assure that it meets the client’s needs not wants
iii.
Software validation, where the software
is checked to ensure that it is what the customer requires. The software must
be dependable and execute as intended in all systems, and be able to protect
its self and the client for outside attacks
iv.
Software evolution, where the software
is modified to reflect changing customer and market requirements software
Developer must hold knowledge of what the software is intended to do for the
client and what is expected from the software from the clients view as well as
the end users. The Software developer has to deliver this software bug free and
within the client’s dead line as well
.
7. Explain
how the universal use of the web has changed software systems.
Enhance
technological innovation. Services like learning activities in which engineer
can share technology of developing software
The
web was created for research and military use at first where only internal
companies where able to use it, but now it has evolved where ordinary users can
access information of all kinds and purchase items for prominent companies and
entrepreneurs worldwide. This is where Software Developer comes in developing
ecommerce systems and much more.
8.
To help
counter terrorism, many countries are planning the development of computer
systems that track large numbers of their citizens and their actions. Clearly
this has privacy implications. Discuss the ethics of developing this type of
system
Ethics is a concern of humans who have freedom of choice.
Ethics is about individual choice: When faced with alternative courses of
action, this can focus on what is the correct moral choice and what are the
main features of ethical choice.
Software engineers have wider responsibilities on systems development than the mere application of their technical skills. Ethically, an engineer should respect the confidentiality of the public irrespective of whether or not a formal confidentiality agreement has been undertaken.
Developing computer systems to counter terrorism by tracking citizens of a country and their actions has privacy implications. Privacy entails an individual's right to control the collection and use of his or her personal information, even after that information is disclosed to others with the.
Systems are been developed that violates the human privacy rights.
Software engineers have wider responsibilities on systems development than the mere application of their technical skills. Ethically, an engineer should respect the confidentiality of the public irrespective of whether or not a formal confidentiality agreement has been undertaken.
Developing computer systems to counter terrorism by tracking citizens of a country and their actions has privacy implications. Privacy entails an individual's right to control the collection and use of his or her personal information, even after that information is disclosed to others with the.
Systems are been developed that violates the human privacy rights.
9.
How might
the delivery of a new system itself affect users’ requirements?
The system cannot meet user requirements due to
high expectation of the user
High demand of software. Due to many software
engineers intend to produce software for business purpose so some of the user
requirements cannot include during development
Poor
procedure of following during requirement gathering
10. What are the best and worst experiences you, or
people you know, have had recently which have involved software?
Worst experiences
Budget and time may be limited
Changing of Technologies and development
approaches
Best experiences
Competent in developing software. Get
competitive advantage in developing software
Confidentiality in developing software
to manage software in any platform
This is the best, Good questions with perfect answers! Thank you
ReplyDeletevery good answers it helped me a lot
ReplyDeleteYan ang tanong namin galing sa Software Engineering book.
ReplyDeleteNot satisfied
ReplyDeleteThank you very much po. This is very helpful to us, students, who have a Software Engineering course. Hoping for more. God bless.
ReplyDeleteI am an expert tutor in software engineering and all other fields that you may need my assistance reach me at martinkoome64@gmail.com whatsapp +254720060088,
Deleteregards
Ooo flm bir
ReplyDeleteThanks you so much...!!
ReplyDeletecool answers it was really helpful to me.
ReplyDeleteregards M-H
just what i was looking for
ReplyDeleteThank you so much
ReplyDeletethank you this was quite helpful.
ReplyDeleteVery good questions... Very thanks dear
ReplyDeleteVery good questions... Very thanks dear
ReplyDeleteThank you!! This is very helpful for me
ReplyDeleteThank you!! This is very helpful for me
ReplyDeleteDon't copy the answer from other websites, if you want to copy, then you also have to mention the link in the citation. Your Question 5 answer is completely similar to Question 2 on this below link:
ReplyDeletehttp://www.cs.unb.ca/~wdu/cs3043/a1ans.htm
Informative Topic. Thanks for sharing such useful content. Keep sharing Surya Informatics
ReplyDelete
ReplyDeleteare you looking for erp software development company then click
erp software development company in USA
ReplyDeleteeither you are looking for Application-Development then click
Mobile app development company in USA
either you are looking for cloud services then click
cloud services provider company in USA
either you are looking for Artificial Intelligence services then click
Artificial Intelligence services provider company in USA
Cybexo is providing the best web development services in canada including outstanding digital appearance Mobile app, grapgic designing, content writing, and branding
ReplyDeleteCYBEXO is a well-known and best website design and web development company in Canada. We are the most reliable in website design services. We build SEO friendly website design as well as web development and also keep the website responsive.Cybexo being the best website design and web development company can help your business to create a lasting brand that resonates with your customers in Canada and all over the world. We are delivering outclass results that are empowering our clients.
digital marketing
ReplyDeletecopywriting
SEO
content writing services in usa
SEO
Why Invest in Digital Marketing
Logo branding
ReplyDeletewebsite design
digital marketing agency
content marketing agency
graphic design firm
mobile app development