Sei sulla pagina 1di 30

INTRODUCTION TO

SOFTWARE ENGINEERING
SPRING 2019 (CSSE-3113)
CHANGE !!!
 In software projects one thing that is constant:
GOALS OF SOFTWARE ENGINEERING

To produce
high quality
software
at low cost.
SOFTWARE MYTHS

 Myth: A general statement of objectives is


sufficient to begin writing program ‐ we can fill in
the details later.
 Myth: Software engineering will make us create
voluminous and unnecessary documentation and
will invariably slow us down.
 Myth: If I decide to outsource the software
project to a third party, I can just relax and let that
firm built it.
SOFTWARE MYTHS

 Myth: If we get behind schedule we can add


more programmers and catch up.
 Myth: Project requirements continually change,
but change can be easily accommodated because
software is flexible.
 Myth: Once, we write the program and get it to
work our job is done.
 Myth: The only deliverable working product for a
successful project is the working program.
How to get
Software Projects ?
HOW TO GET SOFTWARE PROJECTS ?

 Idea based development !!


• Think, Analyze and Develop
• Identify Gaps and Need
• Search Market Trends
• How to get Money?
• Find out Trends
• Skills and Team Required
HOW TO GET SOFTWARE PROJECTS ?

 Market Oriented Development !!


• Visit and Find Gap
• Negotiate
• Use Personal Contacts
• Think on the Needs of Market
• Direct Customer based Development
• Industry Competitive Development
HOW TO GET SOFTWARE PROJECTS ?
 Freelancing
• Useful for initial startups
• Trending Freelancing Websites
• Upwork ( > 1.5m clients)
• Fiverr
• https://99designs.com/ (for Designers)
• Elance
• Freelance
• Demand Media (for Writers etc.)
• GetACoder (for Small Projects)
• and … many more…
The software
Process Models ?
THE SOFTWARE PROCESS
 A structured set of activities required to develop a
software system.
 Many different software processes but all involve:
• Specification – The functionality of the software and
constraints on its operation must be defined.
• Design and implementation – The software to meet the
specification must be produced
• Validation – checking that it does what the customer wants;
• Evolution – changing the system in response to changing
customer needs.
PLAN-DRIVEN AND AGILE PROCESS
 Plan‐driven processes are processes where all of
the process activities are planned in advance and
progress is measured against this plan.
 In agile processes, planning is incremental and it
is easier to change the process to reflect changing
customer requirements.
 There are no right or wrong software processes.
WATERFALL MODEL
 Waterfall is the oldest and most straightforward
structured approach based model which means
finish one phase, then move on to the next.
 Each stage relies on the information from the
previous stage.
 Waterfall is easy to understand and simple to
manage. However, early delays can throw off the
entire project timeline.
 It is unsuitable where flexibility is needed or if the
project is long term and ongoing.
WATERFALL MODEL

Requirement Analysis
and Definition

System and
Software Design

Implementation
and Unit Testing

Integration and
System Testing

Operation and
Maintenance
WATERFALL MODEL

Requirement Analysis
and Definition

System and
Software Design

Implementation
and Unit Testing

Integration and
System Testing

Operation and
Maintenance
WATERFALL MODEL - ADVANTAGES
 This model is simple in use and easy to understand.
 Its phases and activities are well defined.
 Each phase has specific deliverables.
 In this model phases are processed and completed
one at a time. Phases do not overlap.
 Waterfall model works well for smaller projects
where requirements are very well understood.
WATERFALL MODEL - DISADVANTAGES
 Assumes that the requirements of a system are frozen.
 It is very difficult to go back and change something that
was not well‐thought out in the concept stage.
 No working software is produced until late during the life
cycle.
 High amounts of risk and uncertainty.
 Not a good model for complex projects.
 Poor model for long and ongoing projects.
 Not suitable for the projects with changing requirements.
 Costly and require more time, in addition to the detailed
plan.
V-MODEL
 V‐Model also known as the Verification & Validation
model.
 The V‐model grew out of Waterfall and is characterized
by a corresponding testing phase for each development
stage.
 Like Waterfall, each stage begins only after the previous
one has ended.
 Instead of moving down in a linear way, the process
steps are bent upwards after the coding phase, to form
the typical V shape.
 The major difference between V‐model and waterfall
model is the early test planning in the V‐model.
V-MODEL

Verification Validation
V-MODEL – ADVANTAGES
 Simple and easy to use
 Each phase has specific deliverables.
 Higher chance of success over the waterfall model
due to the development of test plans early on
during the life cycle.
 Works well where requirements are easily
understood.
 Verification and validation of the product in early
stages of product development.
V-MODEL – DISADVANTAGES
 Very inflexible, like the waterfall model.
 Adjusting scope is difficult and expensive.
 The software is developed during the
implementation phase, so no early prototypes of
the software are produced.
 The model doesn’t provide a clear path for
problems found during testing phases.
 Costly and required more time, in addition to the
detailed plan.
PROTOTYPING MODEL
 It refers to the activity of creating prototypes of
software applications, for example, incomplete
versions of the software program being
developed.
 It is used to visualize some component of the
software to limit the gap of misunderstanding the
customer requirements by the development team.
 When the final prototype is developed, the
requirements is considered to be frozen.
PROTOTYPING MODEL
 Prototyping model has the following types:
• Throwaway prototyping
• Evolutionary prototyping
• Incremental prototyping
• Extreme prototyping
PROTOTYPING MODEL
 Throwaway prototyping
• Prototypes that are eventually discarded rather than
becoming a part of the finally delivered software.
PROTOTYPING MODEL
 Evolutionary prototyping
• Prototypes that evolve into the final system
through an iterative incorporation of user feedback.
PROTOTYPING MODEL
 Incremental prototyping
• The final product is built as separate prototypes. At the
end, the separate prototypes are merged in an overall
design.
PROTOTYPING MODEL
 Extreme prototyping
• It is used at the web based applications development
environment.
• It recommends to breaks down web development
into three phases where each phase depends on the
preceding one.
o The first phase is a static prototype that consists mainly of
HTML pages.
o In the second phase, the screens are programmed and fully
functional using a simulated services layer.
o In the third phase, the services are implemented
PROTOTYPING MODEL - ADVANTAGES
 Users/clients are actively involved in the development
 A working model of the system is provided, from
which the users get a better understanding of the
system being developed.
 Errors can be detected much earlier.
 Quicker user feedback is available leading to better
solutions.
 Missing functionality can be identified easily
 Confusing or difficult functions can be identified
 Quick implementation of incomplete but functional
application.
PROTOTYPING MODEL - DISADVANTAGES
 Leads to implementing and then repairing way of
building systems.
 Practically, this methodology may increase the
complexity of the system as scope of the system
may expand beyond original plans.

Potrebbero piacerti anche