cisc 323
play

CISC 323 instructor: Margaret Lamb instructor: Juergen Dingel - PowerPoint PPT Presentation

Administrativa Section A: Section B: CISC 323 instructor: Margaret Lamb instructor: Juergen Dingel Introduction to Software malamb@cs.queensu.ca dingel@cs.queensu.ca DUP 217 DUP 215 Engineering slot 3: Mon 10:30 slot 1: Mon 8:30 Wed


  1. Administrativa Section A: Section B: CISC 323 instructor: Margaret Lamb instructor: Juergen Dingel Introduction to Software malamb@cs.queensu.ca dingel@cs.queensu.ca DUP 217 DUP 215 Engineering slot 3: Mon 10:30 slot 1: Mon 8:30 Wed 9:30 Tues 10:30 Winter 2004 Fri 8:30 Thurs 9:30 Course web page : http://www.cs.queensu.ca/home/cisc323 (is up, minor changes may still be made) WebCT area: forum and grades CISC 323, Winter 2004, Intro 1 CISC 323, Winter 2004, Intro 2 Assignments, Exams and Marking Tutorials Scheme • Monday 1:30 - 2:20, WLH205 5 assignments: 30% or midterm: 20% Wednesday 12:30 - 1:20, WLH210 final exam: 50% • You may attend either tutorial, regardless of your Midterm : two-hour evening exam lecture section. during Week 8, date to be announced soon • Purpose of tutorials: Final Exam : date and location to be announced û review/reinforce material from lecture & readings Please don't make plans to leave Kingston before û ask questions û discuss assignments end of the exam period! • NO TUTORIALS DURING WEEK 1! All are closed book with 1 8.5”x11’’ data sheet CISC 323, Winter 2004, Intro 3 CISC 323, Winter 2004, Intro 4

  2. Assignments Text Material • Required texts: • There will be 5 assignments during the course. 1. Ali Bahrami, Object-Oriented Systems • Posted on web site. Development, Irwin McGraw Hill, 1999. 2. custom courseware • You may work in pairs. Both available in bookstore • No groups larger than 2. • If your Java is rusty: • Academic Dishonesty will not be tolerated! û texts from old Java courses or any other good Java book • No late assignments accepted. û Another option: Bruce Eckel, Thinking in Java, Prentice Hall, May 2000. may be downloaded for free from http://www.mindview.net/Books/TIJ CISC 323, Winter 2004, Intro 5 CISC 323, Winter 2004, Intro 6 Programming Resources What is Software Engineering? • Project implemented in Java. Any thoughts? • You may use any Java tool which is based on a Sun Java JDK version 1.2 or later: û BlueJ û Ready To Program û JBuilder 3+ (some labs have JBuilder 7) û Forte û straight Sun jdk/sdk • do not use : û Visual J++ (based on Java variant) û JBuilder 2 in labs (old version) CISC 323, Winter 2004, Intro 7 CISC 323, Winter 2004, Intro 8

  3. Software Engineering: A Definition What Is Software? engineering: • The programs, routines, and symbolic languages that control the functioning of the hardware and direct its The application of scientific and mathematical principles to operation. practical ends such as the design, manufacture, and operation of efficient and economical structures, American Heritage Dictionary machines, processes, and systems • Crucial to functioning of modern society American Heritage Dictionary û transportation û business and finance software engineering: û health care The application of a systematic, disciplined, quantifiable û communication approach to the development, operation, and û entertainment maintenance of software, that is, the application of û education engineering to software û … IEEE Standard 610.12 CISC 323, Winter 2004, Intro 9 CISC 323, Winter 2004, Intro 10 What Is Software? (Cont’d) What Is Software? (Cont’d) • Not created equal. At least 4 different types: • Crucial for western economies û shrinkwrap û Value of US prepackaged sw * e.g., Win xyz * in 1996: US$109 billion * high volume, little service, needs to be very usable, lots of maintenance * in 2002 (est): US$222 billion (2.2% of US$9.9 trillion of US GDP) * multi-platform, multi-OS, multi-human-language, multi-version û Expected growth of global sw market: 6.1% * developers likely to be geographically dispersed û Average IT spending of US companies as % of gross revenue in û customized/internal 2000: 7.5% * e.g., SAP business software û * low-volume, high service, lots of maintenance Company #employees Revenue Net income û embedded (US$ in 10 6 ) (US$ in 10 6 ) * e.g., device drivers, control software Microsoft 47,600 25.3 7.3 * medium volume, strong hardware restrictions, requires high IBM N/A 12.6 10.3 performance, high reliability (safety-critical), little maintenance Oracle 42,927 10.8 2.5 û games Source: The US Software Industry. H. Rubin, M. Johnson, * lots of fancy graphics, high performance S. Ivertosch. IEEE Software. 2002 CISC 323, Winter 2004, Intro 11 CISC 323, Winter 2004, Intro 12

  4. What Is Software? (Cont’d) What Is Software? (Cont’d) • One of most complex man-made artifacts: • Rapidly evolving: û Windows 95 û Changing languages: * > 11 million lines of code * Fortran (1957), Algol (1958), LISP (1959), Cobol (1959), APL (1962), PL/1 (1963), Pascal (1970), Prolog (1972), C (1974), * more than 200 programmers & testers Basic (1975), Smalltalk-80 (1980), Modula-2 (1980), Ada û Windows NT: > 16 million lines of code (1983), C++ (1986), VisualBasic (1991), Java (1995), C# û Windows XP: 45 million lines of code (2000), … û Pacemakers: > 100,000 lines of code * Paradigms: imperative, functional, logical, object-oriented û “I believe the [spreadsheet product] I’m working on û Changing technologies: now is far more complex than a 747 (jumbo jet * computer architectures, means of communication (networks, internet, web) airliner)” û Changing demands: -- Chris Peters (Microsoft, 1992) * GUIs, Web applications, eCommerce, security CISC 323, Winter 2004, Intro 13 CISC 323, Winter 2004, Intro 14 What Is Software? (Cont’d) What Is Software? (Cont’d) • Rapidly evolving: • Highly constrained: Must distinguish at least 3 different “stakeholders”: û “It’s different [from other engineering disciplines] in that we take on novel tasks every time. The number û Customers : of times [civil engineers] make mistakes is very small. * Which expectations do customers have of software they buy And at first you think, what’s wrong with us? It’s or use? because it’s like we’re building the first skyscraper û Developers : every time.” * Which expectations do developers have of software they -- Bill Gates, 1992 ) write from scratch, ) test, • Hardly ever fully complete: ) maintain? û about 50% of development effort on a typical software û Managers : system comes after its initial release * Which expectations do managers have of software whose Lientz & Swanson, 1980 development they oversee? CISC 323, Winter 2004, Intro 15 CISC 323, Winter 2004, Intro 16

  5. Consequences for Process of Software Software Process Development • Given all these properties of and constraints on • A software (development) process is a method for software, the development process of (large, developing software that organizes the effort in a number of separate steps such that large software commercial) software must be can be developed by many people in an organized, û devided into several phases (e.g., requirements manageable and trackable way analysis, design, implementation, testing) • Numerous software processes (also called models) exist û able to measure and control the quality of the produced software û Waterfall process û predictable û Prototyping process û Evolutionary development process û efficient (through, e.g., lots of reuse, use of modern û Sync and Save process (Microsoft) languages, doing things in parallel when possible, minimizing number of developers and testers, facilitating û Object-oriented development process (e.g., Uniform Approach communication between people) (UA), …) û … û able to adapt to changing requirements CISC 323, Winter 2004, Intro 17 CISC 323, Winter 2004, Intro 18 Consequences for Software Itself Consequences for Software Itself (Cont’d) • Given all these properties of and constraints on • Object-oriented languages like Java support software, the software must û modularity through û be modular * ? * divide the code into appropriate number of appropriate units û information hiding through (classes, modules, components) with * ? * small and well-defined interfaces and dependencies û reuse through û use information hiding * ? * units are only accessible through their interfaces û correctness through * the internals of a unit are invisible * ? û be implemented with the user’s requirements in mind û documentation through û be checked for satisfaction of these requirements * ? û use existing code as much as possible û minimize typos, bugs, security vulnerabilities û be well documented and use good coding style consistently û use efficient data structures and algorithms CISC 323, Winter 2004, Intro 19 CISC 323, Winter 2004, Intro 20

Recommend


More recommend