Top Banner
Introduction to Software Engineering COMP 412 – Software Engineering Project Management Prepared by: Engr. Maria Diorella A. Paguio
47

Introduction to Software Engineering COMP 412 – Software Engineering Project Management Prepared by: Engr. Maria Diorella A. Paguio.

Jan 14, 2016

Download

Documents

Laurence Cole
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript

Diapositiva 1

Introduction to Software EngineeringCOMP 412 Software Engineering Project ManagementPrepared by: Engr. Maria Diorella A. PaguioMOTIVATION

Importance of SoftwareSoftware can have a huge impact in any aspect of society.Where can you find software?

Some popular ones

Some popular ones

Some popular ones

And even in

ConclusionSoftware is Almost Everywhere.ButWhat is Software???Software DefinitionComputer programs and associated documentation

Software products may be developed for a particular customer or may be developed for a general marketSoftware products may beGeneric - developed to be sold to a range of different customersBespoke (custom) - developed for a single customer according to their specification

Computer instructions that when executed provide desired function and performance.

11Types of SoftwareTypes of SoftwareSystem software A collection of programs written to service other programs at system level. Examples: compiler, operating systems.Real time softwarePrograms that monitor/analyze/control real world events as they occur.Examples: cars anti-lock break system, air traffic control systems, railway switching systems13Real-Time Software - When a computer processes data inrealtime, it reads and handles data as it is received, producing results without delay.An anti-lock brake system is expected to release a vehicles brakes, preventing dangerous wheel locking, in a predictably shorttimeframe.the software used to maintain travel schedules for major transportation companies13Types of SoftwareEmbedded software Software that resides in read-only memory and is used to control products and systems for the consumer and industrial markets. Examples: Telecom telephone switches, mobile phones, router; Consumer Electronics: PDAs, game consoles, digital cameras, mp3 players, etc14Embedded Software - It has very limited and esoteric functions and control capability.(e.g., keypad control for a microwave oven) or provide significant function and control capability (e.g., digital functions in an automobile such as fuel control, dashboard displays, braking systems, etc.).

14Types of SoftwareBusiness SoftwarePrograms that access, analyze and process business information.Examples: payroll, accounts receivable/payable, inventory, point-of-saleEngineering and Scientific SoftwareSoftware using number crunching algorithms for different scientific and engineering applications. Examples: Software used to predict weather, and those used in prediction of genome structure, automotive stress analysis, space shuttle orbital dynamics, etc

15Types of SoftwarePersonal computer softwareAlso known as Application Software, iscomputer softwaredesigned to help the user to perform specific tasks.Examples: Word processing, spreadsheets, computer graphics, multimedia, entertainment, database management, personal and business financial applications, and external network or database access

16Types of SoftwareArtificial Intelligence Software Programs make use of AI techniques and methods to solve complex problems. Active areas are expert systems, pattern recognition, gamesExamples: ASIMO uses sensors and intelligent algorithms to avoid obstacles and navigate stairs; Deep Blue, computer chess who beat Kasparov17Types of SoftwareWeb based softwarePrograms that support internet accesses and applications. Examples: search engine, browser, e-commerce software, authoring tools.

18Evolution of Softwarehttp://www.cs.helsinki.fi/research/roosa/images/serious-logo-final.jpg

Evolution of SoftwareSoftware CharacteristicsSoftware CharacteristicsFirst of all software is developed or engineered, it is not manufactured, Secondly software does not wear out.Finally even the industry is moving toward component based assembly, most software continues to be custom built.Finally even the industry is moving toward component based assembly, most software continues to be custom built.

Not like hardware which exhibits relatively high failure rate early in its life, then defects are corrected and failure rate drops to a steady level then later on the failure rates rise again as the hardware components suffer from the cumulative affect of dust, vibration etc.

The software on the other hand, the failure rates is due to side effects to changes and modifications.

22Attributes of Good SoftwareAttributes of Good SoftwareMaintainabilitySoftware must evolve to meet changing needsDependabilitySoftware must be trustworthyEfficiencySoftware should NOT make wasteful use of system resources such as memory and processor time.The software should deliver the required functionality and performance to the user and should be maintainable, dependable and usable.

24Attributes of Good SoftwareUsabilitySoftware must be usable by the users for which it was designed, it should have an appropriate user interface and enough documentation.

The software should deliver the required functionality and performance to the user and should be maintainable, dependable and usable.

25Advice: Work very hard to understand what you have to do before you start.

You may not be able to develop every detail, but the more you know, the less risk you take

26 Problems in software developmentProblems in software developmentThe final Software doesnt fulfill the needs of the customer.Hard to extend and improve: if you want to add a functionality later, mission is impossible.Bad documentation.Bad quality: frequent errors, hard to use, etcMore time and costs than expectedButThat never happens,right?Wrong!Software failuresTherac-25 (1985-1987): six people overexposed during treatments for cancerTaurus (1993): the planned automatic transaction settlement system for London Stock Exchange cancelled after five years of developmentThe Mars Climate Orbiter assumed to be lost by NASA officials (1999): different measurement systems (Imperial and metric)Cause: design errors in the software Ariane 5 Flight 501

A European rocket designed to launch commercial payloads (e.g.communications satellites, etc.) into Earth orbitSuccessor to the successful Ariane 4 launchersAriane 5 can carry a heavier payload than Ariane 4

Ariane 5 (1996): roket exploded soon after its launch due error conversion (16 floating point into 16-bit integer)

Launcher failureAppoximately 37 seconds after a successful liftoff, the Ariane 5 launcher lost controlIncorrect control signals were sent to the engines and these swivelled so that unsustainable stresses were imposed on the rocketIt started to break up and self-destructedThe system failure was a direct result of a software failure. However, it was symptomatic of a more general systems validation failure

The problemThe attitude and trajectory of the rocket are measured by a computer-based inertial reference system. This transmits commands to the engines to maintain attitude and directionThe software failed and this system and the backup system shut downDiagnostic commands were transmitted to the engines which interpreted them as real data and which swivelled to an extreme position

Software failureSoftware failure occurred when an attempt to convert a 64-bit floating point number to a signed 16-bit integer caused the number to overflow.There was no exception handler associated with the conversion so the system exception management facilities were invoked. These shut down the software.The backup software was a copy and behaved in exactly the same way.

Review failureDont run software in critical systems unless it is actually neededAs well as testing for what the system should do, you may also have to test for what the system should not doDo not have a default exception handling response which is system shut-down in systems that have no fail-safe statIn critical computations, always return best effort values even if the absolutely correct values cannot be computedWherever possible, use real equipment and not simulationsImprove the review process to include external participants and review all assumptions made in the codeThe designers of Ariane 5 made a critical and elementary error.They designed a system where a single component failure could cause the entire system to fail32Chaos Report

33It is not enough to do your best: you must know what to do, and THEN do your best.--- W. Edwards Deming

ConclusionProgramming is NOT enough!

And SinceA clever person solves a problem.A wise person avoids it.- Albert Einstein

Solution???

What is software engineering?Software engineering is an engineering discipline which is concerned with all aspects of software production

Software engineers should adopt:a systematic and organized approach to their workuse appropriate tools and techniques depending on the problem to be solved, the development constraints and the resources available

What is software engineering?Engineers make thing work, they apply theories, methods and tools where these are appropriate.

Software engineering is: the systematic use of many disciplines, tools, and resources for the practical application.

This is a broad definition which includes everything except hardware. What is software engineering?Engineering is the art and science of managing engines for practical application.

To manage these engines, we have to consider all aspects of the intended applications, such as operational concepts, requirements, design, development, and maintenance.

Software Engineering is the study and application of methodologies to develop quality software that fulfill customer needs.In shortWhat is the difference between software engineering and computer science?Computer ScienceSoftware Engineeringis concerned withComputer science theories are currently insufficient to act as a complete underpinning for software engineering, BUT it is a foundation for practical aspects of software engineering theory fundamentals

Algorithms, date structures, complexity theory, numerical methodsthe practicalities of developingdelivering useful software

SE deals with practical problemsin complex software productsComputer science is concerned with theory and fundamentals; software engineering is concerned with the practicalities of developing and delivering useful software

Computer science theories are currently insufficient to act as a complete foundation or basis for software engineering

4142What is the difference between software engineering and system engineering?System engineering is concerned with all aspects of computer-based systems development including hardware, software and process engineering. Software engineering is part of this process

System engineers are involved in system specification, architectural design, integration of the finish system.Software Engineering Body of Knowledge

Source: http://www.sei.cmu.edu/pub/documents/99.reports/pdf/99tr004.pdfSE historySE introduced first in 1968 conference about software crisis when the introduction of third generation computer hardware led more complex software systems then beforeEarly approaches based on informal methodologies leading toDelays in software deliveryHigher costs than initially estimatedUnreliable, difficult to maintain software Need for new methods and techniques to manage the production of complex software. However Important progress:Ability to produce more complex software has increasedNew technologies have led to new SE approachesA better understanding of the activities involved in software developmentEffective methods to specify, design and implement software have been developedNew notations and tools have been produced What are the key challenges facing software engineering?Software engineering in the 21st century faces three key challenges:Legacy systemsOld, valuable systems must be maintained and updatedHeterogeneitySystems are distributed and include a mix of hardware and softwareDeliveryThere is increasing pressure for faster delivery of software

End of PresentationYehey!!!