0% found this document useful (0 votes)
29 views

Chapter One Introduction

Uploaded by

noah05609
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
29 views

Chapter One Introduction

Uploaded by

noah05609
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 50

Chapter One-Part I

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?

Software Engineering is:


The establishment and use of sound engineering principles.
An engineering discipline that is concerned with all aspects of software production.
There are two key phrases:
◦ Engineering discipline
◦ All aspects of software production
Methods:
o Repeatable technique.
Engineering Discipline mean: o Steps involved in solving specific
problem.
o Particular procedures to accomplish or
approaching something.

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:

• Software engineering is not just concerned with the


technical processes of software development.
Examples:
• It is also concerned with software project o Jira
o Trello
management and with the o Microsoft Project
◦ Development of tools
◦ Methods and
◦ Theories to support software production.
Software Engineering is:

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

o Engineers search for an appropriate solution.


1) Formulate the problem.
2) Analyze the problem.
3) Search for solutions. Rationale-driven activity.

4) Decide on the appropriate solution.


5) Specify the solution.
Software Development Process Models
Software process is:
• The set of activities and associated results that produce a software product.
• Four fundamentals of software process are:
◦ Software specification
◦ Software development
◦ Software validation

◦ Software evolution
Software Specification

• It is the process of understanding and defining:


What services are required from the system and

Identifying the constraints on the system's operation


and development.

• It leads to the production of a requirements document.

• This document is the specification for the system.


•Requirements are usually presented at two levels of detail in this
document.
o End-users and customers need a high-level statement of the
requirements.

o System developers need a more detailed system specification.


Feasibility Study:

• An estimate is made of whether the identified user needs may


be satisfied: Types of Feasibility:

o Using current software and o Economic Feasibility


o Technical Feasibility
o Hardware technologies.
o Technological Feasibility
• The study considers whether:
o Organizational Feasibility
o The proposed system will be cost-effective from a business
o Political Feasibility
point of view and
o Legal Feasibility
o If it can be developed within existing budgetary constraints.
o Social Feasibility, etc.
o A feasibility study should be relatively cheap and quick.
Requirements elicitation and analysis:

• This is the process of deriving the system requirements through


o Observation of existing systems.

o Discussions with potential users and procurers.

o Task analysis and so on.

• This may involve the development of one or more system models


and prototypes.

• These help the analyst to understand the system to be specified.


Requirements specification:

System • The activity of translating the information


Requirements
gathered during the analysis activity into a
document that defines a set of requirements.
Functional Non-Functional
Requirements Requirements • Two types of requirements may be included in this
document.
• Functions of the • System performance ◦ User requirements
systems • End user criteria
• A services provided • Maintenance criteria ◦ System requirements
by the system • Dependability
• It yields observable • Hardware & software
result requirements
Requirements Validation:

• This activity checks the requirements for


realism, consistency and completeness.

• During this process, errors in the requirements


document are inevitably discovered.

• It must then be modified to correct these


problems.
Software Design & implementation

o Structure of the software


o Data models and structure used by the
systems
o Interface between system components
o Algorithms to be implemented.

o It means programming
o Converting a system specification
into an executable system.
Design Activities Design Products

Architectural Design System Architecture

Abstract Specification Software Specification

Interface Design Interface Specification

Requirement
Component Design Component Specification
Specification

Data Structure Design Data Structure Specification

Algorithm Design Algorithm Specification


Software Validation
• It is intended to show that
o A system conforms to its specification and

o The system meets the expectations of the customer buying


the system

• It involves checking (testing) the software process from


user requirements definition to program development.

• The stages in the testing process are:


Types of Testing

 Component (or unit) testing

 Integration Testing

 System testing

 Acceptance testing
Software Evolution
• Changes can be made to software.

• The existing system is assessed.

• If there is change:
o Changes will be proposed and

o The system modified according needs of changes.


Steps in software evolution are:

o Define system requirements


o Assess existing system
o Propose system changes
o Modify system
o Implementing the new system
Software life cycle and Process models

Software life cycle is:


Sequence of different activities that take place during software development.
There are different deliverables produced.
Deliverables can be
Agreements or evaluations
Objects such as source code or user manuals.
Usually, the activities and deliverables are closely related.
Software Life Cycle Activities

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…

oRequirement elicitation: Obtaining the requirements from the user.

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.

o Work-breakdown structure: Determining the subtasks necessary to develop the product


Software Life Cycle Activities…

Design

Determining how the software should provide the functionality.

oArchitectural design: Designing the structure of the system.

oInterface design: Specifying the interfaces between the parts of the system.

oDetailed design: Designing the algorithms for the individual parts.


Software Life Cycle Activities…
Testing

Executing the software with data to help ensure that the software works
correctly.

oUnit testing: Testing by the original developer.

oIntegration testing: Testing during the integration of the software.

oSystem testing: Testing the software in an environment that matches the


operational environment.

oAlpha testing: Testing by the customer at the developer’s site.


oBeta testing: Testing by the customer at the customer’s site.

oAcceptance testing: Testing to satisfy the purchaser.

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

• It is a simplified representation of a software process.

• It describes the processes that are done to achieve software development.


• Software process model can be:
Descriptive
Prescriptive

• There are several software:


Waterfall Model:
The first published model of the software
development process

It cascade from one phase to another.


Evolutionary Model:
This development is based on
An initial implementation,
Exposing this to user’s comment
Refining it through many versions until an adequate
system has been developed.
Component-Based Software Engineering :
It relies on reuse, has emerged and is becoming
increasingly used.
Reuse-oriented approach relies:
Reusable software components.
Integrating framework for these components.
Incremental Model:
In this model
Software specification
Design and implementation
are broken down into a series of increments that are each
developed in turn.
Customers:
◦ Identify, in outline, the services to be provided
by the system.
◦ Identify which of the services are most
important and which are least important to
them.
Spiral Model:
In this model:
Software process as a sequence of activities with some
backtracking from one activity to another, the process is
represented as a spiral.
Each loop in the spiral represents a phase of the software
process.
Each loop in the spiral is split into four sectors
Objective setting:-
Risk assessment and reduction
Development and validation:-
Planning
Process Assessment Models
There are different assessment models. These are:
Standard CMMI Assessment Method for Process Improvement(SCAMPI)
CMM-Based Appraisal for Internal Process Improvement (CBA IPI)
Software Process Improvement and Capability dEtermination (SPICE)
ISO 9001:2000 for Software
SCAMPI
This assessment model provides five step process
oInitiating
oDiagnosing
oEstablishing
oActing
oLearning
The SCAMPI method uses the SEI CMMI as the basis for assessment
CBA IPI
Provides a diagnostic technique for assessing the relative maturity of a software organization.
Uses the SEI CMM as the basis for the assessment
SPICE
A standard that defines a set of requirements for software process assessment.
The intent of the standard is to assist organizations in developing an objective evaluation of the
efficacy of any defined software process

ISO 9001:2000 for Software


A generic standard that applies to any organization that wants to improve the overall quality of the
products, systems, or services that it provides.
Software process metrics

Measurement is fundamental to any engineering discipline


Software Metrics: Broad range of measurements for computer software
Software Process: Measurement can be applied to improve it on a continuous basis
Software Project: Measurement can be applied in estimation, quality control, productivity
assessment & project control
Measurement can be used by software engineers in decision making.
Why Do We Measure?
To indicate the quality of the product.
To assess the productivity of the people who produce the product
To assess the benefits derived from new software engineering methods and tools
To form a baseline for estimation
To help justify requests for new tools or additional training
Types of Metrics:
Process Metrics
Product Metrics
Project Metrics
Process Metrics:
Process metrics are measures of the software development process, such as – Overall
development time – Type of methodology used
Process metrics are collected across all projects and over long periods of time.
Their intent is to provide indicators that lead to long-term software process improvement.
Process Metrics & Software Process Improvement:
To improve any process, the rational way is:
oMeasure Specific attributes of the process
oDerive meaningful metrics from these attributes.
oUse these metrics to provide indicators.
oThe indicators lead to a strategy for improvement.
Factors Affecting Software Quality
Project Metrics:
Project Metrics are the measures of Software Project and are used to monitor and control the
project.
They enable a software project manager to:
oMinimize the development time by making the adjustments necessary to avoid delays and
potential problems and risks.
oAssess product quality on an ongoing basis & modify the technical approach to improve
quality.
Used in estimation techniques & other technical work.
Metrics collected from past projects are used as a basis from which effort and time estimates are
made for current software project.
As a project proceeds, actual values of human effort & calendar time expended are compared to the
original estimates.
This data is used by the project manager to monitor & control the project.
Product metrics:
Product metrics are measures of the software product at any stage of its development, from
requirements to installed system.
Product metrics may measure:
o The complexity of the software design
o The size of the final program
o The number of pages of documentation produced
THANK YOU!!

You might also like