330 likes | 523 Views
MULTIMEDIA TECHNOLOGY SMM 3001. SOFTWARE. Software : Putting computers to work. Content (Textbook Chapter 6) The basics of the programming process The development of programming languages to improve software development
E N D
MULTIMEDIA TECHNOLOGYSMM 3001 SOFTWARE
Software : Putting computers to work • Content (Textbook Chapter 6) • The basics of the programming process • The development of programming languages to improve software development • Programming languages that the average user can employ to enhance working with a computer
Software & Programs • A program is a list of instructions that direct the computer’s process • Programs are collectively called software • the computer system executes binary-encoded machine language programs designed for that type of processor • Programs are developed and written using symbolic programming languages which are easier to comprehend and use.
Categories of programming language • There’re 5 major categories of programming languages : • A low level languages • Machine languages (1st Gen.) • Use a series of binary digits • Assembly languages (2nd Gen.) • Program written using symbolic instructions code or mnemonics – meaningful abbreviations & codes
Categories of programming language (con’t) • There’re 5 major categories of programming languages : • A high level languages • Procedural languages (3rd Gen.) • Tell the computer what to accomplish and how to do it • A compiler converts the entire source program into machine language before executing it • An interpreter reads a code statement, converts it to one or more machine language instructions and then executes those machine language instructions
Categories of programming language (con’t) • There’re 5 major categories of programming languages : • A high level languages • Non-Procedural languages (4th Gen.) • Programmer specifies only what the program should accomplish without explaining how • Eg. SQL (structured query language) • 5th Gen. Languages • Provides a visual or graphical interface for creating source code
The software development cycle • Analyzing and understanding the problem • Devising a plan to solve the problem • Creating an executable program that implements the plan • Testing and correcting the program
Analyzing the task • To design and create a program, a programmer must : • foresee the complete process • envision the sequence of events that would implement it • understand the task in general terms as well as specific cases
Devising the plan • The plan is expressed by an algorithm which expresses : • what information is needed to perform the task • exactly what events are needed to complete the task • the precise sequencing of events to complete the task reliably
Algorithms • Algorithms may be expressed using a variety of methods and techniques • Pseudocode
Algorithms • Flowchart • Symbols that show the sequencing of important events that comprise the overall process A Flowchart
Coding the program • Coding is the translation of the algorithm(s) into executable programs • Most programs are written in high-level programming languages which are more abstract than binary machine languages
Testing and debugging • Testing • program components and programs are thoroughly tested for reliability • reliability is not validity (certified correctness) • programs are released in several versions (e.g., alpha, beta)
Testing and debugging • Debugging • “Bugs” are errors that result from faulty plans, misunderstandings, coding mistakes, etc. • correcting errors in programs is called “debugging”
Complexities of software development • Complexities of the problem domain • processes and tasks are difficult to understand • Complexities in programming • translating tasks into effective processes performed by computers can be difficult • Complexities of the process itself • software systems often behave differently from the processes that they imitate
Developing commercial software • The scale of modern software systems require division of labour • System analysts are responsible for planning, designing, and overseeing software projects • Programmers work in groups to implement the overall design • Software quality assurance groups conduct independent testing
High level programming languages (HLLs) • HLLs are generally preferred for software development because they have 3 basic characteristics : • are more abstract • are more concise • are portable to other processors • must be translated to the machine language of the host processor • interpreters--translate and execute one instruction at a time • compilers--translate the entire program to executable form
Imperative procedural languages • paradigm based on how the processor operates • programs composed of units or modules called procedures • Each procedures usually defines a smaller task to be done • The sequence of smaller tasks or subtasks comprise the main process • statements are instructions
Imperative procedural languages • The order of statements in a procedural language program is critical • Imperative or procedural resemble closely machine language
Imperative procedural languages (con’t) A Pascal program
Object-oriented languages • paradigm is more abstract than I-P HLLs • programs are composed of units called objects • objects interact, send and receive messages, inherit and possess attributes
Object-oriented languages (con’t) A portion of java applet
Non-procedural programming languages • Alternative paradigms • Programs are not understood as a sequence of events or actions • Eg. LISP (a list of processing language), Prolog & FP • LISP & Prolog are popular languages for the discipline of artificial intelligence (AI)
End user programming languages • offer tools and features that simplify programming • produce scripts that handle user and process events • often employ a visual programming tools for constructing interfaces
End user programming languages (con’t) Visual Basic
Programming Languages • Hundreds of programming languages exist • Most programming languages are high level languages • Although the JAVA programming are widely used today, it originally was used primarily for web development
Programming languages • BASIC • Short for Beginner’s All Purpose Symbolic Instruction Code (BASIC) • Developed in mid 1960s • Many versions of BASIC exist, including QBasic, QuickBasic and MS-Basic
Programming Language • Visual Basic • Developed by Microsoft Corp in the early 1990 • VB is windows-based application • The 1st step in building a VB application is to design the graphical user interface using VB objects
Programming Language • C • Developed in early 1970s by Dennis Ritchie at Bell Laboratories • Originally designed for writing system software • Is a powerful language that requires professional programming skills
Programming Language • C++ • Developed in the 1980s by Bjarne Sroustroup at Bell Laboratories • Object oriented programming • Extension of C programming languages
Multimedia Program Development • Multimedia Authoring software allows you to combine text, graphics, animation, audio, and video into an interactive presentation • Popular packages include Toolbook, Authorware, Director