DOC PREVIEW
WVU CS 110 - Lecture 1

This preview shows page 1-2-3-4 out of 12 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 12 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 12 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 12 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 12 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 12 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

CS 110 Lecture 1I) What is Software Engineering?II) The birth of Software engineeringHOW DID THIS lead to the software crisis.III) Languages and MethodologiesEvery program we create models some aspect of the real world. (an airline reservation system. Patient monitoring system, )There is a tremendous gap between the kinds of problems we are asked to solve using a computer and the BITS of information the computer can actually process. Not every aspect of the data requirements of a problem can be adequately expressed directly using the built-in data types provided by any programming language.Another related problem is how to capture the behavior of objects (Object: some real world entity about which we’ll collect data) so that they are consistent with the requirements of the real world problem. for example : A check-out line at the grocery store.WE need a method of going fromAn Abstract Data Type: represents a group of related objects which have a common set of properties & a set of operations which process objects of the data type while preserving the properties of those objects. An Abstract data type includes only the data representation of one specific data type and subprograms that provide operations on that type. Through access control details of the type can be hidden from the outside while allowing users to create as many objects of a class as they need. A sample abstract data type frequently found in programs is a Stack. A stack is a special type of container to which items are added in a last in first out (or LIFO) order. This means that new items are added to the top, pushing down items that have been added before it… An every day example of a stack is dishes at a salad bar. From a program stand point, stack has a “type” declaration representing the stack container itself along with the “contents” of the stack. Along with a basic set of operations: PUSH, POP, INITIALIZE, and CLEAR. These operations not only manipulate objects of type stack but insure that the operations maintain the integrity of the stack object: POP removes the “top” element, PUSH adds a new element to the “top”. That enforce the rules of behavior of the stack.An Abstract Data Type is frequently implemented as a “module” containing a set of “type” declarations representing the object and a set of procedures/functions which manipulate objects of the type.IV) Why does Software Engineering Matter to meV) The Java Development Environment:CS 110 Lecture 1This course has a dual purpose:A) The first objective of this course is to teach you the fundamental programming skills that you will need to successfully write programs. We will do this in the context of learning Java.B) The second objective is to teach you to write code that is robust, well structured, and maintainable and that adheres to sound principles of software engineering.I) What is Software Engineering?“Software Engineering is a discipline within computer science concerned with the application of sound engineering principles and practices to the construction of large, complex (multi-component, multi version) software systems built by a team (teams) of engineers with the goals that the project be correct, on-time, fault-free, within budget.” (Sommerville in his 4th edition of Software Engineering.)There is a difference between programming and software engineering. A programmer writes a complete program (programming in the small) while a software engineer writes asoftware component (programming in the large) that will be combined with the components written by other software engineers to build a system. Components written by one developer may be modified by another or even incorporated in a later application. Programming is personal, S.E. is a team activity.In Short, Software engineering (S.E.) is concerned with the processes and methodologies used to develop and maintain large software systems. Throughout this course, we will begin to teach you these methodologies and practices that will ultimately at the end of your degree help you to become a successful software engineer.II) The birth of Software engineeringThe birth of S.E. can be traced to the “Software Crisis”. The Term S.E. was coined in thelate 60’s at a NATO conference to discuss the software crisis: -Quality of software was generally unacceptably low, and that deadlines and cost limits were not being met. In the 1960’s it was discovered that the practices and techniques what were appropriate for programming in the “small” could not adequately be scaled up to large projects or product software.Source of problems evolved from the fact that the capabilities of hardware advanced faster than the methodologies associated with the creation of software.- 1948 – 64 => Main frames, Custom Software written “in house”, by Data processing professionals. Programs were “relatively” simple single purpose systems. Operating systems if they existed at all….were generally single usero Initially in this time frame we see programs being written in machine language. And computing was relegated to the science and military realms Early computers were physically enormous, expensive machines run from a console.  1 User at a time 1 program at a time (written in machine language, binary 1’s and 0’s ) programmer/operator operates machine himself: Setting a starting address of the program in memory and then entering programs in binary, one word at a time, via switches on the front panel of the computer. Then the programmer executed the program directly from the operator’s console: He then pushed the appropriate buttons to begin execution of the program. Program instructions were executed sequentially, in the order they were encountered. He could cause the program to be executed one instruction at a time, by repeatedly pressing a button. The program would either run until finished and produce a output or crashed and result in a dump of memory and registers. As the program ran the programmer could monitor its execution bythe display of lights on the console. These lights could display the contents of selected registers of memory locations.. If errors were discovered the programmer could halt the program examine the contents of memory and registers, and debug the program directly from the console- DRIVING FORCES FOR CHANGE:- Computers were VERY expensive: idle CPU time was a waste of money. Cost of hardware was > cost of


View Full Document

WVU CS 110 - Lecture 1

Download Lecture 1
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Lecture 1 and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Lecture 1 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?