Professional Documents
Culture Documents
Chapter 1
Introduction
BY Simachew M(MSc in Information Technology).
Introduction to software development
• What is software development?
• Software development is the practice of organizing the design and construction of software,
the beating heart of much technology fundamental to our personal and professional life.
• Software development refers to a set of computer science activities dedicated to the process
of creating, designing, deploying and supporting software
• The software itself is the set of instructions or programs that tell a computer what to do
• There are three basic types:
• System software to provide core functions such as operating systems, disk management,
utilities, hardware management, and other operational necessities.
• Programming software to give programmers tools such as text editors, compilers, linkers,
debuggers, and other tools to create code.
• Application software (applications or apps) to help users perform tasks.
Cont.
• A possible fourth type is embedded software. Embedded systems software is used to
control machines and devices not typically considered computers.
• Software development is primarily conducted by programmers, software engineers,
and software developers.
• There are roles in software development process.
i. Programmers, or coders, write source code to program computers for specific
tasks like merging databases, processing online orders etc.
ii. Software engineers apply engineering principles to build software and systems to
solve problems. They use modeling language and other tools to devise solutions
that can often be applied to problems
Cont.
iii. Software developers have a less formal role than engineers and can
be closely involved with specific project areas — including writing code.
And at the same time, they drive the overall software development
lifecycle.
Steps in software development
• Developing software typically involves the following steps:
Selecting a methodology to establish a framework in which the steps of software development are applied.
Gathering requirements to understand and document what is required by users and other stakeholders.
Choosing or building an architecture as the underlying structure within which the software will operate.
Developing a design around solutions to the problems presented by requirements, often involving process
Building a model with a modeling tool that uses a modeling language like SysML or UML to conduct early
Deploying the software for use and responding to and resolving user problems.
• These different approaches will focus the testing effort at different points in the
development process.
• The incremental development approach typically forms the basis for software
development within the larger systems.
Types of Software Development
Approaches
• There are four main types of software development approaches which are:
1. Waterfall Approach
• Development activities are performed in order, with possibly minor
overlap, but with little or no iteration between activities.
• The waterfall model is often also referred to as the linear and sequential
model
• In this model, the software development activities move to the next phase
only after the activities in the current phase are over.
• However, as is the case with a waterfall, one cannot return to the previous
stage.
Cont.
2. Incremental Approach
• Determines user needs and defines the overall architecture, but then
delivers the system in a series of increments
3. Spiral Approach
• The Agile software development process and its most popular method, Scrum,
use a dynamic and iterative way to build software.
• Agile is all about moving quickly, putting out new versions often, and responding
to what your users really need, even if that goes against what you had planned.
• RAD is the best approach to develop prototypes swiftly for testing software functionalities
without worrying about any effects on the end product.
• Faster Time-to-Market: RAD uses iterative development and prototyping, which means that
usable parts of the software can be delivered quickly.
• This allows businesses to bring their products to market faster, which can provide a significant
competitive advantage.
Software development principles
• There are many different software development principles that can help in
creating an application by maintaining clean codes which can result in its
success.
• One single process is not suitable for all the development so we must
use a configurable process which can deal with various applications.
10. Demonstration Based approach:
Thank You!!!