Professional Documents
Culture Documents
Software Engineering: The Term Is Made of Two Words, Software and Engineering
Software Engineering: The Term Is Made of Two Words, Software and Engineering
Software Engineering: The Term Is Made of Two Words, Software and Engineering
1
2
Well defined Definition : Software engineering is an engineering branch
associated with development of software product using well-defined scientific
principles, methods and procedures.
1.Today, software takes on a dual role. It is a product and, at the same time,
the vehicle for delivering a product.
4
Note :
Importance of evolution
5
A spiral model of development and evolution
6
software characteristics
7
3. In theory, software does not wear out at all
* Many software problems arise due to myths that are formed during the initial
stages of software development. Unlike ancient folklore that often provides
valuable lessons, software myths propagate false beliefs and confusion in the
minds of management, users and developers.
9
Management Myths
If the project is behind schedule, increasing the number Adding more manpower to the project, which is already
of programmers can reduce the time gap. behind schedule, further delays the project.
New workers take longer to learn about the project as
compared to those already working on the project.
If the project is outsourced to a third party, the Outsourcing software to a third party does not help the
management can relax and let the other firm develop organization, which is incompetent in managing and
software for them. controlling the software project internally. The
organization invariably suffers when it out sources the
software project.
10
In most cases, users tend to believe myths about the software because software managers and developers do not try to
correct the false beliefs. These myths lead to false expectations and ultimately develop dissatisfaction among the users.
Common user myths are listed in the below.
User Myths :
Brief requirement stated in the initial process is Starting development with incomplete and ambiguous
enough to start development; detailed requirements requirements often lead to software failure. Instead, a
can be added at the later stages. complete and formal description of requirements is essential
before starting development.
Software is flexible; hence software requirement changes Incorporating change requests earlier in the development
can be added during any phase of the development process costs lesser than those that occurs at later stages.
process. This is because incorporating changes later may require
redesigning and extra resources
11
In the early days of software development, programming was viewed as an art, but now software development has
gradually become an engineering discipline. However, developers still believe in some myths-. Some of the common
developer myths are mentioned below.
Software development is considered complete when the 50% to 70% of all the efforts are expended after the software is
code is delivered. delivered to the user.
The success of a software project depends on the quality of The quality of programs is not the only factor that makes the
the product produced. project successful instead the documentation and software
configuration also play a crucial role.
Software engineering requires unnecessary documentation, Software engineering is about creating quality at every level of
which slows down the project. the software project. Proper documentation enhances quality
which results in reducing the amount of rework.
The only product that is delivered after the completion of a The deliverables of a successful project includes not only the
project is the working program(s). working program but also the documentation to guide the users
for using the software.
Software quality can be assessed only after the program is The quality of software can be measured during any phase of
executed. development process by applying some quality assurance
mechanism. One such mechanism is formal technical review
that can be effectively used during each phase of development
to uncover certain errors
12
Software Crisis is a term used in the early days of computing science for
difficulty of writing useful and efficient computer programs in the required
time.
14
15
Important Note : Solution of Software Crisis is Software Engineering
16
Software Development is a Layered Technology
1. Quality Focus
2. Process
3. Methods
4. Tools
17
Quality Focus
18
Process
2. Process defines a framework for a set of Key Process Areas (KPAs) that
must be established for effective delivery of software engineering technology.
19
Methods :
Software engineering methods provide the technical idea for building software.
Methods will include requirements analysis, design, program construction,
testing, and support.
This relies on a set of basic principles that govern each area of the technology
and include modelling activities and other descriptive techniques.
Tools :
When tools are integrated so that information created by one tool can be used
by another, a system for the support of software development, called computer-
aided software engineering is established.
20
Software process
Software Process is a set of required activities and the outcome of the activities with a target to produce a
software product.
A software process is a flowchart of developing a software product, which includes gathering requirements,
analysing those requirements, scheduling development phases, checking the developments, implementing
changes etc. and this can be till the delivery of the final software product.
21
An SRS should have enough information for developers to complete
the software described. It not only lays out the description of the
software under development but also the purpose it will serve: what
the software is supposed to do and how it should perform.
22
Linear Sequential Model
23
24
Requirements: Potential requirements, deadlines and guidelines for the
project are analysed and placed into a functional specification. This stage
handles the defining and planning of the project without mentioning specific
processes.
Testing: This is when quality assurance, unit, system and beta tests take
place to report issues that may need to be resolved. This may cause a forced
repeat of the coding stage for debugging. If the system passes the tests, the
waterfall continues forward. 25
Operation/Deployment: The product or application is deemed fully
functional and is deployed to a live environment.
Important Note :
26
Advantages of the waterfall model
* Design is not adaptive; often when a defect is found, the entire process
needs to start over.
27
Prototyping model
The prototyping model is a systems development method in which a prototype is built, tested and then reworked as
necessary until an acceptable outcome is achieved from which the complete system or product can be developed.
A prototype is an early sample, model, or release of a product built to test a concept or process.
Ans: Prototyping is an experimental process where design teams implement ideas into tangible forms from paper to
digital. Teams build prototypes of varying degrees of quality to capture design concepts and test on users. With
prototypes, you can refine and validate your designs so your brand can release the right products.
28
Steps of Prototype Model :
29
Advantage of Prototype Model
30
Spiral Model
32
Uses of the spiral model
1. The spiral model is best used in large, expensive and complicated projects
4. Long term projects that are not feasible due to altered economic priorities
9. The Flexibility, Customer satisfaction and Risk handling are other benefits of
Spiral Model
33
Important Note : The progressive nature of the model allows developers to
break a big project into smaller pieces and tackle one feature at a time,
ensuring nothing is missed. Furthermore, since the prototype building is done
progressively, the cost estimation of the whole project can sometimes be
easier.
Limitations :
1. High cost - The spiral model is expensive and, therefore, is not suitable for small
projects.
3. Complexity - The spiral model is more complex than other SDLC options. For it to
operate efficiently, protocols must be followed closely. Furthermore, there is
increased documentation since the model involves intermediate phases.
4. Hard to manage time - Going into the project, the number of required phases is
often unknown, making time management almost impossible. Therefore, there is
always a risk for falling behind schedule or going over budget. 34
RAD Model [Rapid Application Development]
* In RAD model, there is less attention paid to the planning and more priority
is given to the development tasks.
1. Business Modelling
2. Data Modelling
3. Process Modelling
4. Application Generation
5. Testing and Turnover
35
Business Modelling :
Data 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 as per the business model.
The process model for any changes or enhancements to the data object
sets is defined in this phase.
Application Generation :
The actual system is built and coding is done by using automation tools to
convert process and data models into actual prototypes.
37
Testing and Turnover :
The overall testing time is reduced in the RAD model as the prototypes are
independently tested during every iteration.
However, the data flow and the interfaces between all the components need to
be thoroughly tested with complete test coverage.
38
When to use RAD Methodology?
39
Advantages and Disadvantages
Advantages Disadvantages
It is useful when you have to reduce Not all application is compatible with
the overall project risk RAD