Software Engineering RE-EXAM Document
Software Engineering RE-EXAM Document
Software Engineering
By Eng.Adulahi M. Adan
p://www.mahergelle.com
http://www.mahergelle.com
Chapter One: -
Introduction to
Software Engineering
Software Engineering
Software Engineering
❑ Communication: -
➢ This is the first step where the user initiates the request for a
desired software product.
➢ The user contacts the service provider and tries to negotiate
the terms, submits the request to the service providing
organization in writing.
SDLC
Software Engineering
❑ Requirement Gathering: -
➢ This step onwards the software development team works to
carry on the project.
➢ The team holds discussions with various stakeholders from
problem domain and tries to bring out as much information
as possible on their requirements.
➢ The requirements are contemplated and defined into
1. User requirements,
2. System requirements
3. Functional requirements and
4. Non Functional requirement
What happens if the requirements are wrong?
RE and SM
❖ The system may be delivered late and cost more than originally
expected.
❖ The customer and end-users are not satisfied with the system. The
y may not use its facilities or may even decide to scrap it altogether.
❖ The system may be unreliable in use with regular system errors
and crashes disrupting normal operation.
❖ If the system continues in use, the costs of maintaining and
evolving the system are very high.
Why is requirements engineering difficult?
RE and SM
❑ Feasibility Study
➢ After requirement gathering, the team comes up with a rough
plan of software process.
➢ At this step the team analyzes if a software can be designed
to fulfill all requirements of the user, and if there is any
possibility of software being no more useful.
❑ Types of Feasibility Study
1. Technical Feasibility: Evaluates the availability of necessary
technology, resources, and expertise to successfully implement
the project. It considers factors like hardware, software,
personnel, and technical infrastructure.
SDLC
Software Engineering
❑ Software Design
➢ Next step is to bring down whole knowledge of requirements
and analysis on the desk and design the software product.
➢ The inputs from users and information gathered in
requirement gathering phase are the inputs of this step.
➢ The output of this step comes in the form of two designs;
1. logical design (Algorithms), and
2. physical design (UML Diagrams).
➢ Engineers produce meta-data and data dictionaries, logical
diagrams, data-flow diagrams.
SDLC
Software Engineering
❑ Testing
➢ Software testing is done while coding by the developers and
thorough testing is conducted by testing experts at various
levels of code such as module testing, program testing,
System testing, and testing the product at user’s end.
➢ Early discovery of errors and their remedy is the key to
reliable software.
Chapter Three: -
Software Development
Methodologies
Software Development Paradigm
Software Engineering
❑ Waterfall Model
➢ Waterfall model is the simplest model of software
development paradigm.
➢ All the phases of SDLC will function one after another in linear
manner.
➢ That is, when the first phase is finished then only the second
phase will start and so on.
Software Development Paradigm
Software Development Paradigm
Software Engineering
Advantages
• Simple and easy to use.
• Easy to manage
• Works well for smaller projects
• Disadvantages
• Adjusting scope during the life cycle can kill a project
• No working software is produced until late
• Poor model for long and ongoing projects.
Software Development Paradigm
Software Engineering
❑ Iterative Model
➢ This model leads the software development process in
iterations. It projects the process of development in cyclic
manner repeating every step after every cycle of SDLC
process.
➢ The software is first developed on very small scale and all the
steps are followed which are taken into consideration. Then,
on every next iteration, more features and modules are
designed, coded, tested, and added to the software.
Software Development Paradigm
Software Engineering
Software Development Paradigm
Software Engineering
➢ Advantages
1. More flexible – inexpensive to change scope and
requirements.
2. Easier to test and debug during a smaller iteration.
3. Easier to manage risk because risky pieces are identified
and handled during its iteration.
4. Each of the iterations is an easily managed landmark
Software Development Paradigm
Software Engineering
❑ Spiral Model
➢ Spiral model is a combination of both, iterative model and one
of the SDLC model. It can be seen as if you choose one
SDLC model and combined it with cyclic process (iterative).
➢ This model considers risk, which often goes un-noticed by
most other models.
Software Development Paradigm
Software Development Paradigm
Software Engineering
Advantages
1. High amount of risk analysis
2. Good for large and mission-critical projects.
3. Software is produced early in the software life cycle.
Disadvantages
1. Can be a costly model to use.
2. Risk analysis requires highly specific expertise.
3. Project‘s success is highly dependent on the risk analysis phase.
4. Doesn‘t work well for smaller projects.
Software Development Paradigm
Software Engineering
❑ Advantages:
✓ Frequent Delivery
✓ Face-to-Face Communication with clients.
✓ Efficient design and fulfills the business requirement.
✓ Anytime changes are acceptable.
✓ It reduces total development time.
Software Development Paradigm
Software Engineering
❑ Disadvantages:
✓ Due to the shortage of formal documents, it creates confusion
and crucial decisions taken throughout various phases can be
misinterpreted at any time by different team members.
Software Eng
Hotel
Chapter End