CH 1

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 22

Fundamental of Software

Development

Unit – I

About Software Development

Compiled by :
Amisha D. Patel
Lecturer in Info.Tech.
G. P. Valsad
Learning Outcomes
After actively interacting with the content, you will be able to:
 Explain what software and software engineering.
 Give original examples of system software and application software.
 List characteristics of Web-based application.
 Explain Software engineering as A layered technology.
 Discuss about Software Myths.
 Explain Software Process framework and umbrella activities.

CO1: Explain software development activities.


What is Software?
Software is: (1) instructions (computer
programs) that when
executed provide desired features,
function, and performance; (2) Programs
data structures that enable the
programs to adequately manipulate
information and (3) documentation that
describes the operation and Software
use of the programs.
Data Documentation
IEEE defines
“The collection of computer program,
procedures, rules and
data concerned with the operation of a User System
data processing system.” Documentation Documentation
TYPES OF SOFTWARE
SYSTEM SOFTWARE APPLICATION SOFTWARE
System software is a term referring to any Application Software is any program or
computer software which manages and
controls the hardware so that application group of programs that is design for end
software can perform a task. user.

 System Software includes the Operating  Example:


System and all the utilities that enable the
•Office, Excel, Word, Power
computer to function.
Point, Internet browsers
Example: like Firefox, Chrome...
• Operating Systems, Compiler, Loader,
Linker, Interpreter.
Characteristics of Software
The best quality software should be:
 Cost effective
 Easy to understand
 Efficient
 Modifiable
 Modular
 Proper Documented
 Reliable
 Reusable
Characteristics that are different than
Hardware
 Software is engineered, not manufactured like hardware
 Software does not wear out

Software gives component-based construction, it gives


reusability of components
 Software is flexible for custom built
Characteristics of a Web-Application
What is Software Engineering?
“Software engineering is the application of a systematic,
disciplined, quantifiable approach to the development, operation, and
maintenance of
software.”
 Software engineering is:
• An engineering discipline that provides knowledge,
tools, and Methods for:
• Defining software requirements
• Performing software design
• Software construction
• Software testing
• Software maintenance tasks
• Software project management
Need of Software Engineering
• Large software – In our real life, it is quite more comfortable to build a wall than a house or building. In
the same manner, as the size of the software becomes large, software engineering helps you to build
software.

• Scalability- If the software development process were based on scientific and engineering concepts, it
is easier to re-create new software to scale an existing one.

• Adaptability: Whenever the software process was based on scientific and engineering, it is easy to re-
create new software with the help of software engineering.

• Cost- Hardware industry has shown its skills and huge manufacturing has lower the cost of the
computer and electronic hardware.

• Dynamic Nature- Always growing and adapting nature of the software. It depends on the environment
in which the user works.

• Quality Management: Offers better method of software development to provide quality software
products.
Software Engineering A layered Technology
Quality focus:- Methods :-
 Main principle of Software Engineering is Quality focus.  Software engineering methods provide the technical how-to's for
building software.
 Bed Rock for any product
 Methods encompass a broad array of tasks that include
 Degree of goodness
requirements analysis, design, program construction, testing, and
 Correctness, Maintainability, Usability support.

 An engineering approach must have a focus on quality.  Software engineering methods rely on a set of basic principles that
govern each area of the technology and include modeling activities
 Quality Management(TQM), Six Sigma, ISO 9001, ISO 9000-3 , Capability and other descriptive techniques.
Maturity Model(CMM) ,CMMI & similar approaches encourages a
continuous process improvement culture.

Process :- Tools :-
 The foundation for software engineering is the process layer.  Software engineering tools provide automated or semi-automated
support for the process and the methods.
 “What” to do
 Deals with Activities, actions and Task  When tools are integrated so that information created by one tool
can be used by another, a system for the support of software
 Comes out with “HOW” to Question development, called computer-aided software engineering, is
 Software engineering process is the glue that holds the technology established.
layers together.  CASE combines software, hardware, and a software engineering
 Process defines a framework activities for effective delivery of software database (a repository containing important information about
engineering technology. analysis, design, program construction, and testing) to create a
software engineering environment analogous to CAD/CAE
(computer-aided design/engineering) for hardware.
SOFTWARE MYTHS
• Management myths: Managers with software responsibility are often
under pressure to maintain budgets, keep schedules from slipping, and
improve quality. Following are the management myths:
– Myth: We already have a book that’s full of standards and procedures for building
software, won’t that provide my people with everything they need to know?
– Reality: The book of standards may very well exist, but isn’t used. Most software
practitioners aren’t aware of its existence. Also, it doesn’t reflect modern software
engineering practices and is also complete.
– Myth: My people have state-of-the-art software development tools, after all, we buy
them the newest computers.
– Reality: It takes much more than the latest model mainframe, workstation, or PC to do
high-quality software development. Computer-aided software engineering (CASE) tools
are more important than hardware for achieving good quality and productivity, yet the
majority of software developers still do not use them effectively.
SOFTWARE MYTHS
– Myth: If we get behind schedule, we can add more programmers and catch up
(sometimes called the Mongolian horde concept).
– Reality: Software development is not a mechanistic process like manufacturing. As new
people are added, people who were working must spend time educating the
newcomers, thereby reducing the amount of time spent on productive development
effort. People can be added but only in a planned and well-coordinated manner.
– Myth: If I decide to outsource the software project to a third party, I can just relax and
let that firm build it.
– Reality: If an organization does not understand how to manage and control software
projects internally, it will invariably struggle when it outsources software projects.
SOFTWARE MYTHS
• Customer myths: Customer myths lead to false expectations (by the customer)
and ultimately, dissatisfaction with the developer. Following are the customer
myths:
– Myth: A general statement of objectives is sufficient to begin writing programs-we can fill in
the details later.
– Reality: A poor up-front definition is the major cause of failed software efforts. A formal and
detailed description of the functions, behavior, performance, interfaces, design constraints,
and validation criteria is essential.
– Myth: Project requirements continually change, but change can be easily accommodated
because software is flexible.
– Reality: It is true that software requirements change, but the impact of change varies with
the time at which it is introduced. When changes are requested during software design, the
cost impact grows rapidly. Resources have been committed and a design framework has been
established. Change can cause heavy additional costs. Change, when requested after
software is in production, can be much more expensive than the same change requested
earlier.
SOFTWARE MYTHS
• Practitioner’s myths: Practitioners have following myths:
– Myth: Once we write the program and get it to work, our job is done.
– Reality: Industry data indicate that between 60 and 80 percent of all effort expended
on software will be expended after it is delivered to the customer for the first time.
– Myth: Until I get the program “running” I have no way of assessing its quality.
– Reality: One of the most effective software quality assurance mechanisms can be
applied from the inception of a project—the formal technical review.
Process and Software Process
Process
 “Process is a series of steps involving activities, constraints and resources that
produce an intended output”
 “Process is define as program in execution”
Software Process
A structured set of activities required to develop a software system
 Specification
 Analysis, design and implementation.
 Validation
 Evolution
Software Process Framework
Framework is a Standard way to build and deploy applications. Software
Process Framework is a foundation of complete software engineering process.
Software process framework includes all set of umbrella activities. It also
includes number of framework activities that are applicable to all software
projects.
Generic Process Framework
1. Communication:
In this activity, heavy communication with customers and other stakeholders, requirement
gathering is done.

2. Planning:
In this activity, we discuss the technical related tasks, work schedule, risks, required resources etc.

3. Modeling:
Modelling is about building representations of things in the ‘real world’.In modelling activity, a
product’s model is created in order to better understanding and requirements.

4. Construction:
In software engineering, construction is the application of set of procedures that are needed to
assemble the product. In this activity, we generate the code and test the product in order to make
better product.

5. Deployment:
In this activity, a complete or non-complete products or software are represented to the customers
to evaluate and give feedback. on the basis of their feedback we modify the products for supply
better product.
Umbrella activities
“Applied throughout the software process”

 Help a software team to manage and control progress, quality, change, and risk.

Activities

 Software project tracking and control

 Risk management

 Software quality assurance

 Measurement

 Software configuration management

 Reusability management

 Work product preparation and production


Process Flow
Process Flow

Linear process flow executes each of the five activities in sequence.


An iterative process flow repeats one or more of the activities before
proceeding to the next.
An evolutionary process flow executes the activities in a circular manner.
Each circuit leads to a more complete version of the software.
A parallel process flow executes one or more activities in parallel with other
activities ( modeling for one aspect of the software in parallel with
construction of another aspect of the software.
Thank You

You might also like