1 / 24

CMPE 412 Software Engineering

Learn about software engineering, its history, the different types of software, and the challenges faced in developing software. Gain an understanding of the importance of teamwork and project management in software development.

blewis
Télécharger la présentation

CMPE 412 Software Engineering

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CMPE 412Software Engineering Asst.Prof.Dr.Duygu Çelik Ertuğrul Room: CMPE 206 Email: duygu.celik@emu.edu.tr

  2. COMPUTER SOFTWARE • Software: A set of instructions that tell the computer what to do • Types of softwares: • Application software • System software, etc. (later!) • Software engineering:is the application ofengineering to the design, development,implementation, testingandmaintenanceof softwarein a systematic method.

  3. INTRODUCTION • According to scientific discipline, methods and tools of SEhas been around for more than 35 years!!! • Programming languages started to appear in the 1950s andreleased major languagessuch as Fortran, ALGOL, and COBOL,etc. • After Computer Programs startedto solve more complicated problems, programmers understood that a disciplined approach was needed to develop complex programs.

  4. Many programmers had to: • work in a team • agree on a common interface to exchange data btw modules. • Many programmers works together in a team structure while managing SW projects: • a hard task, because; • System analysis • Project Planning • Project Scheduling • Configuration Management All became very important issues!!!

  5. CEs/SEs in the Turkish Informatics Sector are; • Mostly work as «team» • contains 3-7 members... • One Manager or one Team Leader • Others are programmers,specialists,etc. • You will also create your own SW Project Team (5-6 Stds., Details TBA)! • Generally, there is a division of work among programmers according to their specialities, eg.: • 1 User Interface • 1 DB • 2-3 Program Developer • 1 Business or Programming Analyzer etc...

  6. Programmers are mostly graduates of 2 years or from other disciplines like Math, Physic etc... • This situation may change the future developments when more CE or SE graduate from universities. • Many text books have been written on SE. • Pressman’s book seems to be the most well known and successful • Published many versions since 1982. • Probably, this success based on programmingpractice and experience of the Roger Pressman. Every SE/CE needs to be in at least one big project to understand: • Problems • Observed difficulties • Software Process Planning • Team Working etc...

  7. What is Computer Software? • Help bussiness decision making • Serves for scietific research & problem solving • Embedded in many modern systems: • Transportation (airplane flight control..) • Telecommunications (cellular phones, internet...) • Military (weapon control systems...) • Industrial Process Systems (factory control systems...) • Office Products (word proocessing...) • Entertainment (satellite or cable TV...)

  8. What is Computer Software? • CS, or simply SW, is that part of a computer system, that contains software instructions, for: • Producing • Managing • Acquiring • Modifying • Displaying • Transmiting information...

  9. 1950-1965 • In early systems, SW was developed and used by the same person or company. • It was custom-designed for each application. • Same peoplewrote it, checked it, run it and fixed bugs of it. • program sturucture was not formal, and • perfomed according to one’s mind • few documentation.

  10. 1965-1975 • Multiuser system were developed • Introduced firstDB systems • Concepts of HCI were developed • Interactive use of computers required new&more complicated HWs and SWs. • Real-Time systems brought the concepts of «timeliness» • In this period, companies began to develop SW for widespread distribution to Hundreds/Thousands of users. • Called as «Product Software» • Grew program sizes 10-1000 times • But, all these programs had to be adapted to new HW when new computers were purchased. • These problems became enormous. • Many bespoke programs were almost «Unmaintainable»

  11. 1975-1985 Helped people to buy their PC for home usage • Distributed systems were introduced: • AI techniques • reduced HW costs • introduction of the PC • Computer Network & Further Telecommunication Networks made it possible to exchange data btw computers. • But, SW was still used: • mostly in Academic research • mostly in Industry • But rarely in Personal usage!!

  12. 1985-2003 4th era of CSs • In this period: • powerful desktop machines • complex OS • faster&larger computer NWs • Gained PopularityDecentralized client/server type of SW architectures... • WWW and Internet contributed to Global Information Systems & share information... • Object-oriented techniquesare replacing Conventional Programming design techniques • Multimedia techniques & Game programs have produced a new personal entertainment market for SW.

  13. Faced Problems for All These Periods • HW is advancing very fast but SW development is not. • SW programs can not build fast enough to meet Business & Market needs. • Widespread use of computers has made the society increasingly dependent on reliable operating of SW. • Developed programs still don’t have high reliability & quality. • Bcz of poor design, we can not support & enhanceexistingprograms!!!

  14. STUCK QUESTIONS • Early days of programming, it was viewed as an «ART». • There were few formal methods and good programmers. • Today, SW is largest cost item in a CS. • But, still many Qs about SW development that have been asked over and over by Managers!!!

  15. Questions About Software Haven't Changed Over the Decades • Why does it take so long to get software finished? • Why are development costs so high? • Why can't we find all errors before we give the software to our customers? • Why do we spend so much time and effort maintaining existing programs? • Why do we continue to have difficulty in measuring progressduring the software developing and maintaining? Still stick in managers’ mind!!!

  16. Faced Problems with Written Programs Over the Decades • Problems with application programs written 10-20 years ago: • These are now UNMAINTANABLE! Rubbish! • Even the smallest modification can cause the whole system to fail. • Problems with many engineering programs written 10-20 years ago: • which produce Critical Data (i.e. nuclear reactor control, etc.) • while no one really understands their Internal Structure. • There are many embedded systems (i.e. air traffic control, etc.) • which show strange behaviors from time to time • which can not stop their service bczthere is nothing available to replace them. • All these systems require «reengineering». • Design again starting from scratch and, • Write modern programsby using formal SEmethods.

  17. Earlier times, programs were mostly wrt in US & in Europe. • Now; China, Far East (S.Korea, Singapore, etc.), India, Eastern Europe (Poland, Hungary, Romania, etc.) • More professional programmers & less cost. • introduced the new concept  called «Outsourcing» in SW development. • Some companies used the advantage for developing their SWs by hiring programmers from these new countries to write their big programming projects.

  18. Software • Instructions: when executed, provide a desired function and performance. • Data Structures: enable instructions to manipulate information properly. • Documents: describe the operation and use of programs (i.e. user guides,SRS etc).

  19. Software • Software is a logical rather than physical system element. • SW is developed, not manufactured! Bcz, HW is manufactured but SW is developed! • SW costs are concentrated in engineering: HUMAN FACTOR! • SW doesn’t wear out. During its life, SW undergoes some changes (MAINTENANCE!). • With these changes, some Defects may be happen and in turn may cause Failures! • When a HW part wear out, it is replaced by a spare (new) part (i.e. sound card) • However, there are no SW spare parts! • Therefore, maintanenceof SW is more complex than HW.

  20. Most SW is custom-built, instead of being constructed from already existing components. • Logic circuits are designed with components off-the-shelf (i.e. NAND gates, Shift registers , etc.) • Unfortunetly, SEs don’t have off-the-shelf components to use. • Recently, OOP techniques has made it possible to reuse some modules in new programs.

  21. SOFTWARE TYPES 1) System Software programs: • give service to other programs (i.e.compilers, editors, browsers, drivers, virus protection programs, etc.) • have heavy interaction with HW • give service to multiple users • have to handle resource sharing & scheduling issues. 2) Real-time Software programs: • Control/analysis of real world events as they occur • Collect & analyse data, an then make immediatedecisions, and produce appropriate outputs. • Have to give very fast responses (in terms of ms)

  22. SOFTWARE TYPES 3) Bussiness Software • Largest application area for programs. • Recently, different programs written for the same company/institution; accounting, stock control, employee info. programs, etc. • These programs help administration in their decision making, • Also, they process & analyse large data very fast. • Point-of-sale transaction processing is also a well-known business application area.

  23. SOFTWARE TYPES 4) Engineering & Scientific Software • Known as «Number Crunching» SW. • Computer-aided Design & Simulation programs are more widely used in Scientific Applications. 5) Embedded Software • put in «ROMs, Control Products & Systems» for military, consumer, industrial. • Some programs perform limited functions (i.e. key-pad control for a microwave oven). • Some programs perform complicated functions (i.e. Fuel control, brakes cotrol, etc ).

  24. SOFTWARE TYPES 6) Personel Computer (PC) Software programs: • Word proccesing • Spreadsheet programs (Excell) • Multimedia games • Computer graphics • DB Mamangement • Fax/Modem 7) AI Software programs use nonnumeric algorithms for complex problem solving (e.g. Expert Systems, Knowledgebase Systems, Pattern Recognition, Speech Recognition, Neural NW apps, etc.)

More Related