0% found this document useful (0 votes)
3 views22 pages

Software Engineering Crises

Uploaded by

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

Software Engineering Crises

Uploaded by

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

Software

Engineering Crises
UNIT 2 Mod 2 Objective 1

CAPE Unit 2 – Module 2 / Software Engineering / 3


Software Engineering
• Software engineering is the process that delivers a product (software) that
• has all the attributes of a well engineered software. Is the discipline that is
• concerned with all aspects of software production from the early stages of
• system specification to maintaining the system after it has gone into use.
• There are a wide range of different approaches (process models) that are
• used to guide the software engineer as he takes the software through its life
• cycle.

CAPE Unit 2 – Module 2 / Software Engineering / 3


Software Crises Era
• Increased dependence of many organisations on their computer
systems.
• Crises in previous developments: for example,
• increasing costs of software development;
• dissatisfaction of users and management with the quality and suitability of
software;
• increasing length and complexity of the software

CAPE Unit 2 – Module 2 / Software Engineering / 3


Software Crises Era
• Requirements for standard interfaces, both to users and to other
software.
• Need for tighter control and management of
• The process;
• The visibility of the process;

CAPE Unit 2 – Module 2 / Software Engineering / 3


Software Crises Era
• Need for risk management.
• Importance of the need for the involvement of end users and
management.

CAPE Unit 2 – Module 2 / Software Engineering / 3


Why a structure approach?
• A structured design approach helps developers deal with the size and
complexity of large scale projects. The structured approach is a
process oriented approach, aiming to break a large complex project
into a series of smaller, more manageable modules.
• The Structured approach is usually associated with projects that have
the following characteristics :
• long time periods : The time involved in a structured approach is
generally measured in months, or even years.

CAPE Unit 2 – Module 2 / Software Engineering / 3


Why a structure approach?
• large-scale projects : The structured approach is usually applied to
large projects which involve a huge amount of detail and coordination
between various parts of the business and other systems.
• large budgets : Large projects will involve a large number of people
and will employ them over a long time scale. The budget,
consequently, will be large. New hardware and software is often
required for completion of the project, elevating the cost of the
project - though the amount spent upon personnel is usually the
highest cost factor.

CAPE Unit 2 – Module 2 / Software Engineering / 3


Cont.
• A System Analyst studies an existing system against the backdrop of the
• system's overall objective and then make changes or implements new
• system(s) to enhance its operation. In order for a system to function properly
• as intended, the system analysts usually employ at least one structured
• methodology. A structured technique can result in structured diagrams such
• as control logic flowcharts , hierarchy diagrams , business process
• flowcharts , organizational flowcharts , data-flow and entity-relationship
• diagrams , and other processes flowcharts , to mention a few.

CAPE Unit 2 – Module 2 / Software Engineering / 3


The steps of the Structured approach are as follows :

• Defining the problem. In this stage, the requirements for the


software are gathered and analysed, to produce a complete and
unambiguous specification of what the software is required to do. The
problem will need careful analysis so that the "true" issues involved
are identified.
• Planning. During this phase, a software architecture for the
implementation of the requirements is designed and specified,
identifying the components within the software and the relationships
between the components.

CAPE Unit 2 – Module 2 / Software Engineering / 3


Cont.
• Building. This is the Code and Test phase, in which each component of
the software is coded and tested to verify that it faithfully implements
the detailed design outlined in the previous phase.
• Checking the solution. This involves Acceptance Testing, where tests
are applied and witnessed to validate that the software faithfully
implements the specified requirements. Real data may be used and
this is compared to outputs from a previous system.

CAPE Unit 2 – Module 2 / Software Engineering / 3


Cont.
• Modifying the solution. During the testing phase, problems or
possible improvements (from beta testing) may be found. If problems
are found, modifications may be made to solve the problems and
another round of testing will occur.

CAPE Unit 2 – Module 2 / Software Engineering / 3


Advantages and Disadvantages
of a Structured Approach

CAPE Unit 2 – Module 2 / Software Engineering / 3


Advantage
• Problem is addressed in a detailed and systematic way.
• Solution is robust and will fulfil the requirements described in the
initial stage. Careful planning will result in a system that fulfils the
requirements of the system, as described in the initial phases.
• Solution is well documented and supported by a team of
programmers. The solution is not "ad-hoc", but is the result of a
careful, well documented work by a team of professionals

CAPE Unit 2 – Module 2 / Software Engineering / 3


Disadvantage
• The timescale for development is very long - in some cases so long
that the initial requirements may have changed before the
development is completed, rendering the newly developed system
obsolete.
• The system may be expensive in terms of money and man-hours. It
can be monolithic, unwieldy and unable to cater for fast paced
changes to business requirements.

CAPE Unit 2 – Module 2 / Software Engineering / 3


ATTRIBUTES OF A WELL-
ENGINEERED SOFTWARE
UNIT 2 Mod 2 Objective 2

CAPE Unit 2 – Module 2 / Software Engineering / 3


GOOD ATTRIBUTES
❑MAINTAINABILITY
❑DEPENDABILITY
❑EFFICIENCY
❑USABILITY
❑PORTABILITY
❑AVALIABILITY OF APPROPRIATE DOCUMENTATION

CAPE Unit 2 – Module 2 / Software Engineering / 3


MAINTAINABILITY
• Software should be written in such a way that it
may evolve to meet the change in needs of the
customer. In the event of a problem the software
should be able to change or evolve to solve a
problem.

CAPE Unit 2 – Module 2 / Software Engineering / 3


DEPENDABILITY

• This refers to the reliability, security and


safety of the software. Dependable software
should not cause physical or economic
damage in the event of a system failure.

CAPE Unit 2 – Module 2 / Software Engineering / 3


EFFICIENCY

• The software should not make wasteful use


of system resources, such as memory and
processors. The software should be useful
and be able to perform a task in a
reasonable time.

CAPE Unit 2 – Module 2 / Software Engineering / 3


USABILITY

• Software must be able to be used without


undue effort. This means that it should have
an appropriate user interface and adequate
documentation.

CAPE Unit 2 – Module 2 / Software Engineering / 3


PORTABILITY

• Software should be able to move from


machine to machine without installation or
running errors

CAPE Unit 2 – Module 2 / Software Engineering / 3


AVALIABILITY OF APPROPRIATE DOCUMENTATION
All software systems must be packaged with a
technical manual, that provides technical details of
the system and user manual that states all the
functions of the system.

CAPE Unit 2 – Module 2 / Software Engineering / 3

You might also like