You are on page 1of 14

Software

Engineering
Lecture 2

Dr. Sarah Ayyad


Faculty of engineering, Mansoura university
Software engineering Ethics
Confidentiality
01 You should normally respect the confidentiality of your employers or
clients irrespective of whether or not a formal confidentiality
agreement has been signed.
Competence
02 You should not misrepresent your level of competence. You should
not knowingly accept work that is outside your competence.

Intellectual property rights


03 You should be aware of local laws governing the use of intellectual
property such as patents and copyright. You should be careful to ensure
that the intellectual property of employers and clients is protected.
Computer misuse
04 You should not use your technical skills to misuse other people’s
computers. Computer misuse ranges from relatively trivial (game playing
on an employer’s machine, say) to extremely serious (dissemination of
viruses or other malware).
Software
Development
Life Cycle
Software Process

▪ A software process is a set of related activities that leads to the


production of a software product.
▪ produce software through a series of stages.
▪ Can take months or years to complete.
▪ Goals of each stage:
➢ Define a clear set of steps to perform.
➢ Produce a tangible item.
➢ Allow for review of work.
➢ Specify actions to perform in the next stage
Software Process
There are many different software processes, but all must include four
activities that are fundamental to software engineering:
1. Software specification: The functionality of the software and constraints on its
operation must be defined. Define what the system should do.
2. Software design and implementation: The software to meet the specification
must be produced.
3. Software validation: The software must be validated to ensure that it does what
the customer wants.
4. Software evolution: The software must evolve to meet changing customer needs.
Software Process Descriptors
When we describe and discuss processes, we usually talk about the activities in these
processes such as specifying a data model, designing a user interface, etc., and the ordering
of these activities.
process descriptions may also include:

Products
01
which are the outcomes of a process activity.

Roles
02
which reflect the responsibilities of the people involved in the process

Pre- and post-conditions


03 Which are statements that are true before and after a process activity has been enacted or
a product produced.
Plan-driven and agile processes
Software process models are categorized as either plan-driven or agile
processes.

01 02
Plan driven processes Agile processes
Where all of the process Planning is incremental
activities are planned in and it is easier to
advance and progress change the process to
is measured against reflect changing
this plan. customer requirements.

There is no ‘ideal’ software process.


In practice, most practical processes include elements of both plan-driven
and agile approaches.
Software Process Models
Traditional software process models/frameworks
▪ Waterfall Model
▪ Incremental development
▪ Reuse-oriented software engineering

All models have the same goals:


Manage risks and produce high quality software.
01
Waterfall
model
Waterfall model
Waterfall model
▪ The Waterfall model is the earliest SDLC approach that was used for software development.
▪ The waterfall model is an example of a plan-driven process—in principle, you must plan and
schedule all of the process activities before starting work on them.
▪ Waterfall model illustrates the software development process in a linear sequential flow. This
means that any phase in the development process begins only if the previous phase is complete.
Waterfall model
▪ There are five separate identified phases in the waterfall model:
➢ Requirements analysis and definition
➢ System and software design
➢ Implementation and unit testing
➢ Integration and system testing
➢ Operation and maintenance

The main drawback of the waterfall model is the difficulty of accommodating change after
the process is underway. In principle, a phase has to be complete before moving onto the
next phase.
Waterfall model
Some situations where the use of Waterfall model is most appropriate are:
➢ The project is short.
➢ Requirements are very well documented, clear and fixed.
➢ There are no ambiguous requirements.
➢ Technology is understood and is not dynamic.
➢ Ample resources with required expertise are available to support the product.
➢ The waterfall model is mostly used for large systems engineering projects where a system
is developed at several sites. The model helps coordinate the work.
Thanks!
Do you have any questions?

Sarah_Ayyad@mans.edu.eg

CREDITS: This presentation template was created by Slidesgo, including


icons by Flaticon, infographics & images by Freepik and illustrations by
Stories

You might also like