Assignement 2
Assignement 2
(a) 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.
Cyber Warfare, Terrorist Narratives and Counter Terrorist Narratives: An Anticipatory Ethical
Analysis - ProQuest
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 Engineering Challenges of Deep Learning | IEEE Conference Publication | IEEE Xplore
A Progression Model of Software Engineering Goals, Challenges, and Practices in Start-Ups | IEEE
Journals & Magazine | IEEE Xplore
CiSE2018Preprint.pdf (geomar.de)
1810.12034.pdf (arxiv.org)
FULLTEXT02 (diva-portal.org)
What are the key challenges facing software engineering By OpenStax (Page 6/8) | Jobilize
(c) What are the best software engineering techniques and methods?
2. (a) 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).
Apart from the challenges of heterogeneity, business and social change, and trust and security,
suggest other problems and challenges that software engineering is likely to face in the 21st
century. - CPEN Talk | Computer Engineering Question and Answer
(Solved) - Apart from the challenges of heterogeneity, business and social... - (1 Answer) |
Transtutors
Apart From The Challenges Of Heterogeneity ,rapid Delivery And Trust , Identifying Other
Problems And Challenges That Software Engineering Is Likely To Face In The 21st Century? -
Blurtit
Apart from the challenges of heterogeneity rapid delivery and trust identify other problems and
challenges that software engineering is likely to face in the 21st century? - Answers
Apart from the challenges of heterogeneity, business and social change and trust and security,
identify other problems and chall (ya.guru)
The computer for the 21st century: present security & privacy challenges | SpringerLink
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
(b) Based on your own knowledge of some of the application areas of software, explain, with
examples, why different applications 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
Another Answer :
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
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.
(c) Discuss whether professional engineers should be certified in the same way as doctors or
lawyers.
If a lawyer screws up in his work, some people might suffer financially or one
person can suffer physical damage. If a doctor screws up, probably his patients
will suffer physical damage and maybe financially as well. It’s also possible, in
the case of undiagnosed contagious disease, that a lot of people will be hurt. The
same reasoning may be applied for engineers also.
For example, while consider about civil engineer, the damage caused by a
collapsed bridge or skyscraper is reason enough. But a lot of other areas of
engineering have this very high capacity for damage (both financial and
personal).
Professional Engineers should be required to be licensed in the same way as doctors or lawyers
because they can also impact human lives, though not in the same way that a doctor or lawyer
will. Doctors and lawyers are immediately responsible for the outcome of another person’s life,
however, a software engineer will be responsible for writing software that may immediately be
responsible for another person’s life. Any person with that kind of power must be certified to
minimize any harm that could accidentally happen due to ignorance. They must also ethically
abide to rules to not cause any intentional harm to others.
3. (a) Using your knowledge of how an ATM is used, develop a set of use cases that could
serve as a basis for understanding the requirements for an ATM system.
Using your knowledge of how an ATM is used, develop a set of use cases that could serve as a
basis for understanding the requirements for an ATM system. - CPEN Talk | Computer
Engineering Question and Answer
• An external perspective
• An interaction perspective
• A structural perspective
• A Behavioral perspective
• Activity diagram (structural perspective) o Activity diagram is used to define business process
models o Program flows of activities are illustrated by activity diagram • Sequence diagram
(interaction perspective) o These diagrams are used to model interaction between the actors
and the objects within the system o Sequence diagram are used to model the collaboration of
objects based on time stamp
(c) You have taken a job with a software user who has contracted your previous employer to
develop a system for them. You discover that your company’s interpretation of the
requirements is different from the interpretation taken by your previous employer. Discuss
what you should do in such a situation. You know that the costs to your current employer will
increase if the ambiguities are not resolved. However, you have also a responsibility of
confidentiality to your previous employer.
* It’s the process of checking requirements correctly define the system requirements.
The key thing here is to understand that there is nothing unethical about
resolving ambiguities in software requirements. There are certainly diplomatic
ways you can forward your recommendations to your current employer without
breaching the confidentiality to your previous employer. If you have signed any
Non-Disclosure Agreements - NDAs with your previous employer, make sure you
do not go against it.
GtR (ukri.org)
Supporting Secure Business Process Design via Security Process Patterns | SpringerLink
(b) What are the prescriptive process models and what are their strengths and weaknesses?
Prescriptive Process Models - Waterfall Model, Incremental Process Model, Prototyping & Spiral
Model - Principles Of Software Engineering - Teachics
Agility is the watchword for 2021, make your practice future-fit | Wolters Kluwer
(d) What is agile software development and how does it differ from more traditional process
models?
Agile methods should probably not be used when the software is being developed
by teams who are not co-located. If any of the individual teams use agile methods,
it is very difficult to coordinate their work with other teams. Furthermore, the
informal communication which is an essential part of agile methods is practically
impossible to maintain.
Agile methods should probably also be avoided for critical systems where the
consequences of a specification error are serious. In those circumstances, a system
specification that is available before development starts makes a detailed
specification analysis possible.
However, some ideas from agile approaches such as test first development are
certainly applicable to critical systems