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.