Upgrade to Pro — share decks privately, control downloads, hide ads and more …

se-01-intro

robi-y
February 03, 2016

 se-01-intro

מצגת הקדמה לקורס הנדסת תוכנה, עזריאלי

robi-y

February 03, 2016
Tweet

More Decks by robi-y

Other Decks in Education

Transcript

  1. הנכות תסדנה סרוק 10014 ב רטסמס ' עשת " ה

    .1 אובמ se16b-yagel 1 ד " ןבואר ר לגי [email protected] " חכוש ינא האור ינא , דמול ינא עמוש ינא , ינא השוע - רכוז ינא ". – יניס םגתפ
  2. עובשה • הנכות תסדנהל אובמ • הקיטסיגול – סובליס \

    רתא סרוקה • טקיורפה – תורטמ – המגדה • הדבעמ \ ליגרת – המישמ תישיא 0 – סרוקל םושיר – טקיורפ תמישמ 1 : ןויער – תורכה סרוקב הדובעה תביבס םע se16b-yagel 2
  3. האצרהל תורוקמ • Pressman, chap. 1, “Software and Software Engineering”

    • הידפיקיו – הנכות תסדנה \ SE • IEEE SWEBOK’04 -> ‘13 • Laplante, “What every engineer should know about software engineering” • Brooks, Mythical Man Month se16b-yagel 3
  4. תולאש • יהמ " הנכות תסדנה " ? • הסדנה

    וז םאה ? תונכת ומכ הז םאה ? • בושח הז םאה ? ןיינעמ ? • טקיורפל טנדוטס ליגרת ןיב םילדבהה םהמ יתיישעת ? • דוע .... se16b-yagel 4
  5. הנכות תסדנה יהמ ? “Software Engineering is the study and

    application of engineering to the design, development, and maintenance of software” IEEE SWEBOK’04’13, IEEE Glossary, Wikipedia se16b-yagel 6 Software engineering has accepted as its charter, "How to program if you cannot." -- E. Dijkstra
  6. 1968 NATO SE Conference • “We undoubtedly produce software by

    backward techniques.” “We build systems like the Wright brothers built airplanes– build the whole thing, push it off the cliff, let it crash, and start over again.” • סנכל יביטקובורפ םש • םויכ וניבצמ המ ? se16b-yagel 7
  7. IEEE - SWEBOK • ךמסמ \ םזימ ( 2004 )

    , ןכו הנכות תסדנהב עדי ימוחת הרשע תרדגה תובורק תונילפיצסיד ( הידפיקיו ) ( תסרג 2013 – 15 םימוחת ) • הנכות תושירד • הנכות ןונכת • הנכות תיינב ( םיבשחמ תונכת ) • הנכות תוקידב • הנכות תקוזחת • הנכות תרוצת לוהינ • הנכות תסדנה לוהינ • הנכות תסדנה יכילהת ( הנכות חותיפ יכילהת ) • הנכות תסדנהב תוטישו םילכ • הנכות תוכיא • תונעוצקמ , הלכלכ , בושחמ תונורקע , הסדנהו הקיטמתמ • םיבשחמ תסדנה • בשחמה יעדמ • לוהינ • הקיטמתמ • תוכיא לוהינ • שונא תסדנה • תוכרעמ תסדנה 8 se16b-yagel
  8. • B. Randell, “The multi-person development of multi-version programs” •

    F. Brooks, TMMM se16b-yagel 9 A הנכות x3 A הנכות תוכרעמ ( םיקשממ , םיבולש , תוכרעמ תעמטה ) x3 A הנכות ירצומ ( הללכה , הקידב , דועית , הקוזחת ) A תוכרעמ ירצומ הנכות
  9. סרוקה ךרוצל תרצוקמ הבושת • םיכילהת ףסוא , חותיפל םילכו

    תוטיש רצומ הנכות ךרע לעב יתועמשמ ףקיהב ל המאתה תלוכיו חוקל םינתשמו םינוש םיבצמל , יבטימ שומיש ךות םיבאשמב יתוכיאו , בלשל דעו ןויערה בלשמ השירפה se16b-yagel 10 "I’m not a great programmer, I’m just a good programmer with great habits" - Kent Beck
  10. דועו • Glenn Vanderburg: "Software engineering is the science and

    art of designing and making, with economy and elegance, […] systems so that they can readily adapt to the situations to which they may be subjected.“ confreaks 2010 Qcon 2012 • “Working software that maters” – D. North se16b-yagel 11
  11. הסדנה וז םאה ? תנכתמ \ סדנהמ וא ת \

    הנכות ת ? • תנכתמ - > חתפמ ? - > סדנהמ ( הידפיקיו , stack overflow , Jim’s last commit ) • סדנהמ : תיקוח תועמשמ , תוירחא – יקוח יברומח : 9 ) תונלשרב תיב הנובה יאנב , ךכ תובקעב תמ םדאו - גרהי יאנבה , לשב תיבה לעב לש ןבה גרהנ םאו היינבה תונלשר - גרהי לש ונב יאנבה 1,2 . – " Bad coder to Jail " 12 se16b-yagel Pragmatic Programmer Tip #1: Care about Your Craft Why spend your life developing software unless you care about doing it well?
  12. ןוישר ? • “ACM's position is that our state of

    knowledge and practice in software engineering is too immature to warrant licensing. Moreover, Council felt licensing would be ineffective in providing assurances about software quality and reliability.” – SWEBOK Pulled out… se16b-yagel 13
  13. התיכ ליגרת ןיב םילדבהה םהמ יתיישעת הנכות טקיורפל ? •

    לדוג \ טקיורפ ( םינוש תולוכיו םיבלש ) • תווצ תדובע • םיכבוסמ םיכילהתו תויעב • תונתשמו תורתוס תושירד • רחאל םייוניש חותיפה ידכ ךותו • תולקת תולע – תילכלכ – תיתוחיטב • תיתכרעמ היאר • חוקל ! ול רוזעל ךירצ ! 14 se16b-yagel
  14. הנכות םצעב יהמ ? • הסדנה לע תצק ונרביד •

    הנכות - רצומ \ ללוכה תוריש : – נכות תוי הצרהל בשחמ ( דוק ) – םיוולמ םיכמסמ – םינותנ +( הרוצת , וכו םיטפירקס ' ) – הצורמ היהי והשימש הרטמב : • בורל ע רצוימ " י הצובק רובע םירחא • ךשמהב הארנ • דוע המ ? דוק קר אוה רצותהש הלילשב חיננ . יוסינ יתבשחמ : ונבתכש דוק קוחמל ךרטצנ םא ... • שדחמ בותכל חקיי ןמז המכ ? רצונ דוע המ ? se16b-yagel 15 “Plan to throw one [implementation] away; you will, anyhow.”
  15. הנכות – םינפ תונוש • רצומ – בשחמה תרמוח לוצינ

    \ תרושקת – עדימ דוביע • םירצומ חותיפל תיתשת – םילכ ( לשמל office , graphics ) – תורחא תוינכות תרקב ( הלעפה תכרעמ ) – םירחא םיבשחמל תרושקת – הנכות תיינבל םילכ – םיתורש • תונושו תובר תוירוגטק םויכ se16b-yagel 16
  16. הבוט הנכות יהמ ( תיתוכיא ISO/IEC 9126 ) ? •

    תוילנויצקנופ – תופקת ( The right product ) – תונוכנ ( The product right ) – ... • תונימא , תוישומיש , תוליעי , תודיינ • תויתקוזחת / םייונישל תושימג – תונוכת תפסוה – גאב ןוקית – היצזימיטפוא – הנבמ רופיש se16b-yagel 17 Good software is software that is designed to easily survive change. Stephen Walther The only constant in the world is change, Egoless Programming
  17. דחוימ המ ( השק ) הנכותב ? • תינבנ הנכות

    ( תסדנוהמ ? ) – םלועמ םייק היה אלש והשמב קסוע טקיורפ לכ טעמכ ( ןוגראב תוחפל , תוחוקלה רובע , דבו תמיוסמ היגולונכט " כ בולישב ) • הלבתמ אל הנכות ( תלקלקתמ ןכ ךא ) • דב " תכבוסמ כ ( א " םיבצמה לכ תא קודבל א ) • ינש דצמ : תישונאה הרבחה לע המוצע העפשה • Bjarne Stroustrup: "our civilization runs on software“ Marc Andreessen, 2011: “software is eating the world” Forbes, 2011, “Now Every Company Is A Software Company” • כבו " תיסחי שדח םוחת ז se16b-yagel 18
  18. טקיורפ והמ ? • ינמז ץמאמ ( םירדגומ םויסו הלחתה

    םע ) תריציל ידוחיי תורש וא רצומ , רצומ לכמ הנושה / תורש רחא PMBOK • םיירקיע םינייפאמ – ימעפ דח – ינש ןיא םיטקיורפ םיהז – ןמזב םוחת – תורדגומ םויסו הלחתה תדוקנ – םיפטושה לועפתה יבלש תא ללוכ אל טקיורפה se16b-yagel 20 Demarco, Lister, Waltzing With Bears: “If a project has no risks don't do it”
  19. דחוימ המ \ הנכות טקיורפב השק ? • :Brooks תיארקא

    לומ תינבומ תויכוביס “No Silver Bullet” – תויכוביס – תומיאת ( תושירדה לכל ) – םייונישל תושימג – תוארנ רסוח ( םורדניס 90% םויסל ) • דב " כ : תילאוטקלטניא הדובע , תווצ תדובע , ימוחת בר • עדי תשיכר Why software projects are not routine work se16b-yagel 21 If programmers have make a plane
  20. תוכיא טקיורפ יצוליא ( הנכות ) se16b-yagel 22 הנכות רצומ

    םיבאשמ ( םילבגומ – תולע ) םינייפאמ ( scope/features ) ול " ז
  21. טקיורפ להנמכ יתוירחא המ \ רצומ ? • הכרעהו ןונכת

    • הרקבו הדידמ • םינוכיס לוהינ • תרושקת , הגהנהו םואית , םילושכמ קוליס , רורחש ראשה לכמ תווצה , ... • ךכ לע יארחא להנמה קר םאה ? se16b-yagel 23
  22. ל םרוג טקיורפ לש עורג לוהינ : • אלה רצומה

    תיינב - ןוכנ • הכומנ תוכיא לעב רצומ תיינב • רוחיא • לוטיב • ע ( ו ) םידב 80 עובשב תועש • ... se16b-yagel 24
  23. Wikipedia: “The software crisis has been fading from view, because

    it is psychologically extremely difficult to remain in crisis mode for a protracted period (more than 20 years)” -See also: David Notkin: A Software Crisis? Please, sir, may I have some more? (more: Hebrew Podcast) הירוטסה תצק דוע • הנכותה רבשמ – ה תונשמ לחה - 60 – דב םיטקיורפ " ןנכותמהמ רתוי םילועו םירחאמ כ – תונולשכ לש הובג זוחא – העורג תירוביצ תעד תווח • רבשמ ? עובק ? היעבה ןכיה ? • וטאנ תדיעו 1968 • הבוגתה : הנילפיסיד : םילדומ , םיכילהת , םינקת , תפתושמ הפש • הנורחאל : תצובק SEMAT se16b-yagel 25
  24. Chaos Report (debatable…) 0 5 10 15 20 25 30

    35 40 1994 1996 1998 2000 2002 2004 2006 2009 הנכות יטקייורפ לש החלצה יזוחא החלצה יזוחא se16b-yagel 26
  25. הביס הווהמ וניא הארנכ םיאבה ךותמ המ הובגה ןולשיכה זוחאל

    יטקיורפב הנכות ? .1 םיבוט הנכות יסדנהמב רוסחמ .2 תומיאתמ אל תויסדנה תוטישב הנכות חותיפ .3 תישונאה הרבחל הנכותה לש התובישח .4 יקוח דמעמב רסוח ( ןוישר ) סדנהמ לש se16b-yagel 29
  26. דחא רטסמסב קיפסהל רשפא המ ? se16b-yagel 30 • סובליס

    • םינויצהו תונושה תומישמה םע תורכה • רתא סרוקה , יקיו : github.com/jce-il/se-class/wiki • סרוקה ירמוח : jce-il.github.io/se-class16b
  27. תוסנתה תועצמאב הדימל . תופתתשה , החלצהל םיינויח תוברועמו תופתוש

    ! יתימאה םלועל בורק , רשפאה לככ טרטסה - םכלש ןושארה פא ? סרוקה לע se16b-yagel 31
  28. ACM/IEEE Computer Science Curricula 2013, start with: • “In general,

    students learn best at the application level much of the material defined in the software engineering knowledge area by participating in a project. Such projects should require students to work on a team to develop a software system through as much of its lifecycle as is possible. Much of software engineering is devoted to effective communication among team members and stakeholders. Utilizing project teams, projects can be sufficiently challenging to require the use of effective software engineering techniques and that students develop and practice their communication skills. While organizing and running effective projects within the academic framework can be challenging, the best way to learn to apply software engineering theory and knowledge is in the practical environment of a project.” se16b-yagel 32
  29. םיפסונ םיאשונ \ םימילשמ • תונכת + • תווצ תדובע

    • טקיורפ לוהינ • םימצע החנומ ןוכית – UML ללכב לודימו • תודידמ םיעוציבו Knuth Law: “Premature optimization is the root of all evil” C2 Wiki: “Make It Work Make It Right Make It Fast” • תומיא ילמרופ • תומזי \ קוויש ... se16b-yagel 33 Martin: “School can teach the theory of computer programming. But school does not, and cannot teach the discipline, practice, and skill of being a craftsman.”
  30. טקיורפ המגדה • העשב רצומל ןויערמ • המגדהל תורטמ –

    סרוקה לש םייזכרמ תונויער המכמ תומשרתה – טקיורפל תינושאר הנווכה \ םכלש ןויערל • העשב קיפסהל רשפא המ ? – דוק םומינימ ( ... הברה ןיבהל ילבו )... – תומשרתה םומיסקמ מ םיכילהת , םילכו תוטיש se16b-yagel 34
  31. המגדה טקיורפ – ןויער \ העצה • המל ? (

    היעבה ) סרוקב הדובעה לע הנימא םיתימע תכרעה עוציב ( םצעב לבא : דומילו המגדה ) • המ ? ( ירשפא ןורתפ ) םיספט תססובמ תכרעמ - Peer Assessment • ךיא ? תשר תייצקילפא • טקיורפה םש : PeerEval se16b-yagel 35
  32. PeerEval – םיליחתמ ךיא ? • תושירדו תולוכי ( המ

    ) – םישמתשמו ןיינע ילעב יוהיז – שמתשמ קשממ ימישרת – חותינו ףוסיא – רקחמ • ינושאר ןוכית \ הרוטקטיכרא ( ךיא ) • ךילהת ( דציכ ) – טקיורפה ןונכת – שומימ – תומדקתהו בושמ se16b-yagel 36 Atwood: “a basic sketch of a homepage design is the first thing you should work on in any webapp, because it serves as the essential starting design document and vision statement.”
  33. PeerEval – תושירד \ םישמתשמ ירופיס • םיתימע תכרעה רותב

    הנכות תסדנה סרוקב הצרמ ידכ תישיא המורת יפל יתצובקה טקיורפה ןויצ תא לייכל לכואש הצור ינא םהלש תווצה ירבח תא וכירעי םיטנדוטסש ( ןיינע ילעב : טנדוטס , סרוקה תווצ , github/google , )... • טנדוטס ךוישו יוהיז רותב קוסע טנדוטס ידכ לכואש תויועט אללו תולקב ךירעהל ינא הצור רתומה ןויצה חווטו ירבח תומש ועיפוי ספוטבש • דוע – הכירעו לוהינ / חותיפ בבסל הצובק ךויש / םוכיס / םירחא םיסרוק ... – החטבא ? םיעוציב ? בוציע ? תושימש ? i18n , ... se16b-yagel 37
  34. PeerEval – שמתשמ קשממ ימישרת se16b-yagel 38 (Figure 4.4, Engineering

    Long Lasting Software by Armando Fox and David Patterson, Alpha edition, 2012.)
  35. PeerEval – דועיתו ןונכת • תווצ ? תומישמ ? תוכרעה

    ? הקולח ףודעיתו ? • תויונמדזה ? םינוכיס ? • םיכמסמ וליא ? דוק ףותיש ? הצפה ? • םילכ : טקיורפ לוהינ תכרעמ , לשמל – github.com issues , PivtoalTracker.com • תומישמו תואצרה 1+2 se16b-yagel 40
  36. PeerEval – םינוכיס # אשונ הרמוח יוכיס הנעמ 1 ףקיה

    : דע בבסל 1 1 1 ףודעית שומיש תמייק תכרעמב 2 יגולונכט – המאתהו דומיל היעבל 2 2 הרזע , דומיל 3 החטבא 1 3 תועצמאב תומיא … תווצ , חוקל ... se16b-yagel 41
  37. PeerEval - בושמו ךילהת • םיליחתמ הפיאמ זא ? Minimum

    viable product (MVP) • םישוע המ עבוק ימ ? • דובעל םיבלש וליא יפל ? – םידעי בלש לכל \ םיטלק \ םיטלפ • ונמייסש עדנ ךיא ? • תואצרה 3-5 se16b-yagel 42
  38. PeerEval - שיחרת חותינ • רתויב הובגה ךרעה לכב רופיס

    תריחב : חיננ 1 ליעל ( םיטילחמ ךיא ? עבוק ימ ? ) • ןייפאמ : םיתימע תכרעה • שיחרת : – ןתניהב ינאש תומיא ירחא ישארה ףדב – רשאכ ינא חלושו הכרעה ספוט תא אלממ – יזא ינא אבה תווצה רבח רובע ספוטה תא האור • ה תומיאל שמשל לוכי שומימ se16b-yagel 43
  39. PeerEval - שומימ • םירופיסה יפ לע • ססובמ Proj1:HelloGAE

    • דוק רגאמ ( git ) https://github.com/robi-y/peereval • הצפה http://jce-se-peereval.appspot.com/ se16b-yagel 44
  40. PeerEvel - תוקידב class Utils: @classmethod def complements(cls, a, b):

    return [item for item in a if item not in b] import unittest class TestUtils(unittest.TestCase): def test_remaining(self): remaining = Utils.complements(['a', 'b', 'c', 'd'], ['b','d']) self.assertEquals(remaining, ['a', 'c']) if __name__ == '__main__': unittest.main() se16b-yagel 45
  41. PeerEval - תויתשת • חותיפ תביבסמ הרזע , תוירפסו םיפסות

    ( RAD , לשמל MS Visual Studio / Eclipse , Django ) • ב שומיש - API לש לשמל google, github ? • הרוצת תרקב \ תואסרג ( git ) • תועודי תוינבתב שומיש ( MVC ) • תוקידב החנומ ( הדיחי תוקידב ילכ pythontest ) • שארמ תכשמתמ הצפה ( ןנעל , לשמל azure , Heroku , Google AppEngine ) • תואצרה 5-8 se16b-yagel 46
  42. PeerEval – חותיפ תונורקע • םימייק םיביכרב שומיש – קייפס

    ( רקחמ \ טוטיש )... – תוליבח להנמ \ תויולת ( לשמל nuget , maven ) • טרופמ ןוכית – דודיק יללכ , לשמל Don’t Repeat Yourself ( partial view ) – תונורקע OOD , לשמל Dependency Inversion Principle , Single Responsibility – ןוכית תוינבת , לשמל Repository Pattern – ו הדיחי תוקידב - TDD ( Red-Green-Refactor ) • דוע : UX שמתשמ תיווח ( םע ןוכדע לשמל ajax ) , בושמ ( לשמל UserVoice ) • תואצרה 9-13 se16b-yagel 47
  43. דקומב : תוכיא לדומ \ םיכילהת תוטיש םילכ CASE PeerEval

    - בושמ • םיכילהת : ןונכת , תושירד , ןוכית , תוקידב , חותיפ יביטרטיא יכנאו , בושמ , ... • תוטיש : תוקידב החנומ חותיפ , םימצע החנומ ןוכית , שמתשמ תיווח , ... • םילכ : לוהינ טקיורפ , תרקב תואסרג , ןוכית ילכ , חותיפ תוביבס , תוקידב , הצפה , םימורופ \ שופיח , ... • םישנא : תווצ , לוהינ , םירקס , הגצה , ... • הרטמה : תיתוכיא הנכות • הז לכ ילב רשפא ילוא ? se16b-yagel 48
  44. PeerEval - הביטקפסורטר • בוט ךלה המ ? • רפשל

    ןתינו תוחפ המ ? • האבה םעפל הנשנ המ ? se16b-yagel 49
  45. PeerEval – הנכות תסדנה ילכ Computer Aided SE • Programming

    Language, Compiler, IDE+, Version Control, Packages • Design, Testing, Building, Integration, Deployment (Cloud) • … • Web: Google, stackoverflow,… se16b-yagel 50
  46. תרקב הרוצת הניה : .1 הנכות חותיפל ךילהת .2 םיסדנהמ

    ןיב הלועפ ףותישל רזע .3 דוק יצבק יוביגל ילכ .4 תובושת 2 ו - 3 תונוכנ se16b-yagel 51
  47. טקיורפה - תורטמ • סרוקה רמוח םע רישי ןויסנ •

    טקיורפה לדוג לשב םיינכט םירגתא • יתצובק ץמאמ תרגסמב םייתרבח םיירגתא • תושדח תויגולונכטו תוביבסב תוסנתהל תונמדזה • תיקסע תונמדזה ( םירצוי תויוכז )! • הצלמה : תותיזח הברה חותפל אל ! • היישעתהמ הנוש תאז לכב המ ? se16b-yagel 52
  48. יתצובק טקיורפ – םיליחתמ ןכיהמ ? • םישיגמ גוז לכ

    ןויער \ טקיורפל העצה  היעב ( המל ? )  תילנויצקנופ הגצה ( המ ? )  ןורתפ \ ינושאר ןוכית ( ךיא ? ( םיבשחמ \ תויתשת )..  תונורתיי , תומישי םינוכיסו ( םאה ? ) – תגצמו ךמסמ – האבה האצרהב : • תוגצמ • - > םיתווצ • טוריפ יקיוב סרוקה se16b-yagel 53
  49. ןויער חקא הפיאמ ? • יל רעוב • תוחומ רועיסו

    שופיח • ןיינעמ והשמ se16b-yagel 54 Eric Raymond , The Cathedral and the Bazaar: “Every good work of software starts by scratching a developer’s personal itch.” link Ed Catmull, Pixar: “If you give a good idea to a mediocre group, they'll screw it up. If you give a mediocre idea to a good group, they'll fix it. Or they'll throw it away and come up with something else. “ http://www.youtube.com/watch?v=k2h2lvhzMDc
  50. םימדוק םיסרוקמ תומשרתה • 2012/3/4/5 – https://github.com/jce-il/se-class/wiki/PastProjects – Example: Picture

    Barcode Generator • 2011E - https://bitbucket.org/robi_y/se11b/wiki/Projects – Example: Car Pool • 2011 - https://bitbucket.org/robi_y/se11a/wiki/teams • 2010 - https://bitbucket.org/robi_y/se11a/wiki/teams • 2010E - http://sejce2008.codeplex.com/ (down right at the main page) • 2009 - http://my.jce.ac.il/~robi/jce2008/jce2008-fogbugz/jce2008- old.fogbugz.com/default68ca.html http://jproject-2/fogbugz2008 (הללכמב) • 2008 - – CrazyLinks - http://sites.google.com/site/crazylinksproject/Home, ThinkFast - http://sites.google.com/site/thinkfastgame/, FastRegister - http://groups.google.com/group/fast-register?hl=en, GoogleIt - http://sites.google.com/site/searchitproject/, SharePaint – http://www.freewebs.com/sharepaint, ReadItUp – http://readitup.hopto.org/ se16b-yagel 55
  51. תונויער דוע • הריחב סרוק : תוער , תויח ןג

    , ןוכיסב רעונ , קוסיעב יופיר • Open Source Projects (github, bitbucket, source forge, codeproject, codeplex, ….), AppStores • Project pages of a similar course 1 2 3 • startupisrael.com, Start-ups Israel news (student example), ynet news • http://startupweekend.org • יזכרמ תונשדח : ןוינכט , ןיב - ימוחת • באהה ימלשוריה , ירוביצ עדיל הנדסה • google summer of code, 2012 • Competitions: JerusalemApps, MS imagine cup, RailsRumble se16b-yagel 56
  52. תוחומ רועיס - םירושיק – Ries, The Lean Startup: How

    Today's Entrepreneurs Use Continuous Innovation to Create Radically Successful Businesses – Savoia, Pretotyping (book, video) – McConnel, GTAC 2011: Closing Keynote - Secrets of World Class Software Organizations, Video 2011 – Copeland, Innovation at Google, Video 2010 – The Myth of Innovation – Graham:Ideas for Startups – The Naming Game: Things to consider when naming an open source project se16b-yagel 57
  53. אובמל םיפסונ םיאשונ • הנכות סדנהמל הקיתא • " הנכות

    תסדנה יקוח " • לומ הנכות תסדנה תוסדנה תורחא \ בשחמה יעדמ \ רוציי • תוכרעמ תסדנה • ןחבמ ג ' לאו ( הדובע םוקמ תא ןוחבל ךיא וא ) • בוט סדנהמ תויהל ךיא \ הנכה הישעתל • םיעודי תונולשיכ ב הנכות se16b-yagel 58 “somebody made an error in a couple lines of the code and everything goes” 2007
  54. תיתרבח תוירחאו הנכות תסדנה ACM: Software Engineering Code of Ethics

    and Professional Practice (Version 5.2), starts with: “Computers have a central and growing role in commerce, industry, government, medicine, education, entertainment and society at large. Software engineers are those who contribute by direct participation or by teaching, to the analysis, specification, design, development, certification, maintenance and testing of software systems. Because of their roles in developing software systems, software engineers have significant opportunities to do good or cause harm, to enable others to do good or cause harm, or to influence others to do good or cause harm. To ensure, as much as possible, that their efforts will be used for good, software engineers must commit themselves to making software engineering a beneficial and respected profession. In accordance with that commitment, software engineers shall adhere to the following Code of Ethics and Professional Practice.” https://www.acm.org/about/se-code se16b-yagel 59
  55. ש ןיבהל יל הרזע םויה האצרהה : .1 וליצה ,

    ןאכמ םיחרוב ךיא ? .2 רעטצמ , יל םירורב אל ןיידע םירבד הברה .3 דמחנ אקווד , והשכיא הז תא רובעאש הווקמ .4 ןיא , ילש טקיורפה לע דובעל ליחתהל רבכ בייח se16b-yagel 60
  56. האבה םעפב • תווצ תדובע • הירואית : םיכילהת ,

    תויגולודותמו םילדומ ( הנכה : wikipedia sdp זירז הנכות חותיפ ) • תגצה תונויער • תומישמ – םושיר סרוקל ( github ) רגאמב תואשרה תלבקו סרוקה – ןויער \ טקיורפ תעצה ( גוזב ) : תגצמו ךמסמ , הגצהל םושיר – בש 1 : HelloMEAN se16b-yagel 61
  57. םוכיסל • הנכות תסדנהב ןויד , םויה הנכות , םירגתא

    • סרוקה תרטמ : תנכתמ = > הנכות סדנהמ • סרוקב דחוימה – ימוחת בר , יאנדס – םכלש ןויער לע דובעל תונמדזה – דב " הנוכנ תחא הבושת ןיא כ , תועטל רתומ – םירושיכ " םיכר ( " תויתריצי , ףותיש הלועפ ) – השק אל , הבר יד הדובע לבא ( הלחתהמו )! • סרוקה ןכות : םיכילהת , תושירד , ןוכית , תוקידב , שומימ , דועו םילכ ............. • תולאש \ תורהבה \ תועצה ? se16b-yagel 62 האנהבו החלצהב