Course Software Engineering Lecture 3: The Products / History and Future of SE Michael Brueckner
(c) Michael Brueckner 2005/ Software Engineering 2 Overview-1 Introduction to software engineering Software products Software development สร้าง processes Project management Requirement ความต้องการ management Design management Quality management
(c) Michael Brueckner 2005/ Software Engineering 3 Overview-2 ISO 9000/9002 Software development สร้าง economy Methods of software engineering Tools in software engineering Practices การฝึกซ้อม of software engineering
(c) Michael Brueckner 2005/ Software Engineering 4 Agenda กำหนดการ History of SE Some future อนาคต problems Engineering and management Types ชนิด of Transaction รายงานการ ประชุม Systems
(c) Michael Brueckner 2005/ Software Engineering 5 History of SE-1 1968 NATO องค์การนาโต้ ( คำย่อ North Atlantic Treaty Organization) Conference discussed „Software Crisis ช่วงที่มีปัญหา ร้ายแรง “ Over ( มากกว่า )-budget, late, and operationally ที่สามารถใช้งานได้ failed ล้มเหลว software projects. Failure of code-and-fix method Need for a „systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software".
(c) Michael Brueckner 2005/ Software Engineering 6 Software Engineering „systematic ซึ่งเป็นระบบ, disciplined, quantifiable ซึ่งบอกจำนวน approach วิธีการ ทำให้ถึงจุดหมาย to the development, Operation การดำเนินการ, and Maintenance การรักษาสภาพ of software".
(c) Michael Brueckner 2005/ Software Engineering 7 Inter-Disciplinary Software Engineering Example: Air Traffic Control System
(c) Michael Brueckner 2005/ Software Engineering 8 History of SE-2 Code-and-Fix Leads to poorly อย่างเลว structured สร้าง โครงสร้าง code (need for a design phase) Even good structured code may not match เข้า กัน ( กับ ) user needs (need for a requirements phase) High fixing ซ่อมแซม costs because of unstructured and unplanned testing (need for a quality assurance and testing phase)
(c) Michael Brueckner 2005/ Software Engineering 9 History of SE-3 Software versions System V.1 System V.2 System V.3 System V.5 การเปลี่ยนแปลง
(c) Michael Brueckner 2005/ Software Engineering 10 History of SE-4 Fred Brooks: The mythical man-month New edition: 1995 Experience ประสบการณ์ managing the development of IBM OS/360 in 1964/65 Central Argument Large ใหญ่ programming projects have management problems different ต่างกัน to small projects because of work load and communication Most important: preservation การสงวน of the conceptual ที่เกี่ยวกับกรอบความคิด integrity ความ สมบูรณ์ of the product itself
(c) Michael Brueckner 2005/ Software Engineering 11 History of SE-5 Brooks’ Central Conclusions Conceptual integrity achieved ไปถึง through exceptional ยอดเยี่ยม designer Implementation achieved through well- managed effort ความพยายาม Brooks’s Law: Adding เติมส่วนผสม personnel to a late project makes it later
(c) Michael Brueckner 2005/ Software Engineering 12 Engineering & Management Science: experiments; empirical studies; theories characterizing system behavior (e.g. system reliability) Management: organizing teams and activities; controlling and monitoring Human factors: ergonomics in user interface design; user task understanding and modeling Engineering: application of science to typical problems; solutions to typical problems; working out principles and good practices
(c) Michael Brueckner 2005/ Software Engineering 13 Principles of SE Modularity ประกอบด้วยหน่วยแยกต่างๆ and Decomposition การเน่าเปื่อย Abstraction นามธรรม Anticipation การรอคอยอย่างคาดหวัง of Change (“think in advance” ล่วงหน้า ) Generality กฎเกณฑ์ทั่วไป Incrementality การเพิ่มขึ้น Reliability ความน่าเชื่อถือ
(c) Michael Brueckner 2005/ Software Engineering 14 Why is SE important?-1 Since the 1950s computers are part of modern society. This leads to the need to be reliable เชื่อถือได้ need to be safe ปลอดภัย need to be secure ไม่มีกังวล (stable)
(c) Michael Brueckner 2005/ Software Engineering 15 Why is SE important?-2 Software is an important factor in business Functional (the features) Used for daily work Used for communication Used for information retrieval (information ist the most important factor in todays business) Cost ค่าใช้จ่าย Cost: only once (1 x), money is the most important decision maker in business Revenue รายได้
(c) Michael Brueckner 2005/ Software Engineering 16 SE has to do with... Programming Problem solving Management of people (psychology) Processes
(c) Michael Brueckner 2005/ Software Engineering 17 Programming Languages Machine language: Assembly language: add A, B Higher level language: A+B Symbolic
(c) Michael Brueckner 2005/ Software Engineering 18 Software Categories Latex: text layout software I/O: input and output Gcc: GNU compiler collection (for Open Software Construction)
(c) Michael Brueckner 2005/ Software Engineering 19 Types of Software Systems Transaction Processing Batch Processing Real Time Processing Transaction: การติดต่อทางธุรกิจ / การ ดำเนินการ / ความสัมพันธ์ระหว่างบุคคล
(c) Michael Brueckner 2005/ Software Engineering 20 Transaction Processing On-line or transaction processing (TP) systems Interactive ซึ่งมีการสื่อสารระหว่างกัน systems(usually database system) Each request (like query, input) is a transaction E.g. decision support system and strategic planning system airlines, railroads, hotels, financial services, government, credit card and banking industries
(c) Michael Brueckner 2005/ Software Engineering 21 Batch Processing Software is executed all at once No need for user interaction Used for time consuming ที่สิ้นเปลืองเวลา มาก processing Movie rendering การแปล (put into other format) Simulation software
(c) Michael Brueckner 2005/ Software Engineering 22 Real Time Processing Quick response software (like embedded software) Data from environment สภาพแวดล้อม is processed process control plants (manufacturing, refining), telephone switching systems, hospital patient monitoring systems, air traffic control weather data collection, water quality
(c) Michael Brueckner 2005/ Software Engineering 23 Real Time vs. Transaction Processing Real time can work automatically โดยอัตโนมัติ Response การตอบสนอง depends on the state of the system (HW- SW) Example: telephone switch – all lines are busy More complex design work needed Safety issues First version must be without bugs! Example: Patient Monitoring System for hospital
(c) Michael Brueckner 2005/ Software Engineering 24 Today‘s Software Industry Component ( ส่วนประกอบ )-Based Engineering and Integration Many different technologies: technological heterogeneity ซึ่งต่างชนิดกัน Many different business models: enterprise บริษัท heterogeneity Internet-scale operation Many competing แข่งขัน standards Much conflicting ต่อสู้ terminology คำศัพท์เฉพาะ ทาง
(c) Michael Brueckner 2005/ Software Engineering 25 Some Problems of the Future Software Evolution วิวัฒนาการ Formal specification ข้อจำกัด („ เกี่ยวกับ คณิตศาสตร์ “) Software Engineering for safety Software Engineering for security Software Engineering for mobility Web based Software Engineering