SlideShare a Scribd company logo
1 of 13
Download to read offline
Software Concepts


            FIT
            HCMUNS
            HCM



9/18/2006                                 1




Introduction to Software
Engineering

     Attributes of Software-Intensive
     Systems
     Software Engineering Definitions
     Software Engineering as a Process
     Software Engineering Challenges
     Professional Responsibilities of Software
     Engineers

9/18/2006                                 2




                                                 1
Software-Intensive Systems
    Large Numbers (100s, 1000s, millions) of:
        Users
        Developers
        Lines of code
        Pages of User Documentation and help screens
        Pages of Requirements and Design Documentation
    Customers: Governments, Businesses,
    Individuals, ….



9/18/2006                                           3




Software-Intensive Systems
    Implementation involves distributed objects,
    database systems, web servers. Portable
    across multiple platforms.
    Requirements and specifications obtained
    through extensive interviews, prototypes, and
    participant research.
    Detailed test plan with automated testing.
    Project requires 1-2 years.
    System will evolve for 20 years after initial
    installation.
9/18/2006                                           4




                                                         2
FAQs about software engineering
     What are the costs of software
     engineering?
     What is CASE (Computer-Aided
     Software Engineering)
     What are the attributes of good
     software?
     What are the key challenges facing
     software engineering?
9/18/2006                                 5




What is software ?




9/18/2006                                 6




                                              3
What is software?
    Computer programs and associated
    documentation, installation and un-
    installation scripts, etc.
    Software products may be
            Generic - developed to be sold to a
            range of different customers
            Custom - developed for a single
            customer according to their specification


9/18/2006                                               7




What is software
engineering?




9/18/2006                                           8




                                                            4
What is software engineering?
    A set of methods for the cost-efficient
    development and evolution of software systems.
    Issues, techniques, and lessons learned from
    previous software projects.
    Methods for acquiring and debugging
    requirements.
    Methods for refining and debugging specifications.
    Representations and languages for
    communicating with other software engineers.
    Methods for project management (costing and
    scheduling).

9/18/2006                                                9




What is the difference between
software engineering and computer
science?




9/18/2006                                            10




                                                             5
What is the difference between software
engineering and computer science?
      Software engineering requires skills and
      knowledge from computer science, but also from
      management, speech communications, and
      writing.
      Computer science is concerned with the
      development of theory and technology.
      Software engineers apply this technology, but
      sometimes they stumble upon new problems that
      have not yet been formally studied by computer
      scientists.
      Real-world software projects are an important
      source of new problems for computer science.
 9/18/2006                                             11




 What is the difference between
 software engineering and system
 engineering?




 9/18/2006                                         12




                                                            6
What is the difference between software
engineering and system engineering?

     System engineering is concerned with all
     aspects of computer-based systems
     development including hardware,
     software, and process engineering.
     Software engineering is part of this
     process
     System engineers are involved in system
     specification, architectural design,
     integration and deployment

 9/18/2006                                      13




 What is a software process?




 9/18/2006                                      14




                                                     7
What is a software process?
    A set of activities whose goal is the development or
    evolution of software
    Generic activities in all software processes are:
            Specification - what the system should do and its
            development constraints
            Development - production of the software system
            Validation - checking that the software is what the
            customer wants
            Evolution - changing the software in response to
            changing demands



9/18/2006                                                         15




What is a software process
model?




9/18/2006                                                         16




                                                                       8
What is a software process
model?
     A simplified representation of a software process,
     presented from a specific perspective
     Examples of process perspectives are
             Workflow perspective - sequence of activities
             Data-flow perspective - information flow
             Role/action perspective - who does what
     Generic process models
             Waterfall
             Evolutionary development
             Formal transformation
             Integration from reusable components


9/18/2006                                                              17




What are the costs?



                                                       Specification
                                                       Design
                                                       Development
            Time                                       Integration/Testing
                                                       Evolution




                   0%   20%   40%   60%   80%   100%



9/18/2006                                                              18




                                                                             9
Development Costs



 Time


        0%   20%   40%             60%   80%   100%

                   Specification
                   Design
                   Development
                   Integration/Testing

9/18/2006                                        19




Lessons
    Most important goal: Reduce testing
    and evolution costs
    Get the requirements right!
    Coding is a small part of the software
    development cost.




9/18/2006                                        20




                                                      10
Computer-Aided Software
Engineering?




9/18/2006                                                      21




Computer-Aided Software
Engineering?
    Software systems which are intended to
    provide automated support for software
    process activities. CASE systems are often
    used for method support
    Upper-CASE
            Tools to support the early process activities of
            requirements and design
    Lower-CASE
            Tools to support later activities such as
            programming, debugging and testing

9/18/2006                                                      22




                                                                    11
Attributes of good software?




9/18/2006                                                    23




Attributes of good software?
       Deliver the required functionality and
       performance to the user.
       Maintainability (d b o trì, nâng c p)
            Software must evolve to meet changing needs
       Dependability ( áng tin c y)
            Software must be trustworthy
       Efficiency (hi u qu )
            Software should not make wasteful use of
            system resources
       Usability (ti n d ng)
            Software must be usable by the users for which
            it was designed
9/18/2006                                                    24




                                                                  12
What are the key challenges
facing software engineering?




9/18/2006                                                         25




What are the key challenges facing
software engineering?
    Coping with legacy systems, coping with increasing
    diversity, and coping with demands for reduced
    delivery times
    Legacy systems
            Old, valuable systems must be maintained and
            updated
    Heterogeneity (tính h n t p)
            Systems are distributed and include a mix of
            hardware and software
    Delivery
            There is increasing pressure for faster delivery of
            software
9/18/2006                                                         26




                                                                       13

More Related Content

What's hot

Using Evolutionary Prototypes To Formalize Product Requirements
Using Evolutionary Prototypes To Formalize Product RequirementsUsing Evolutionary Prototypes To Formalize Product Requirements
Using Evolutionary Prototypes To Formalize Product RequirementsArnold Rudorfer
 
Organizing Design-Driven Development Using Rational Requirements Composer
Organizing Design-Driven Development Using Rational Requirements ComposerOrganizing Design-Driven Development Using Rational Requirements Composer
Organizing Design-Driven Development Using Rational Requirements ComposerKurt Solarte
 
SDLC & DevOps Transformation with Agile
SDLC & DevOps Transformation with AgileSDLC & DevOps Transformation with Agile
SDLC & DevOps Transformation with AgileAbdel Moneim Emad
 
1 what verona_does_barry
1 what verona_does_barry1 what verona_does_barry
1 what verona_does_barryBarryMKane
 
IDGA Irregular Warfare COTS Deck
IDGA Irregular Warfare COTS DeckIDGA Irregular Warfare COTS Deck
IDGA Irregular Warfare COTS Deckrgiuntini
 
Mainframe APIs and Modern DevOps
Mainframe APIs and Modern DevOpsMainframe APIs and Modern DevOps
Mainframe APIs and Modern DevOpsDevOps.com
 
Exp eng brochure
Exp eng brochureExp eng brochure
Exp eng brochurekkathrynlee
 
What is Software Engineering?
What is Software Engineering?What is Software Engineering?
What is Software Engineering?QAI
 
Eight deadly defects in systems engineering and how to fix them
Eight deadly defects in systems engineering and how to fix themEight deadly defects in systems engineering and how to fix them
Eight deadly defects in systems engineering and how to fix themJoseph KAsser
 
Cutting IT Costs by Applying Lean Principles CAST
Cutting IT Costs by Applying Lean Principles CASTCutting IT Costs by Applying Lean Principles CAST
Cutting IT Costs by Applying Lean Principles CASTCAST
 
A Software Factory Integrating Rational & WebSphere Tools
A Software Factory Integrating Rational & WebSphere ToolsA Software Factory Integrating Rational & WebSphere Tools
A Software Factory Integrating Rational & WebSphere Toolsghodgkinson
 
More Than Dynamic Modelling
More Than Dynamic ModellingMore Than Dynamic Modelling
More Than Dynamic Modellingj2aircraft
 
Configuration Engineering for Invitro-Diagnostic (IVD) Product Development
Configuration Engineering for Invitro-Diagnostic (IVD) Product DevelopmentConfiguration Engineering for Invitro-Diagnostic (IVD) Product Development
Configuration Engineering for Invitro-Diagnostic (IVD) Product DevelopmentArnold Rudorfer
 
Chapter 2 software_development_life_cycle_models
Chapter 2 software_development_life_cycle_modelsChapter 2 software_development_life_cycle_models
Chapter 2 software_development_life_cycle_modelsPiyush Gogia
 
Industry - Evolution and migration - Incremental and Iterative Reengineering ...
Industry - Evolution and migration - Incremental and Iterative Reengineering ...Industry - Evolution and migration - Incremental and Iterative Reengineering ...
Industry - Evolution and migration - Incremental and Iterative Reengineering ...ICSM 2011
 

What's hot (20)

Using Evolutionary Prototypes To Formalize Product Requirements
Using Evolutionary Prototypes To Formalize Product RequirementsUsing Evolutionary Prototypes To Formalize Product Requirements
Using Evolutionary Prototypes To Formalize Product Requirements
 
software
softwaresoftware
software
 
Organizing Design-Driven Development Using Rational Requirements Composer
Organizing Design-Driven Development Using Rational Requirements ComposerOrganizing Design-Driven Development Using Rational Requirements Composer
Organizing Design-Driven Development Using Rational Requirements Composer
 
SDLC & DevOps Transformation with Agile
SDLC & DevOps Transformation with AgileSDLC & DevOps Transformation with Agile
SDLC & DevOps Transformation with Agile
 
1 what verona_does_barry
1 what verona_does_barry1 what verona_does_barry
1 what verona_does_barry
 
Sdlc
SdlcSdlc
Sdlc
 
IDGA Irregular Warfare COTS Deck
IDGA Irregular Warfare COTS DeckIDGA Irregular Warfare COTS Deck
IDGA Irregular Warfare COTS Deck
 
Mainframe APIs and Modern DevOps
Mainframe APIs and Modern DevOpsMainframe APIs and Modern DevOps
Mainframe APIs and Modern DevOps
 
Exp eng brochure
Exp eng brochureExp eng brochure
Exp eng brochure
 
What is Software Engineering?
What is Software Engineering?What is Software Engineering?
What is Software Engineering?
 
Eight deadly defects in systems engineering and how to fix them
Eight deadly defects in systems engineering and how to fix themEight deadly defects in systems engineering and how to fix them
Eight deadly defects in systems engineering and how to fix them
 
Cutting IT Costs by Applying Lean Principles CAST
Cutting IT Costs by Applying Lean Principles CASTCutting IT Costs by Applying Lean Principles CAST
Cutting IT Costs by Applying Lean Principles CAST
 
A Software Factory Integrating Rational & WebSphere Tools
A Software Factory Integrating Rational & WebSphere ToolsA Software Factory Integrating Rational & WebSphere Tools
A Software Factory Integrating Rational & WebSphere Tools
 
More Than Dynamic Modelling
More Than Dynamic ModellingMore Than Dynamic Modelling
More Than Dynamic Modelling
 
Balaji_M
Balaji_MBalaji_M
Balaji_M
 
Configuration Engineering for Invitro-Diagnostic (IVD) Product Development
Configuration Engineering for Invitro-Diagnostic (IVD) Product DevelopmentConfiguration Engineering for Invitro-Diagnostic (IVD) Product Development
Configuration Engineering for Invitro-Diagnostic (IVD) Product Development
 
Sdlc
SdlcSdlc
Sdlc
 
Chapter 2 software_development_life_cycle_models
Chapter 2 software_development_life_cycle_modelsChapter 2 software_development_life_cycle_models
Chapter 2 software_development_life_cycle_models
 
Industry - Evolution and migration - Incremental and Iterative Reengineering ...
Industry - Evolution and migration - Incremental and Iterative Reengineering ...Industry - Evolution and migration - Incremental and Iterative Reengineering ...
Industry - Evolution and migration - Incremental and Iterative Reengineering ...
 
Siemens plm-key ox-industrial-design-cs-z5
Siemens plm-key ox-industrial-design-cs-z5Siemens plm-key ox-industrial-design-cs-z5
Siemens plm-key ox-industrial-design-cs-z5
 

Viewers also liked

Viewers also liked (8)

10team
10team10team
10team
 
07state
07state07state
07state
 
09componentdeployment
09componentdeployment09componentdeployment
09componentdeployment
 
06collaboration
06collaboration06collaboration
06collaboration
 
12report
12report12report
12report
 
11script
11script11script
11script
 
Se 06
Se 06Se 06
Se 06
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
 

Similar to Week 01-intro se

SE-TEXT-BOOK_Material.doc
SE-TEXT-BOOK_Material.docSE-TEXT-BOOK_Material.doc
SE-TEXT-BOOK_Material.docDrPreethiD1
 
SE-TEXT-BOOK_Material.doc
SE-TEXT-BOOK_Material.docSE-TEXT-BOOK_Material.doc
SE-TEXT-BOOK_Material.docDrPreethiD1
 
Software Engineering PPT Unit I.pptx
Software Engineering PPT Unit I.pptxSoftware Engineering PPT Unit I.pptx
Software Engineering PPT Unit I.pptxomgadekar25
 
IRJET- How Artificial Intelligence Accelerates Software Development
IRJET- How Artificial Intelligence Accelerates Software DevelopmentIRJET- How Artificial Intelligence Accelerates Software Development
IRJET- How Artificial Intelligence Accelerates Software DevelopmentIRJET Journal
 
Open Source Business Models
Open Source Business ModelsOpen Source Business Models
Open Source Business Modelsg2ix
 
SE UNIT 1 NOTES OF SE SOFTWARE ENGG AND SE
SE UNIT 1 NOTES OF SE SOFTWARE ENGG AND SESE UNIT 1 NOTES OF SE SOFTWARE ENGG AND SE
SE UNIT 1 NOTES OF SE SOFTWARE ENGG AND SEAbhishekTripathi709328
 
Developing apps with techstack wp-dm
Developing apps with techstack wp-dmDeveloping apps with techstack wp-dm
Developing apps with techstack wp-dmActian Corporation
 
se01.ppt
se01.pptse01.ppt
se01.pptxiso
 
Introduction Software and Software Engineering
Introduction Software and Software EngineeringIntroduction Software and Software Engineering
Introduction Software and Software Engineeringinfinitetechnology20
 

Similar to Week 01-intro se (20)

Intro
IntroIntro
Intro
 
SE-TEXT-BOOK_Material.doc
SE-TEXT-BOOK_Material.docSE-TEXT-BOOK_Material.doc
SE-TEXT-BOOK_Material.doc
 
SE-TEXT-BOOK_Material.doc
SE-TEXT-BOOK_Material.docSE-TEXT-BOOK_Material.doc
SE-TEXT-BOOK_Material.doc
 
Unit1
Unit1Unit1
Unit1
 
lecture 1.pdf
lecture 1.pdflecture 1.pdf
lecture 1.pdf
 
SE-Lecture1.ppt
SE-Lecture1.pptSE-Lecture1.ppt
SE-Lecture1.ppt
 
Software Engineering PPT Unit I.pptx
Software Engineering PPT Unit I.pptxSoftware Engineering PPT Unit I.pptx
Software Engineering PPT Unit I.pptx
 
0273710133 pp01v2
0273710133 pp01v20273710133 pp01v2
0273710133 pp01v2
 
IRJET- How Artificial Intelligence Accelerates Software Development
IRJET- How Artificial Intelligence Accelerates Software DevelopmentIRJET- How Artificial Intelligence Accelerates Software Development
IRJET- How Artificial Intelligence Accelerates Software Development
 
Open Source Business Models
Open Source Business ModelsOpen Source Business Models
Open Source Business Models
 
Satish_Vishwa
Satish_VishwaSatish_Vishwa
Satish_Vishwa
 
ch1_introduction (1).ppt
ch1_introduction (1).pptch1_introduction (1).ppt
ch1_introduction (1).ppt
 
ch1_introduction (2).ppt
ch1_introduction (2).pptch1_introduction (2).ppt
ch1_introduction (2).ppt
 
ch1_introduction.ppt
ch1_introduction.pptch1_introduction.ppt
ch1_introduction.ppt
 
SE UNIT 1 NOTES OF SE SOFTWARE ENGG AND SE
SE UNIT 1 NOTES OF SE SOFTWARE ENGG AND SESE UNIT 1 NOTES OF SE SOFTWARE ENGG AND SE
SE UNIT 1 NOTES OF SE SOFTWARE ENGG AND SE
 
Software Engineering
Software EngineeringSoftware Engineering
Software Engineering
 
Week1.pptx
Week1.pptxWeek1.pptx
Week1.pptx
 
Developing apps with techstack wp-dm
Developing apps with techstack wp-dmDeveloping apps with techstack wp-dm
Developing apps with techstack wp-dm
 
se01.ppt
se01.pptse01.ppt
se01.ppt
 
Introduction Software and Software Engineering
Introduction Software and Software EngineeringIntroduction Software and Software Engineering
Introduction Software and Software Engineering
 

More from Nguyen Tran

More from Nguyen Tran (20)

08activity
08activity08activity
08activity
 
05sequence
05sequence05sequence
05sequence
 
04class
04class04class
04class
 
03usecase
03usecase03usecase
03usecase
 
02intro
02intro02intro
02intro
 
01about
01about01about
01about
 
Clear case
Clear caseClear case
Clear case
 
Business process excution language
Business process excution languageBusiness process excution language
Business process excution language
 
Vs doc man
Vs doc manVs doc man
Vs doc man
 
Cm mi
Cm miCm mi
Cm mi
 
Sql packager
Sql packagerSql packager
Sql packager
 
Snag it
Snag itSnag it
Snag it
 
Record mydesktop
Record mydesktopRecord mydesktop
Record mydesktop
 
Rational suite&rational rose enterprise
Rational suite&rational rose enterpriseRational suite&rational rose enterprise
Rational suite&rational rose enterprise
 
Umodel 2009
Umodel 2009Umodel 2009
Umodel 2009
 
Rational composer method
Rational composer methodRational composer method
Rational composer method
 
Rational robot
Rational robotRational robot
Rational robot
 
Rational purify plus
Rational purify plusRational purify plus
Rational purify plus
 
Microsoft silverlight
Microsoft silverlightMicrosoft silverlight
Microsoft silverlight
 
Linq n hibernate net-tier
Linq n hibernate net-tierLinq n hibernate net-tier
Linq n hibernate net-tier
 

Week 01-intro se

  • 1. Software Concepts FIT HCMUNS HCM 9/18/2006 1 Introduction to Software Engineering Attributes of Software-Intensive Systems Software Engineering Definitions Software Engineering as a Process Software Engineering Challenges Professional Responsibilities of Software Engineers 9/18/2006 2 1
  • 2. Software-Intensive Systems Large Numbers (100s, 1000s, millions) of: Users Developers Lines of code Pages of User Documentation and help screens Pages of Requirements and Design Documentation Customers: Governments, Businesses, Individuals, …. 9/18/2006 3 Software-Intensive Systems Implementation involves distributed objects, database systems, web servers. Portable across multiple platforms. Requirements and specifications obtained through extensive interviews, prototypes, and participant research. Detailed test plan with automated testing. Project requires 1-2 years. System will evolve for 20 years after initial installation. 9/18/2006 4 2
  • 3. FAQs about software engineering What are the costs of software engineering? What is CASE (Computer-Aided Software Engineering) What are the attributes of good software? What are the key challenges facing software engineering? 9/18/2006 5 What is software ? 9/18/2006 6 3
  • 4. What is software? Computer programs and associated documentation, installation and un- installation scripts, etc. Software products may be Generic - developed to be sold to a range of different customers Custom - developed for a single customer according to their specification 9/18/2006 7 What is software engineering? 9/18/2006 8 4
  • 5. What is software engineering? A set of methods for the cost-efficient development and evolution of software systems. Issues, techniques, and lessons learned from previous software projects. Methods for acquiring and debugging requirements. Methods for refining and debugging specifications. Representations and languages for communicating with other software engineers. Methods for project management (costing and scheduling). 9/18/2006 9 What is the difference between software engineering and computer science? 9/18/2006 10 5
  • 6. What is the difference between software engineering and computer science? Software engineering requires skills and knowledge from computer science, but also from management, speech communications, and writing. Computer science is concerned with the development of theory and technology. Software engineers apply this technology, but sometimes they stumble upon new problems that have not yet been formally studied by computer scientists. Real-world software projects are an important source of new problems for computer science. 9/18/2006 11 What is the difference between software engineering and system engineering? 9/18/2006 12 6
  • 7. What is the difference between software engineering and system engineering? System engineering is concerned with all aspects of computer-based systems development including hardware, software, and process engineering. Software engineering is part of this process System engineers are involved in system specification, architectural design, integration and deployment 9/18/2006 13 What is a software process? 9/18/2006 14 7
  • 8. What is a software process? A set of activities whose goal is the development or evolution of software Generic activities in all software processes are: Specification - what the system should do and its development constraints Development - production of the software system Validation - checking that the software is what the customer wants Evolution - changing the software in response to changing demands 9/18/2006 15 What is a software process model? 9/18/2006 16 8
  • 9. What is a software process model? A simplified representation of a software process, presented from a specific perspective Examples of process perspectives are Workflow perspective - sequence of activities Data-flow perspective - information flow Role/action perspective - who does what Generic process models Waterfall Evolutionary development Formal transformation Integration from reusable components 9/18/2006 17 What are the costs? Specification Design Development Time Integration/Testing Evolution 0% 20% 40% 60% 80% 100% 9/18/2006 18 9
  • 10. Development Costs Time 0% 20% 40% 60% 80% 100% Specification Design Development Integration/Testing 9/18/2006 19 Lessons Most important goal: Reduce testing and evolution costs Get the requirements right! Coding is a small part of the software development cost. 9/18/2006 20 10
  • 11. Computer-Aided Software Engineering? 9/18/2006 21 Computer-Aided Software Engineering? Software systems which are intended to provide automated support for software process activities. CASE systems are often used for method support Upper-CASE Tools to support the early process activities of requirements and design Lower-CASE Tools to support later activities such as programming, debugging and testing 9/18/2006 22 11
  • 12. Attributes of good software? 9/18/2006 23 Attributes of good software? Deliver the required functionality and performance to the user. Maintainability (d b o trì, nâng c p) Software must evolve to meet changing needs Dependability ( áng tin c y) Software must be trustworthy Efficiency (hi u qu ) Software should not make wasteful use of system resources Usability (ti n d ng) Software must be usable by the users for which it was designed 9/18/2006 24 12
  • 13. What are the key challenges facing software engineering? 9/18/2006 25 What are the key challenges facing software engineering? Coping with legacy systems, coping with increasing diversity, and coping with demands for reduced delivery times Legacy systems Old, valuable systems must be maintained and updated Heterogeneity (tính h n t p) Systems are distributed and include a mix of hardware and software Delivery There is increasing pressure for faster delivery of software 9/18/2006 26 13