Chapter 1
Chapter 1
Case studies
What
Theories, methods and tools for software
development
Why
Automation
Cost-effective (cheaper on the long run)
How
Following SDLC
Question Answer
Question Answer
increasing diversity, reduced delivery times, trustworthy.
What are the key challenges facing
software engineering? 60% development,
40% testing.
What are the costs of software
Evolution: exceed development costs.
engineering?
What are the best software engineering No one size fits all
techniques and methods?
• Games: Spiral, series of prototypes
• Safety critical systems: Water fall.
• Web portal: Agile
Attribute Description
Maintainability Evolvable
1. Responsive
2. Resilient
3. Elastic
Engineering discipline
GIVEN theories & methods
SOLVE technical & project problems
CONSTRAINT organization & financial constraints
All aspects of software production
technical process of development.
project management
development of tools, methods etc. to support software
production.
COTS
Specification
• customers and engineers define the software requirements
• with conditions and constraints on operation
Development
• design and programming.
Validation,
• QC.
• QA
Evolution
• Modification
• New customer requests (CR)
30/10/2014 Chapter 1 Introduction 12
No universal software engineering methods or techniques
that may be used for all kinds of software. However, there are
factors that affect different types of software
Heterogeneity
Channel: Web, Desktop, Mobile
Backend: Java, PHP, NodeJS
Frontend: React, Angular, VueJS
Business and social change
Social Logins
Contactless payment
eWallet
Loyalty programs
Scale
Embedded systems
Wearable devices
Web-based
Smart phones
Cloud-based
Confidentiality
respect the confidentiality of your employers or clients
Competence
Maintain your level of competence
Don’t accept a work outside your competences
Computer misuse
Back-door development
Game playing on employer machine
Intellectual property right
Knowledge of governmental laws
Copyrights
PREAMBLE
Software engineers shall commit themselves to making the analysis, specification,
design, development, testing and maintenance of software a beneficial and
respected profession. In accordance with their commitment to the health, safety
and welfare of the public, software engineers shall adhere to the following Eight
Principles:
1. PUBLIC
3. PRODUCT
4. JUDGMENT
5. MANAGEMENT
6.PROFESSION
7.COLLEAGUES
8. SELF
30/10/2014 Chapter 1 Introduction 20
Ethical principles
1. PUBLIC –
1. Accept full responsibility for their own work
2. Approve software only if they have a well-founded belief that it is safe, meets
specifications, passes appropriate tests, and does not diminish quality .
3. Be fair and avoid deception in all statements
2. CLIENT AND EMPLOYER –
1. Not knowingly use software that is obtained or retained illegally/unethically
2. Ensure that any document upon which they rely has been approved
3. Keep private any confidential information gained in their professional work
3. PRODUCT –
1. Strive for high quality, acceptable cost and a reasonable schedule, ensuring
significant tradeoffs are clear to and accepted by the employer and the client
2. Ensure that they are qualified for any project on which they work
3. Strive to fully understand the specifications for software on which they work
30/10/2014 Chapter 1 Introduction 21
Ethical principles
4. JUDGMENT–
1. Maintain professional objectivity with respect to any software or related
documents they are asked to evaluate
2. Refuse to participate, in a private, governmental or professional body, in which
they, their employers or their clients have potential conflicts of interest
5. MANAGEMENT –
1. Attract potential software engineers only by full and accurate description of
the conditions of employment
2. Ensure good management for any project on which they work
3. Ensure realistic quantitative estimates of cost, scheduling, personnel, quality
and outcomes
6. PROFESSION –
1. Help develop an organizational environment favorable
2. Promote and influence public knowledge of software engineering
Privacy
It is essential that patient information is confidential and is never
disclosed to anyone apart from authorised medical staff and the
patient themselves.
Safety
Some mental illnesses cause patients to become suicidal or a
danger to other people. Wherever possible, the system should
warn medical staff about potentially suicidal or dangerous
patients.
The system must be available when needed otherwise safety
may be compromised and it may be impossible to prescribe the
correct medication to patients.
Group of 5
1. https://iansommerville.com/software-engineering-
book/static/about/
2. https://codingsans.com/state-of-software-
development-2019
3. https://hired.com/page/state-of-software-
engineers/#about-hired