0% found this document useful (0 votes)
264 views3 pages

Chapter 1 EX

Professional software requires more than just the programs developed for customers. It requires documentation, support websites, design, evolution, and other elements to create a complete software system. Software engineering is a continuous process that goes beyond just coding. The most important difference between generic and custom software is that with generic software, the developer controls all decisions regarding development and functionality, while with custom software, the buyer controls development specifications and functionality. This means users of generic software may not get all the functionality that custom software can provide. The four major attributes all professional software should possess are: maintainability, efficiency, acceptability, dependability, and security. Other attributes include availability (can be accessed anywhere on any platform), scalability (

Uploaded by

hosam hasan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
264 views3 pages

Chapter 1 EX

Professional software requires more than just the programs developed for customers. It requires documentation, support websites, design, evolution, and other elements to create a complete software system. Software engineering is a continuous process that goes beyond just coding. The most important difference between generic and custom software is that with generic software, the developer controls all decisions regarding development and functionality, while with custom software, the buyer controls development specifications and functionality. This means users of generic software may not get all the functionality that custom software can provide. The four major attributes all professional software should possess are: maintainability, efficiency, acceptability, dependability, and security. Other attributes include availability (can be accessed anywhere on any platform), scalability (

Uploaded by

hosam hasan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 3

Chapter One Ex.

Explain why professional software is not just the programs that are
developed for a customer.
Software Engineering requires the compilation of documentation, support
websites, design, evolution, ... etc to make the software system complete.
Software is a continuous process , it is not just a coding.

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?
generic software, the developer is in control of all decisions regarding dev
and functionality.
With custom software, the buyer is in charge of dev specifications and
functionality.
For users mean that generic software may not give all the functionalties that
custom software can give you ,

What are the 4 major attributes that all professional software


should possess?
MEAD(s) - Maintainability, Efficiency, Acceptability, Dependability and
security
Availability : everyone everywhere with any platform can access it
Scaleabity : the software can hanldle vast increse in users .
Material Desgin : software must be good looking (appeealing)
Support : some software services nowadays have 24/7 support

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).
Energy-efficient: system must be resources-friendl
systems for multicultural use
must be self-defending from attaks
adapt with the new tech. and huge growth in user numbers
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.
Because it is targeting different kind of users
its base construction are different
Costs and frequency of change
Different systems have different priorities for non-functional requirements
real-time systems sfaty is number one priorty
games : graphics is the main target .
The software lifetime and delivery schedule.

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.

Explain how the universal use of the Web has changed software systems
because web made software distribution fast and wide all over the world , that led
to strong demand to much more complex functional softwares . And nowadays we
had to0 many web-based application and services can replace our offline
softwares , actuallly it beacame mush more larger that they built a complete
software that depends on web-based technologies

Discuss whether professional engineers should be certified in the same way as


doctors or lawyers.
Yes , sure beacase the problems that professional engineers deal with during there
work and how dangerous this problems in our daily live , make theme one the
main pillars in or live on the earth.
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.

Public - Do not develop systems designed to harm the public, such as making a
program that acts as mal-ware.

Client and Employer - Develop systems that meet client and employer specifications
such as meeting specifications while maintaining security and performance.

Product - Do not create shovel-ware designed to capitalize on a fad whilst


disregarding quality, such as creating a bad application to capitalize on the release of a
new popular movie.

Judgement - Do not allow yourself to be swayed into violating or ignoring moral or


legal problems, such as accepting bribes to let something go or stealing previously
developed software for use in your project.

Management - Not only should you hold yourself to a code of ethics, but encourage
others to do so as well, such as in an office with potentially unethical business
practices.

Profession - Do not "paint software engineers black" by attempting to jeopardize the


integrity or reputation of the profession due to a fall-out with employers or colleagues.

Colleagues - Do not belittle colleagues who have failed or are having trouble, and
instead help or give advice and support, even if in direct competition.

Self - Continue to learn about new software engineering techniques and encourage
others to be ethical in their approach to software engineering, as opposed to refusing
to use new techniques and sitting idly by whilst others do unethical actions without
being encouraged to be ethical.

To help counter terrorism, many countries are planning or have developed


computer systems to 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.
It has to respect others privecy beacause it can deal with all cetizens info
beside the torrrists
if must be completely accurte because acccusing innocent cetizen is violation to
his/her privacy so the software must be very efficient
this software must be top secret and uncer authorties control

You might also like