Chapter One Introduction
Chapter One Introduction
Introduction to Software
Engineering
What is Software?
Instructions:
Software is: o Computer Programs
Instructions o Tells the computer Systems
Data structures • When to do?
Documents • What to do? The give tasks
• How to do?
o Statement of work
o Software requirements specification
o Software quality assurance plan Data structures:
o Software design o Manipulation & Operation of programs.
o Test plan o A specialized format for organizing,
o Source code processing, retrieving and storing data
o Operational & User manual
o Defect report
o Test report
Professional software development
Professional development :
o Software is developed for specific business purposes.
o It is usually developed by teams rather than individuals.
o It is maintained and changed throughout its life.
o Software engineering support professional software development .
o It includes techniques that support program specification, design, implementation, and
evolution.
o Software is not just the programs themselves but also
o All associated documentation.
o Configuration of data that is required to make these programs operate correctly
What is Software Engineering?
Engineers Theory:
o A supposition or a system of ideas
o Make things work. intended to explain something,
o Apply theories, methods and tools where these are appropriate. o Especially one based on general
principles independent of the thing
o Try to discover solutions to problems even when there are no to be explained
applicable theories and methods. Tools:
o Constraints in software production: o A software program that aids the software
production.
o Organizational constraints o Text editors
o Schedule constraints o Version controllers
o CI/CD tools
o Financial constraints o General Documentation tools, etc.
All aspects of software production:
A modeling activity:
Example 1:
o Basic methods of science
o The fossil biologists unearth a few bones and teeth
o Abstract representation of a systems.
preserved from some dinosaur.
o Models are useful to deal with the
o From the bone fragments, they can reconstruct a model of
systems.
that animal.
o That enables us to answers questions
o When they dig more bones, legs, teeth and claws they can
about the system.
build the real model of the dinosaurs.
o It enables us to visualize and understand
the system
Example 2:
o The software engineers:
o Physicists are building a model of matter and energy and
how they fit together at most basic, subatomic level. 1) Need to understand the environment in which the
o Both system modellers deals with two types of entities: the system operate.
real world system, observed in terms of a set of
2) Need to understand the system they could build,
phenomena, and the application domain model, represent
to evaluate different solutions and trade-offs.
as a set of interdependent concepts.
o As general aspects, models can represent static or
o Software engineers face similar challenges as fossil biologist
dynamic situations.
and physicist.
A problem-solving activity: Knowledge Acquisition activity
◦ Software evolution
Software Specification
o It means programming
o Converting a system specification
into an executable system.
Design Activities Design Products
Requirement
Component Design Component Specification
Specification
Integration Testing
System testing
Acceptance testing
Software Evolution
• Changes can be made to software.
• If there is change:
o Changes will be proposed and
Feasibility
Determining if the proposed development is worthwhile.
Market analysis
Determining if there is a potential market for this product.
Requirements
Determining what functionality the software should contain.
Software Life Cycle Activities…
oDomain analysis: Determining what tasks and structures are common to this problem.
Project planning
Determining how to develop the software.
o Cost analysis: Determining cost estimates.
Software Life Cycle Activities…
o Scheduling: Building a schedule for the development.
o Software quality assurance: Determining activities that will help ensure quality of the
product.
Design
oInterface design: Specifying the interfaces between the parts of the system.
Executing the software with data to help ensure that the software works
correctly.
oRegression testing: Saving tests from the previous version to ensure that
the new version retains the previous capabilities.
Software Life Cycle Activities…
Implementation
Building the software.
Delivery
Providing the customer with an effective software solution.
o Installation: Making the software available at the customer’s operational site.
o Training: Teaching the users to use the software.
o Help desk: Answering questions of the user.
Software Life Cycle Activities…
Maintenance
Updating and improving the software to ensure continued usefulness
Software Process Models