In the name of God Chapter 1 What is Software Engineering? Toward Better Software Development: Software Engineering Principles By: Mohsen Sadighi Moshkenani www.sadighim.ir.
Download ReportTranscript In the name of God Chapter 1 What is Software Engineering? Toward Better Software Development: Software Engineering Principles By: Mohsen Sadighi Moshkenani www.sadighim.ir.
In the name of God Chapter 1 What is Software Engineering? Toward Better Software Development: Software Engineering Principles By: Mohsen Sadighi Moshkenani www.sadighim.ir Outline People and their responsibilities Good software Software life cycle; Software process What is SE? Why SE? / Importance Software development model Few related concepts People and their responsibilities Sponsors: those who pay or decides Users Operators: those who keep a system operational Developers: those who make Maintainers: those who fix errors, change an d upgrade Vendors: those who distribute and sell Good software For end user For sponsor For maintainer For vendor For developer Mutual effects Software life cycle; Software process Requirement specification Development Analysis Design Implement Test Deployment Evolution Retirement What is SE? By definition: By its goals: Systematic approach to development, operation, maintenance and retirement of software Production of good software, on time and on cost. By terms: Software Engineering Why SE? Historical background Improving role and importance More requests Decreasing hardware costs; increasing hardware power More investments Software attributes (such as invisibility) Expensive and not simple production Lack of human experts Software development model A model is a symbol of reality (chapter 12) A software development model introduces: Phases and the framework of each phase Products of each phase Criteria for moving from one phase to the other Syntax and semantics for related notations Water fall model Spiral model Fountain model Object oriented model V model Rapid application development model Capability maturity model Table 1-1 سطح فرايند نام 1 بدوي )(initial •پراكنده. 2 قابل تكرار )(repeatable •موفقيتهاي توليد قابل تكرار هستند. 3 تعريف شده )(defined •به خوبي مشخص و درك شده؛پ •تعريف شده در رويههاي استاندارد؛ •با ابزارها و روشها؛ •تنها كميت قابل پيشبيني است. 4 مديريت شده به لحاظ كميت )(quantitatively managed •استفاده از اندازهگيريهاي دقيق؛ •زير فرايندهاي كنترل شده؛ •كيفيت قابل پيشبيني است. 5 بهينه شونده )(optimizing •رشد مداوم؛ •رشد محصول و رشد ف ّناوري؛ •هم فرايندهاي تعريف شده و هم مجموعه استانداردهاي سازماني؛ هردو هدفِ فعاليتهاي رش ِد قابل اندازهگيري هستند. Repetitive and incremental Continuation of activities Method, methodology and approach Method: instruction and set of steps Methodology: set of documented methods; which may be added by educational plan and contents, workshops and tools Approach: selected model and method or methodology by a person or company Table 1-2 Agile Unified Process (AUP) Constructionist design methodology (CDM) Dynamic Systems Development Method Enterprise Unified Process (EUP) Extreme Programming (XP) since 1999 Flowcharting ICONIX Process (use case driven object modeling with UML) Information Engineering (IE/IEM) Jackson Structured Programming Metaprogramming, subject of Charles Simonyi's doctoral thesis MPMM Object Oriented Design using Prototype Methodology (OODPM) since 1994 Open Unified Process Praxis Rational Unified Process (RUP) Scrum (development) Structured programming since 1969 Structure System Analysis and Design Method (SSADM) System Development Methodology Top-down programming Virtual finite state machine (VFSM) since 1990's Waterfall model