You are on page 1of 20

Software Construction

Lecture
Introduction
Dr.Abdualmajed Alkhulaidi
Associate professor at Sana’a University
Doctor of Philosophy in Software Engineering
An overview
There are several ways to develop software. Some
use an organized method in the development
process and others use a method gradually, as the
program is gradually developed.
What dose mean Software
Development?

Software construction is a process by which


individual software is created using a specific
programming language.
Software Conception

Definition:

Software is a set of instructions interconnected


to solve a particular problem.
Software Attributes of Good
 Maintainability
 Adaptability
 Dependability{availability, reliability, safety
and security}
 Usability
 Portability{The ability of the program to move
from one environment to another}
Participants in the software
development process

• User
• Customer
• Developer
Classification of Software
 System software
 Real-time software
 Business software
 Engineering and scientific software
 Artificial intelligence (AI) software
 Web-based software
 Personal computer (PC) software
Critical systems
Critical systems: systems where reliability is not
available, damage to which results in loss
Economic and material damage and loss of life.
Types of critical systems

Critical systems in terms of safety: failure in these -1


systems lead to human injury, or to serious
.environmental damage
Critical systems in terms of security: Failure in these -2
.systems cause a great loss
Critical systems in terms of tasks: failure in these-3
systems failure to implement the activity aimed at
.achieving a certain goal
Critical systems in terms of work: the failure of these-4
.systems on the company, significant costs
Critical system failures
All failures can occur in the three components of the system:
• hardware components: material components fail in the
system for several reasons. The reason may be an error in
the design of the physical components or because these
components have reached the end of their normal lives.
• Software Components: Software components fail to
return to analysis, design, or investigation errors.
• Human component: System operators may fail to operate
properly due to the inexperience of the person on the
system.
Dimensions of systems reliability
Availability: The possibility that the system will be able-
.to provide its services at any time we ask them to do so
Reliability: The probability that the system will deliver-
its expected services correctly to the user within a
.specified period of time, ie, related to a period of time
Safety: What is the likelihood that the system will cause-
?harm to humans and their environment
Security: What is the likelihood that the system will be-
?able to address the hacking
Is the reliability and usefulness of the
system identical?
Of course not, for example the word processor
we use to write texts, it is not very reliable but
very useful and useful for us, so we often do the
conservation and frequent use, and we maintain
many backups of our work and this reflects lack
of confidence in this system.
Characteristics of systems reliability

- Easy to repair.
- Easy maintenance.
- Ability to survive: The ability of the system to
provide its services even during the exposure of a
breakthrough, that is during the paralysis of one
of its parts.
- Tolerance for errors: reflects the tolerance of the
system with errors that can be made by the user.
Software development lifecycle
Stages of software development
• 1. Planning: Without the perfect plan, calculating the strengths and
weaknesses of the project, development of software is meaningless.
Planning kicks off a project flawlessly and affects its progress positively.
2. Analysis: This step is about analyzing the performance of the software
at various stages and making notes on additional requirements. Analysis is
very important to proceed further to the next step.
3. Design: Once the analysis is complete, the step of designing takes over,
which is basically building the architecture of the project. This step helps
remove possible flaws by setting a standard and attempting to stick to it.
4. Development & Implementation: The actual task of developing the
software starts here with data recording going on in the background. Once
the software is developed, the stage of implementation comes in where the
product goes through a pilot study to see if it’s functioning properly.
5. Testing: The testing stage assesses the software for errors and
documents bugs if there are any.
6. Maintenance: Once the software passes through all the stages without
any issues, it is to undergo a maintenance process wherein it will be
maintained and upgraded from time to time to adapt to changes.
Software Engineering Methodologies

Software engineering methodology is a


systematic approach to software development
and aims to facilitate the production of high-
quality software products at low cost
Procedural Models General Software
Engineering
 The waterfall development.
 Iterative development.
 Component based SE.
Programming process model
Programming process model: is the
development strategy in the programming
process through the use of appropriate methods
and tools.
On what basis is the software engineering
model selected?
The software engineering process model is
selected based on the nature of the project or
applications, the methods and tools used, and
the control and performance required.
How can software development be
described to solve any problem?

You might also like