DIT 0203: SOFTWARE ENGINEERING
Prerequisite: DIT 0108
Contact Hours: Lectures 45 and Practical/Tutorials 0
Purpose of the course:
This course introduces learner to software engineering methodologies,
software analysis, design, programming and maintenance.
Expected Learning outcomes of the Course:
At the end of this course, the student should be able to;
i. Explain the concepts and techniques relevant to the process of
business software development
ii. Describe the characteristics and challenges of business computer
software projects
iii. Gain practical experience in design and development of a
computer software
Course content:
Introduction to software engineering.
Software development is the process of conceiving, specifying,
designing, programming, documenting, testing, and bug fixing involved in creating
and maintaining applications, frameworks, or other software components.
Software development is a process of writing and maintaining the source code,
but in a broader sense, it includes all that is involved between the conception of the
desired software through to the final manifestation of the software, sometimes in a
planned and structured process.
Therefore, software development may include research, new development,
prototyping, modification, reuse, re-engineering, maintenance, or any other
activities that result in software products.[2]
Software can be developed for a variety of purposes, the three most common being
to meet specific needs of a specific client/business (the case with custom software),
to meet a perceived need of some set of potential users (the case
with commercial and open source software), or for personal use (e.g. a scientist
may write software to automate a mundane task).
Embedded software development, that is, the development of embedded
software, such as used for controlling consumer products, requires the
development process to be integrated with the development of the controlled
physical product. System software underlies applications and the programming
process itself, and is often developed separately.
,The need for better quality control of the software development process has given
rise to the discipline of software engineering, which aims to apply the systematic
approach exemplified in the engineering paradigm to the process of software
development.
There are many approaches to software project management, known as software
development life cycle models, methodologies, processes, or models. The waterfall
model is a traditional version, contrasted with the more recent innovation of agile
software development.
The software engineering life cycle;
SDLC Models Explained: Agile, Waterfall, V-Shaped, Iterative, Spiral. One of the
basic notions of the software development process is SDLC models which stands
for Software Development Life Cycle models. ... There is no one single SDLC
model. They are divided into main groups, each with its features and weaknesses.
What are software life cycle models?
A software development life cycle (SDLC) model is a conceptual framework
describing all activities in a software development project from planning to
maintenance. This process is associated with several models, each including a
variety of tasks and activities.
What are the different process models of software engineering?
The four basic process activities are specification, development, validation, and
evolution are organized differently in different development processes. In the
waterfall model, they are organized in sequence, while in
incremental development they are interleaved.
Software Process
A software process (also known as software methodology) is a set of related
activities that leads to the production of the software. These activities may involve
the development of the software from the scratch, or, modifying an existing system.
Any software process must include the following four activities:
,1. Software specification (or requirements engineering): Define the main
functionalities of the software and the constraints around them.
2. Software design and implementation: The software is to be designed and
programmed.
3. Software verification and validation: The software must conforms to it’s
specification and meets the customer needs.
4. Software evolution (software maintenance): The software is being modified to
meet customer and market requirements changes.
In practice, they include sub-activities such as requirements validation, architectural
design, unit testing, …etc.
There are also supporting activities such as configuration and change
management, quality assurance, project management, user experience.
Along with other activities aim to improve the above activities by introducing new
techniques, tools, following the best practice, process standardization (so the
diversity of software processes is reduced), etc.
When we talk about a process, we usually talk about the activities in it. However, a
process also includes the process description, which includes:
1. Products: The outcomes of the an activity. For example, the outcome of
architectural design maybe a model for the software architecture.
2. Roles: The responsibilities of the people involved in the process. For example,
the project manager, programmer, etc.
3. Pre and post conditions: The conditions that must be true before and after an
activity. For example, the pre-condition of the architectural design is the
requirements have been approved by the customer, while the post condition is
the diagrams describing the architectural have been reviewed.
, Software Process Models
A software process model is a simplified representation of a software process. Each
model represents a process from a specific perspective.
Some methodologies are sometimes known as software development life
cycle (SDLC) methodologies, though this term could also be used more generally
to refer to any methodology.
A. Waterfall Model
The waterfall model is a sequential approach, where each fundamental activity of a
process represented as a separate phase, arranged in linear order.
In the waterfall model, you must plan and schedule all of the activities before
starting working on them (plan-driven process).
Plan-driven process is a process where all the activities are planned first, and the
progress is measured against the plan. While the agile process, planning is
incremental and it’s easier to change the process to reflect requirement changes.
The phases of the waterfall model are: Requirements, Design, Implementation,
Testing, and Maintenance.
Prerequisite: DIT 0108
Contact Hours: Lectures 45 and Practical/Tutorials 0
Purpose of the course:
This course introduces learner to software engineering methodologies,
software analysis, design, programming and maintenance.
Expected Learning outcomes of the Course:
At the end of this course, the student should be able to;
i. Explain the concepts and techniques relevant to the process of
business software development
ii. Describe the characteristics and challenges of business computer
software projects
iii. Gain practical experience in design and development of a
computer software
Course content:
Introduction to software engineering.
Software development is the process of conceiving, specifying,
designing, programming, documenting, testing, and bug fixing involved in creating
and maintaining applications, frameworks, or other software components.
Software development is a process of writing and maintaining the source code,
but in a broader sense, it includes all that is involved between the conception of the
desired software through to the final manifestation of the software, sometimes in a
planned and structured process.
Therefore, software development may include research, new development,
prototyping, modification, reuse, re-engineering, maintenance, or any other
activities that result in software products.[2]
Software can be developed for a variety of purposes, the three most common being
to meet specific needs of a specific client/business (the case with custom software),
to meet a perceived need of some set of potential users (the case
with commercial and open source software), or for personal use (e.g. a scientist
may write software to automate a mundane task).
Embedded software development, that is, the development of embedded
software, such as used for controlling consumer products, requires the
development process to be integrated with the development of the controlled
physical product. System software underlies applications and the programming
process itself, and is often developed separately.
,The need for better quality control of the software development process has given
rise to the discipline of software engineering, which aims to apply the systematic
approach exemplified in the engineering paradigm to the process of software
development.
There are many approaches to software project management, known as software
development life cycle models, methodologies, processes, or models. The waterfall
model is a traditional version, contrasted with the more recent innovation of agile
software development.
The software engineering life cycle;
SDLC Models Explained: Agile, Waterfall, V-Shaped, Iterative, Spiral. One of the
basic notions of the software development process is SDLC models which stands
for Software Development Life Cycle models. ... There is no one single SDLC
model. They are divided into main groups, each with its features and weaknesses.
What are software life cycle models?
A software development life cycle (SDLC) model is a conceptual framework
describing all activities in a software development project from planning to
maintenance. This process is associated with several models, each including a
variety of tasks and activities.
What are the different process models of software engineering?
The four basic process activities are specification, development, validation, and
evolution are organized differently in different development processes. In the
waterfall model, they are organized in sequence, while in
incremental development they are interleaved.
Software Process
A software process (also known as software methodology) is a set of related
activities that leads to the production of the software. These activities may involve
the development of the software from the scratch, or, modifying an existing system.
Any software process must include the following four activities:
,1. Software specification (or requirements engineering): Define the main
functionalities of the software and the constraints around them.
2. Software design and implementation: The software is to be designed and
programmed.
3. Software verification and validation: The software must conforms to it’s
specification and meets the customer needs.
4. Software evolution (software maintenance): The software is being modified to
meet customer and market requirements changes.
In practice, they include sub-activities such as requirements validation, architectural
design, unit testing, …etc.
There are also supporting activities such as configuration and change
management, quality assurance, project management, user experience.
Along with other activities aim to improve the above activities by introducing new
techniques, tools, following the best practice, process standardization (so the
diversity of software processes is reduced), etc.
When we talk about a process, we usually talk about the activities in it. However, a
process also includes the process description, which includes:
1. Products: The outcomes of the an activity. For example, the outcome of
architectural design maybe a model for the software architecture.
2. Roles: The responsibilities of the people involved in the process. For example,
the project manager, programmer, etc.
3. Pre and post conditions: The conditions that must be true before and after an
activity. For example, the pre-condition of the architectural design is the
requirements have been approved by the customer, while the post condition is
the diagrams describing the architectural have been reviewed.
, Software Process Models
A software process model is a simplified representation of a software process. Each
model represents a process from a specific perspective.
Some methodologies are sometimes known as software development life
cycle (SDLC) methodologies, though this term could also be used more generally
to refer to any methodology.
A. Waterfall Model
The waterfall model is a sequential approach, where each fundamental activity of a
process represented as a separate phase, arranged in linear order.
In the waterfall model, you must plan and schedule all of the activities before
starting working on them (plan-driven process).
Plan-driven process is a process where all the activities are planned first, and the
progress is measured against the plan. While the agile process, planning is
incremental and it’s easier to change the process to reflect requirement changes.
The phases of the waterfall model are: Requirements, Design, Implementation,
Testing, and Maintenance.