0% found this document useful (0 votes)
174 views

Assignement 2

Developing computer systems to counter terrorism by tracking citizens and their actions raises significant privacy concerns. Software engineers have an ethical responsibility to respect individuals' privacy, even without a formal agreement. Systems being developed could violate basic human privacy rights. Different application types, like embedded systems versus business systems, require specialized software engineering techniques due to factors like costs of changes, important non-functional requirements, and intended software lifetime and delivery schedules.

Uploaded by

Rowa
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
174 views

Assignement 2

Developing computer systems to counter terrorism by tracking citizens and their actions raises significant privacy concerns. Software engineers have an ethical responsibility to respect individuals' privacy, even without a formal agreement. Systems being developed could violate basic human privacy rights. Different application types, like embedded systems versus business systems, require specialized software engineering techniques due to factors like costs of changes, important non-functional requirements, and intended software lifetime and delivery schedules.

Uploaded by

Rowa
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 8

1.

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

Counter-terrorism review (birmingham.ac.uk)

64pp Booklet (raeng.org.uk)

Protecting against terrorism - 3rd edition (publishing.service.gov.uk)

Integrity Ethics Module 12 Exercises: Case Studies (unodc.org)

NAE Website - An Engineering Response to Terrorism (editorial)

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.

(b) What are the key challenges facing software engineering?

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)

5 most commonly faced Software Development challenges - Estuate

What are the key challenges facing software engineering By OpenStax (Page 6/8) | Jobilize

10 Challenges Every Software Product Developer Faces | Synoptek


Software Engineering | Challenges in eliciting requirements - GeeksforGeeks

Software Engineering Challenges - Computer Notes (ecomputernotes.com)

(c) What are the best software engineering techniques and methods?

10 Best Software Development Methodologies For Embracing SE Projects


(analyticsindiamag.com)

12 Best Software Development Methodologies with Pros & Cons (acodez.in)

Software Engineering Techniques - Object-Oriented Programming (pmi.org)

Top 4 software development methodologies | Synopsys

Top 6 Software Development Methodologies - Blog | Planview

What are the best software development methodologies? (erisn.com)

8 Best Software Development Methodologies (uptech.team)

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

Chapter 1: Introduction - ppt video online download (slideplayer.com)

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

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

(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

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.

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

This argument is favor for certification of engineering professionals in the same


way that lawyers and doctors are certified. 

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

Advantages of certification for engineers:


1. Certification make the field more competitive since they have been trained
according to the standardize training procedure and binding legal, the source
of certification can ensure that the software engineer is trusted.
2. The public opinion of the engineering profession will be better when some
form of certification is in place
3. Certification signals to the potential employers a minimum level of
competence and this make is easy for them to screen only engineers that
meet the minimum requirement.

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

Use Cases for Example ATM System (gordon.edu)

The models are used to explain the system in different perspectives

• 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

Software Engineering: A Hands-On Approach - Roger Y. Lee - Google Books


(b) When emergency changes have to be made to systems, the system software may have to
be modified before changes to the requirements have been approved. Suggest a model of a
process for making these modifications that will ensure that the requirements document and
the system implementation do not become inconsistent.

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

* When differences in requirement interpretation, the requirements validation is carried out or


checked if it has been completed.

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

What are required to do here is to make a detailed report of the ambiguities


you've discovered without any direct reference to your previous employer's
interpretation of the requirements. Make sure your recommendations are genuine
and authentic. You may only use your previous employer's interpretation as a
guide.
System developers are charged with the responsibility of ensuring the development of a
system that meets the client’s needs. However, misinterpretation of system
requirements as presented by the client might result in losses either on the client’s end
or developer’s end (Davis, 2013). It is true that the client will present the developer with
the requirements he/she need the system to do. However, it is the work of the
developer to interpret them accurately and come up with an appropriate system. A case
where the developer does not comprehend accurately the needs of the clients might
result in the development of a system that does not meet the intended objective.

The key here is the ambiguities, there is nothing illegal about


resolving the interpretation of ambiguities. I will discuss the
ambiguities
and email a bullet pointed listed to the specific ambiguities
and
recommendations to current employer specific decision maker.

4. (a) How processes modelled and what are process patterns?

Process Patterns in Software Engineering - GeeksforGeeks

What is a Software Process Model? Top 7 models explained (educative.io)

Microsoft Word - HanhNhi-SEKE07-draft2.doc (irit.fr)

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

Prescriptive Process Model in Software Engineering (theteche.com)

Difference between prescriptive and evolutionary models (ques10.com)

Prescriptive Process Models (tutorialride.com)

(c) Why is agility a watchword in modern software engineering work?


What is Agility in context of software engineering? Explain Extreme Programming (XP) with
suitable diagram. (ques10.com)

Agility is the watchword for 2021, make your practice future-fit | Wolters Kluwer

Software Engineering | Agility - GeeksforGeeks

Agility in Software Development | Agility | InformIT

What is Agile Software Development? | Agile Alliance

(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

For more Answers : INF3705 – ESEY HELP (wordpress.com).

CS3043 Assignment 1 (unb.ca).

You might also like