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 Report

Transcript 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