We think you have liked this presentation. If you wish to download it, please recommend it to your friends in any social system. Share buttons are a little bit lower. Thank you!
Presentation is loading. Please wait.
Published byNelson Ade
Modified over 2 years ago
© 2003 - Dr. Ernest CachiaSlide 1 Consider the nature of a computer as a tool –Non conventional in that it’s universal –Reasons for it being so (separation of entities) –The current computer organisation model (Von Neumann) To begin with... physical processing part abstract control part COMPUTING SYSTEM
© 2003 - Dr. Ernest CachiaSlide 2 The model parts Inference: The abstract control structure should basically conform to this model The current computer organisation model (Von Neumann) The processing part The data storage part The input/output part
© 2003 - Dr. Ernest CachiaSlide 3 Algorithm components Tightly based on the hardware organisation they are to control Processing (executive) components Data storage (memory) components Inputting (data receiving) components Outputting (data transmitting) components
© 2003 - Dr. Ernest CachiaSlide 4 Data In singular form, “datum”. Datum \Da"tum\, n.; pl. Data. [L. See 2d Date.] 1. Something given or admitted; a fact or principle granted; that upon which an inference or an argument is based; -- used chiefly in the plural.DataDate Webster’s Revised Unabridged Dictionary (1913) Data in its pure form is actually meaningless For data to convey meaning it must be given structure Information = Data + Structure
© 2003 - Dr. Ernest CachiaSlide 5 Abstract data controlling the hardware (i. e. software) No modern idea - has been around since Victorian era (Charles Babbage & Ada Lovelace) Renders a computing system different from other tools (universality) Forces a more formal definition of process models Must match human thought patterns Must be represent-able Must be understandable to both human and machine
© 2003 - Dr. Ernest CachiaSlide 6 The idea of an algorithm A possible informal definition –A stepwise description of time separated actions with respect to time which are required to perform a definite task Steps preceding the effective application of an algorithm –Conceive the task –Define the task –Specify the requirements Entities resulting from the effective application of an algorithm –The implemented system or a model of it –The system’s complete and matching documentation –The software’s full and matching description
© 2003 - Dr. Ernest CachiaSlide 7 Desirable algorithm properties Clear Unambiguous Alterable Correct (with respect to basic formally provable principles) Easy to comprehend functionality (relatively)
© 2003 - Dr. Ernest CachiaSlide 8 The “status quo” in computing Historically hardware has always developed at a faster rate than software This fact was not given real importance till the late 1980’s Hardware must be engineered to work at all while software need not Software is expected to contain bugs Software is fragile Your life could very well depend on software Conclusion: Software is at least as important as hardware (if not more in some aspects)
© 2003 - Dr. Ernest CachiaSlide 9 Therefore: SOFTWARE MUST BE ADEQUATELY ENGINEERED RATHER THAN SIMPLY THOUGHT UP AND WRITTEN (hence the term “Software Engineering”)
© 2003 - Dr. Ernest CachiaSlide 10 Some “disturbing” facts about software development in the late 1980s and early 1990s (1/2) Most software was never well planned from the start and was never designed using rigorous design methods Software was not quantifiable or qualify-able until its actual application Software was extremely fragile (i.e. unreliable) Software rarely fully matched its requirements
© 2003 - Dr. Ernest CachiaSlide 11 Some “disturbing” facts about software development in the late 1980s and early 1990s (2/2) Software development involved considerable duplication of effort The idea of software prototyping was to run the system and do a post-mortem check when it failed When software did work well and reliably there was a rush to find out why! Conclusion: Founding a discipline based on such ad hoc software development methods is not feasible!
© 2003 - Dr. Ernest CachiaSlide 12 High demand on software The demands and expectations from software is nowadays dramatically increasing by literally by the day. People are starting to appreciate the idea of fully reliable software. Particular critical areas include: Real-time embedded systems Safety-critical systems –High finance –Machine automation Life-critical systems –Civil –Military Any others I might have left out.
© 2003 - Dr. Ernest CachiaSlide 13 Strange sort of situation Machine hardware is generally well engineered (otherwise it probably wouldn’t work at all) Software is recognised to be crucial Software controls the functioning of machine hardware in an absolute sense Software is often not engineered well (or at all) Faulty software inevitably means machine (computer) “malfunction” People are happy to entrust their dearest possessions, and indeed, their life to computers or computer controlled systems.
© 2003 - Dr. Ernest CachiaSlide 14 The panic! In the mid 80s people began to worry about the sorry state of software development. By the late 80s this worry became a panic, the main reasons being: –The evident poor quality of software –The huge jump in reliability demand as software started to control even more critical aspects of society –The very poor choice (if any) of software design, verification and implementation standards People simply didn’t pay serious enough attention to software in the past - now that a crises was created, attention was “force-focused” on it.
What is Software Engineering? the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software”
Introduction to Software Engineering. Why SE? Software crisis manifested itself in several ways : ◦ Project running over-time. ◦ Project running over-budget.
CSCI-235 Micro-Computers in Science Course Information & Introduction.
Soft. Eng. II, Spr. 2002Dr Driss Kettani, from I. Sommerville1 CSC-3325: Chapter 9 Title : Reliability Reading: I. Sommerville, Chap. 16, 17 and 18.
Software Basics. Some Pioneers Charles Babbage Analytical Engine Countess Ada Lovelace First Programmer ? John Von Neumann storing instructions in memory.
Programming Languages Marjan Sirjani 2 2. Language Design Issues Design to Run efficiently : early languages Easy to write correctly : new languages.
1.1 1 Introduction Foundations of Computer Science Cengage Learning.
OHTO -99 SOFTWARE ENGINEERING “SOFTWARE PRODUCT QUALITY” Today: - Software quality - Quality Components - ”Good” software properties.
Topic: Reliability and Integrity. Reliability refers to the operation of hardware, the design of software, the accuracy of data or the correspondence.
Evaluation of Safety Critical Software -- David L. Parnas, -- A. John van Schouwen, -- Shu Po Kwan -- June 1990 Presented By Zhuojing Li.
Software Processes Coherent sets of activities for specifying, designing, implementing and testing software systems.
1 Basic Definitions: Testing What is software testing? Running a program In order to find faults a.k.a. defects a.k.a. errors a.k.a. flaws a.k.a. faults.
Chapter 1 Introduction.
Chapter 1: Introduction
Submitted To: Rutvi sarang Submitted By: Kushal Bhagat.
CSE 311 Foundations of Computing I Lecture 26 Computability: Turing machines, Undecidability of the Halting Problem Spring
Chapter 10 Software quality. This chapter discusses n Some important properties we want our system to have, specifically correctness and maintainability.
Architecture is More Than Just Meeting Requirements Ron Olaski SE510 Fall 2003.
Fall 2013 Lecture 27: Turing machines and decidability CSE 311: Foundations of Computing.
Stored Programs In today’s lesson, we will look at: what we mean by a stored program computer how computers store and run programs what we mean by the.
© 2017 SlidePlayer.com Inc. All rights reserved.