Вы находитесь на странице: 1из 5

Chapter 1

SUNDAY, 4 MAY 2014

Questions and answers on software engineering CIT 745

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 tobuy 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 users business
processes and add extra training costs when new versions of the system are installed. It also
may limit the customers 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 approachHere, 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
costeffective 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 clients 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 clients
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.

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

Вам также может понравиться