You are on page 1of 72

Unit:1

Introduction to

Software and Software Engineering


❖ Software, Characteristics of Software, Software Application Domains
❖ Software Engineering, Software Engineering Layered Approach
❖ Software Process, Process Framework Activities , Umbrella Activities
❖ Software Myths
Management Myth
Customer Myth
Practitioner's/Developer Myth)
❖ Software Process Models
The Waterfall Model
Incremental Process Model
Prototyping Model
Spiral Model
Rapid Application Development Model (RAD)
Component based Development
What is Software?
❖ Computer program that when executed provide desired
features, function & performance
❖ Data Structure that enable programs to easily manipulate
information
❖ Descriptive information in both hard and soft copy that
describes the operation and use of programs
What is Software Engineering?
❖ The term software engineering is the product of two words,
software, and engineering.
❖ The software is a collection of integrated programs.
❖ Computer programs and related documentation such as
requirements, design models and user manuals.
❖ Engineering is the application of scientific and practical
knowledge to invent, design, build, maintain, and improve
frameworks, processes, etc.
Why is Software Engineering required?
Software Engineering is required due to the following reasons:
❖ To manage Large software
❖ For more Scalability
❖ Cost Management
❖ To manage the dynamic nature of software
❖ For better quality Management
Importance of Software Engineering
Characteristics of Software

1)Software is developed or engineered; it is not manufactured in the


classical sense:
❖ Although some similarities exist between software development and
hardware manufacturing, few activities are fundamentally different.
❖ In both activities, high quality is achieved through good design, but the
manufacturing phase for hardware can introduce quality problems than
software.
2)The software doesn’t “wear out.”:
❖ Hardware components suffer from the growing effects of many other
environmental factors. Stated simply, the hardware begins to wear
out.
❖ Software is not susceptible to the environmental maladies that cause
hardware to wear out.
❖ When a hardware component wears out, it is replaced by a spare part.
❖ There are no software spare parts.
❖ Every software failure indicates an error in design or in the
process through which design was translated into machine-
executable code. Therefore, the software maintenance tasks
that accommodate requests for change involve considerably
more complexity than hardware maintenance. However, the
implication is clear—the software doesn’t wear out.
3)The software is custom-built rather than assemble:
❖ A software part should be planned and carried out with the
goal that it tends to be reused in various projects.
❖ Current reusable segments encapsulate the two information
and the preparation that is applied to the information,
empowering the programmer to make new applications from
reusable parts.
❖ In the hardware world, component reuse is a natural part of
the engineering process.
Software Engineering Layered Approach

❖ Software engineering is a fully layered technology, to develop


software we need to go from one layer to another. All the layers are
connected and each layer demands the fulfillment of the previous
layer.
❖ Layered technology is divided into four parts:
1. A quality focus:
❖ It defines the continuous process improvement principles of
software.
❖ It provides integrity that means providing security to the
software so that data can be accessed by only an authorized
person, no outsider can access the data.
❖ It also focuses on maintainability and usability.
2. Process:
❖ It is the foundation or base layer of software engineering.
❖ It is key that binds all the layers together which enables the
development of software before the deadline or on time.
❖ Process defines a framework that must be established for the
effective delivery of software engineering technology.
❖ The software process covers all the activities, actions, and tasks
required to be carried out for software development
3. Method:

❖ During the process of software development the answers to


all “how-to-do” questions are given by method.
❖ It has the information of all the tasks which includes
communication, requirement analysis, design modeling,
program construction, testing, and support.
4. Tools:

❖ Software engineering tools provide a self-operating system


for processes and methods.
❖ Tools are integrated which means information created by one
tool can be used by another.
Software Process Framework:
❖ A software process is defined as a collection of work activities,
actions, and tasks that are performed.

❖ Software process includes:


Tasks – focus on a small, specific objective.
Activities – group of related tasks and actions for a major objective.
Action – set of tasks that produce a major work product.
❖ A generic process framework for software engineering defines five
framework activities—
-Communication
-Planning
-Modeling
-construction
-deployment
❖ Communication: By communication, customer requirement
gathering is done. Communication with consumers and
stakeholders to determine the system’s objectives and the
software’s requirements.

❖ Planning: Establish engineering work plan, describes technical


risk, lists resources requirements, work produced and defines
work schedule.
❖ Modeling: Architectural models and design to better understand
the problem and for work towards the best solution. The software
model is prepared by:
o Analysis of requirements
o Design
❖ Construction: Creating code, testing the system, fixing bugs, and
confirming that all criteria are met. The software design is
mapped into a code by:
o Code generation
o Testing
❖ Deployment:
In this activity, a complete or non-complete product or software
is represented to the customers to evaluate and give feedback.
On the basis of their feedback, we modify the product for the
supply of better products.
Umbrella activities:
❖ Umbrella Activities are that take place during a software development
process for improved project management and tracking.
1.Software project tracking and control: This is an activity in which
the team can assess progress and take corrective action to maintain the
schedule. Take action to keep the project on time by comparing the
project’s progress against the plan.
2.Risk management: The risks that may affect project outcomes or
quality can be analyzed. Analyze potential risks that may have an impact
on the software product’s quality and outcome.
3.Software quality assurance: These are activities required to maintain
software quality. Perform actions to ensure the product’s quality.

4.Formal technical reviews: It is required to assess engineering work


products to uncover and remove errors before they propagate to the next
activity. At each level of the process, errors are evaluated and fixed.

5.Software configuration management: Managing of configuration


process when any change in the software occurs.
6.Work product preparation and production: The activities to create
models, documents, logs, forms, and lists are carried out.
7.Reusability management: It defines criteria for work product reuse.
Reusable work items should be backed up, and reusable software
components should be achieved.
8. Measurement: In this activity, the process can be defined and collected.
Also, project and product measures are used to assist the software team in
delivering the required software.
Software Myths:

Most, experienced experts have seen myths or superstitions (false beliefs


or interpretations) or misleading attitudes (naked users) which creates
major problems for management and technical people. The types of
software-related myths are listed below.
(i) Management Myths:
Myth 1:
We have all the standards and procedures available for software
development.
Fact:

● Software experts do not know all the requirements for the


software development.
● And all existing processes are incomplete as new software
development is based on new and different problem.
Myth 2:
The addition of the latest hardware programs will improve the software
development.
Fact:

● The role of the latest hardware is not very high on standard software
development; instead (CASE) Engineering tools help the computer, they
are more important than hardware to produce quality and productivity.
● Hence, the hardware resources are misused.
Fact:

● Official and detailed description of the database function,


ethical performance, communication, structural issues and
the verification process are important.
● Unambiguous requirements (usually derived iteratively) are
developed only through effective and continuous
communication between customer and developer.
(ii)Customer Myths:
The customer can be the direct users of the software, the technical
team, marketing / sales department, or other company. Customer
has myths leading to false expectations (customer) & that’s why
you create dissatisfaction with the developer.
Myth 1:
A general statement of intent is enough to start writing plans
(software development) and details of objectives can be done over
time.
(iii)Practitioner’s Myths:
Myths 1:
They believe that their work has been completed with the writing of
the plan.
Fact:

● It is true that every 60-80% effort goes into the maintenance


phase (as of the latter software release). Efforts are required,
where the product is available first delivered to customers.
Myths 2:
There is no other way to achieve system quality, until it is
“running”.
Fact:

● Systematic review of project technology is the quality of


effective software verification method. These updates are
quality filters and more accessible than test.
❖ Software Process Models

1)The Waterfall Model:

● Requirements are very well documented, clear and fixed.


● Product definition is stable.
● Technology is understood and is not dynamic.
● There are no ambiguous requirements.
● Ample resources with required expertise are available to
support the product.
● The project is short.
❖ Requirement Gathering and analysis − All possible requirements
of the system to be developed are captured in this phase and
documented in a requirement specification document.
❖ System Design − The requirement specifications from first phase
are studied in this phase and the system design is prepared. This
system design helps in specifying hardware and system
requirements and helps in defining the overall system
architecture.
❖ Implementation − With inputs from the system design, the system
is first developed in small programs called units, which are
integrated in the next phase. Each unit is developed and tested for
its functionality, which is referred to as Unit Testing.
❖ Integration and Testing − All the units developed in the
implementation phase are integrated into a system after testing of
each unit. Post integration the entire system is tested for any
faults and failures.
❖ Deployment of system − Once the functional and non-functional
testing is done; the product is deployed in the customer
environment or released into the market.
❖ Maintenance − There are some issues which come up in the
client environment. To fix those issues, patches are released.
Also to enhance the product some better versions are released.
Maintenance is done to deliver these changes in the customer
environment.
Advantages
❖ Simple and easy to understand and use
❖ Phases are processed and completed one at a time.
❖ Works well for smaller projects where requirements are very
well understood.
❖ Clearly defined stages.
❖ Well understood milestones.
❖ Easy to arrange tasks.
❖ Process and results are well documented.
Disadvantage:

❖ Not a good model for complex and object-oriented projects.


❖ Poor model for long and ongoing projects.
❖ Not suitable for the projects where requirements are at a moderate
to high risk of changing. So, risk and uncertainty is high with this
process model.
❖ It is difficult to measure progress within stages.
❖ Cannot accommodate changing requirements.
Incremental Process Model
❖ Incremental Model is a process of software development where
requirements divided into multiple standalone modules of the software
development cycle.
❖ In this model, each module goes through the requirements, design,
implementation and testing phases.
❖ Every subsequent release of the module adds function to the previous
release.
❖ The process continues until the complete system achieved.
❖ When the requirements are superior.
❖ A project has a lengthy development schedule.
❖ When Software team are not very well skilled or trained.
❖ When the customer demands a quick release of the
product.
❖ You can develop prioritized requirements first.
Advantage of Incremental Model

❖ Errors are easy to be recognized.


❖ Easier to test and debug
❖ More flexible.
❖ Simple to manage risk because it handled during its iteration.
❖ The Client gets important functionality early.
Disadvantage of Incremental Model

❖ Need for good planning


❖ Total Cost is high.
❖ Well defined module interfaces are needed.
1. Requirement analysis:

❖ In the first phase of the incremental model, the product analysis


expertise identifies the requirements.
❖ And the system functional requirements are understood by the
requirement analysis team. To develop the software under the
incremental model, this phase performs a crucial role.
2. Design & Development:

❖ In this phase of the Incremental model of SDLC, the design of the


system functionality and the development method are finished
with success.
❖ When software develops new practicality, the incremental model
uses style and development phase.
3. Testing:

❖ In the incremental model, the testing phase checks the


performance of each existing function as well as additional
functionality.
❖ In the testing phase, the various methods are used to test the
behavior of each task.
4. Implementation:

❖ Implementation phase enables the coding phase of the development


system.
❖ It involves the final coding that design in the designing and
development phase and tests the functionality in the testing phase.
❖ After completion of this phase, the number of the product working
is enhanced and upgraded up to the final system product.
Spiral Model

❖ Spiral model is one of the most important Software Development


Life Cycle models, which provides support for Risk Handling.
❖ it looks like a spiral with many loops.
❖ The exact number of loops of the spiral is unknown and can vary
from project to project.
1.Objectives determination and identify alternative solutions:

❖ Requirements are gathered from the customers and the objectives are identified,
elaborated, and analyzed at the start of every phase.

2.Identify and resolve Risks:

❖ During the second quadrant, all the possible solutions are evaluated to select the
best possible solution. Then the risks associated with that solution are identified
and the risks are resolved using the best possible strategy.
3.Develop next version of the Product:

❖ During the third quadrant, the identified features are developed


and verified through testing. At the end of the third quadrant,
the next version of the software is available.
4. Review and plan for the next Phase:

In the fourth quadrant, the Customers evaluate the so far


developed version of the software. In the end, planning for the
next phase is started.
Rapid Application Development Model (RAD)

❖ The RAD (Rapid Application Development) model is based on


prototyping and iterative development with no specific planning
involved.
❖ The process of writing the software itself involves the planning
required for developing the product.
❖ In the RAD model, the functional modules are developed in parallel as
prototypes and are integrated to make the complete product for faster
product delivery.
1)Business Modelling

❖ The business model for the product under development is designed in


terms of flow of information.
❖ A complete business analysis is performed to find the information for
business, how it can be obtained, how and when is the information
processed and what are the factors driving successful flow of
information.
2)Data Modelling

❖ The information gathered in the Business Modelling phase is


reviewed and analyzed to form sets of data objects vital for the
business.
❖ The attributes of all data sets is identified and defined. The relation
between these data objects are established and defined in detail in
relevance to the business model
3)Process Modelling

The data object sets defined in the Data Modelling phase are converted to
establish the business information flow needed to achieve specific
business objectives.

The process model for any changes or enhancements to the data object
sets is defined in this phase. Process descriptions for adding, deleting,
retrieving or modifying a data object are given.
4) Application Generation

❖ The actual system is built and coding is done by using automation


tools to convert process and data models into actual prototypes.
5) Testing and Turnover

❖ The overall testing time is reduced in the RAD model as the


prototypes are independently tested during every iteration.
❖ Since most of the programming components have already been
tested, it reduces the risk of any major issues.
Prototype Model

❖ The prototype model requires that before carrying out the


development of actual software. ,a working prototype of the system
should be built.
❖ A prototype is a toy implementation of the system.
Steps of Prototype Model

1. Requirement Gathering and Analyst


2. Quick Decision
3. Build a Prototype
4. Assessment or User Evaluation
5. Prototype Refinement
6. Engineer Product
Advantage of Prototype Model

1. Reduce the risk of incorrect user requirement

2. Good where requirement are changing/uncommitted

3. Regular visible process aids management

4. Support early product marketing

5. Reduce Maintenance cost.


Disadvantage of Prototype Model

1. An unstable/badly implemented prototype often becomes the


final product.
2. Difficult to know how long the project will last.
3. Prototyping tools are expensive.
4. Special tools & techniques are required to build a prototype.
5. It is a time-consuming process.

You might also like