• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Week 01-intro se

Week 01-intro se






Total Views
Views on SlideShare
Embed Views



0 Embeds 0

No embeds



Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

    Week 01-intro se Week 01-intro se Document Transcript

    • Software Concepts FIT HCMUNS HCM9/18/2006 1Introduction to SoftwareEngineering Attributes of Software-Intensive Systems Software Engineering Definitions Software Engineering as a Process Software Engineering Challenges Professional Responsibilities of Software Engineers9/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 3Software-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 5What 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 specification9/18/2006 7What is softwareengineering?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 9What is the difference betweensoftware engineering and computerscience?9/18/2006 10 5
    • What is the difference between softwareengineering 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 softwareengineering 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 demands9/18/2006 15What is a software processmodel?9/18/2006 16 8
    • What is a software processmodel? 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 components9/18/2006 17What 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/Testing9/18/2006 19Lessons 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 SoftwareEngineering?9/18/2006 21Computer-Aided SoftwareEngineering? 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 testing9/18/2006 22 11
    • Attributes of good software?9/18/2006 23Attributes 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 designed9/18/2006 24 12
    • What are the key challengesfacing software engineering?9/18/2006 25What are the key challenges facingsoftware 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 software9/18/2006 26 13